]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Add codenames game
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Mon, 27 Apr 2020 23:40:13 +0000 (01:40 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Mon, 27 Apr 2020 23:40:13 +0000 (01:40 +0200)
15 files changed:
modules/private/default.nix
modules/private/websites/default.nix
modules/private/websites/tools/games/codenames/codenames.patch [new file with mode: 0644]
modules/private/websites/tools/games/codenames/default.nix [new file with mode: 0644]
modules/private/websites/tools/games/codenames/deps.nix [new file with mode: 0644]
modules/private/websites/tools/games/codenames/elm-srcs.nix [new file with mode: 0644]
modules/private/websites/tools/games/codenames/frontend.nix [new file with mode: 0644]
modules/private/websites/tools/games/codenames/greenapid.nix [new file with mode: 0644]
modules/private/websites/tools/games/codenames/greenapid.patch [new file with mode: 0644]
modules/private/websites/tools/games/codenames/node-packages.nix [new file with mode: 0644]
modules/private/websites/tools/games/codenames/registry.dat [new file with mode: 0644]
modules/private/websites/tools/games/codenames/shell.nix [new file with mode: 0644]
modules/private/websites/tools/games/codenames/wordlists/french.txt [new file with mode: 0644]
modules/private/websites/tools/tools/landing/config.yml
modules/private/websites/tools/tools/landing/icons/games_codenames.png [new file with mode: 0644]

index 477723897caccf7f55f329cb521bbe73a988140c..6173275a3a1d66fa6e69bb54e54e3d275509a6c6 100644 (file)
@@ -82,6 +82,9 @@ set = {
   toolsTool = ./websites/tools/tools;
   mailTool = ./websites/tools/mail;
 
+  # Games
+  codenamesGame = ./websites/tools/games/codenames;
+
   mail = ./mail;
 
   buildbot = ./buildbot;
index 2cc6c8151af8923bef68a4a2c887fd86dd21c928..aba30e37f73c2606c7c828ea90676e8fc8a31a7a 100644 (file)
@@ -299,6 +299,8 @@ in
       tools.peertube.enable = true;
       tools.tools.enable = true;
       tools.email.enable = true;
+
+      games.codenames.enable = true;
     };
   };
 }
diff --git a/modules/private/websites/tools/games/codenames/codenames.patch b/modules/private/websites/tools/games/codenames/codenames.patch
new file mode 100644 (file)
index 0000000..25c052b
--- /dev/null
@@ -0,0 +1,8292 @@
+diff --git a/elm.json b/elm.json
+index a0d276b..09b97ec 100644
+--- a/elm.json
++++ b/elm.json
+@@ -3,7 +3,7 @@
+     "source-directories": [
+         "src"
+     ],
+-    "elm-version": "0.19.0",
++    "elm-version": "0.19.1",
+     "dependencies": {
+         "direct": {
+             "elm/browser": "1.0.1",
+@@ -32,4 +32,4 @@
+             "elm/random": "1.0.0"
+         }
+     }
+-}
+\ No newline at end of file
++}
+diff --git a/package-lock.json b/package-lock.json
+index 778b061..05a22ab 100644
+--- a/package-lock.json
++++ b/package-lock.json
+@@ -4,196 +4,7963 @@
+   "lockfileVersion": 1,
+   "requires": true,
+   "dependencies": {
++    "@babel/code-frame": {
++      "version": "7.0.0",
++      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
++      "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
++      "dev": true,
++      "requires": {
++        "@babel/highlight": "^7.0.0"
++      }
++    },
++    "@babel/core": {
++      "version": "7.3.4",
++      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz",
++      "integrity": "sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==",
++      "dev": true,
++      "requires": {
++        "@babel/code-frame": "^7.0.0",
++        "@babel/generator": "^7.3.4",
++        "@babel/helpers": "^7.2.0",
++        "@babel/parser": "^7.3.4",
++        "@babel/template": "^7.2.2",
++        "@babel/traverse": "^7.3.4",
++        "@babel/types": "^7.3.4",
++        "convert-source-map": "^1.1.0",
++        "debug": "^4.1.0",
++        "json5": "^2.1.0",
++        "lodash": "^4.17.11",
++        "resolve": "^1.3.2",
++        "semver": "^5.4.1",
++        "source-map": "^0.5.0"
++      },
++      "dependencies": {
++        "json5": {
++          "version": "2.1.3",
++          "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
++          "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
++          "dev": true,
++          "requires": {
++            "minimist": "^1.2.5"
++          }
++        },
++        "source-map": {
++          "version": "0.5.7",
++          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++          "dev": true
++        }
++      }
++    },
++    "@babel/generator": {
++      "version": "7.3.4",
++      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz",
++      "integrity": "sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==",
++      "dev": true,
++      "requires": {
++        "@babel/types": "^7.3.4",
++        "jsesc": "^2.5.1",
++        "lodash": "^4.17.11",
++        "source-map": "^0.5.0",
++        "trim-right": "^1.0.1"
++      },
++      "dependencies": {
++        "source-map": {
++          "version": "0.5.7",
++          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++          "dev": true
++        }
++      }
++    },
++    "@babel/helper-annotate-as-pure": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz",
++      "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==",
++      "dev": true,
++      "requires": {
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-builder-binary-assignment-operator-visitor": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz",
++      "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-explode-assignable-expression": "^7.8.3",
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-builder-react-jsx": {
++      "version": "7.9.0",
++      "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz",
++      "integrity": "sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-annotate-as-pure": "^7.8.3",
++        "@babel/types": "^7.9.0"
++      },
++      "dependencies": {
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-create-regexp-features-plugin": {
++      "version": "7.8.8",
++      "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz",
++      "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-annotate-as-pure": "^7.8.3",
++        "@babel/helper-regex": "^7.8.3",
++        "regexpu-core": "^4.7.0"
++      }
++    },
++    "@babel/helper-define-map": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz",
++      "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-function-name": "^7.8.3",
++        "@babel/types": "^7.8.3",
++        "lodash": "^4.17.13"
++      },
++      "dependencies": {
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-explode-assignable-expression": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz",
++      "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==",
++      "dev": true,
++      "requires": {
++        "@babel/traverse": "^7.8.3",
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/code-frame": {
++          "version": "7.8.3",
++          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
++          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
++          "dev": true,
++          "requires": {
++            "@babel/highlight": "^7.8.3"
++          }
++        },
++        "@babel/generator": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
++          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
++          "dev": true,
++          "requires": {
++            "@babel/types": "^7.9.5",
++            "jsesc": "^2.5.1",
++            "lodash": "^4.17.13",
++            "source-map": "^0.5.0"
++          }
++        },
++        "@babel/parser": {
++          "version": "7.9.4",
++          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
++          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
++          "dev": true
++        },
++        "@babel/traverse": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
++          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
++          "dev": true,
++          "requires": {
++            "@babel/code-frame": "^7.8.3",
++            "@babel/generator": "^7.9.5",
++            "@babel/helper-function-name": "^7.9.5",
++            "@babel/helper-split-export-declaration": "^7.8.3",
++            "@babel/parser": "^7.9.0",
++            "@babel/types": "^7.9.5",
++            "debug": "^4.1.0",
++            "globals": "^11.1.0",
++            "lodash": "^4.17.13"
++          }
++        },
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        },
++        "source-map": {
++          "version": "0.5.7",
++          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++          "dev": true
++        }
++      }
++    },
++    "@babel/helper-function-name": {
++      "version": "7.9.5",
++      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
++      "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-get-function-arity": "^7.8.3",
++        "@babel/template": "^7.8.3",
++        "@babel/types": "^7.9.5"
++      },
++      "dependencies": {
++        "@babel/code-frame": {
++          "version": "7.8.3",
++          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
++          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
++          "dev": true,
++          "requires": {
++            "@babel/highlight": "^7.8.3"
++          }
++        },
++        "@babel/parser": {
++          "version": "7.9.4",
++          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
++          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
++          "dev": true
++        },
++        "@babel/template": {
++          "version": "7.8.6",
++          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
++          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
++          "dev": true,
++          "requires": {
++            "@babel/code-frame": "^7.8.3",
++            "@babel/parser": "^7.8.6",
++            "@babel/types": "^7.8.6"
++          }
++        },
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-get-function-arity": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
++      "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
++      "dev": true,
++      "requires": {
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-hoist-variables": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz",
++      "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==",
++      "dev": true,
++      "requires": {
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-member-expression-to-functions": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz",
++      "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==",
++      "dev": true,
++      "requires": {
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-module-imports": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz",
++      "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==",
++      "dev": true,
++      "requires": {
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-module-transforms": {
++      "version": "7.9.0",
++      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz",
++      "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-module-imports": "^7.8.3",
++        "@babel/helper-replace-supers": "^7.8.6",
++        "@babel/helper-simple-access": "^7.8.3",
++        "@babel/helper-split-export-declaration": "^7.8.3",
++        "@babel/template": "^7.8.6",
++        "@babel/types": "^7.9.0",
++        "lodash": "^4.17.13"
++      },
++      "dependencies": {
++        "@babel/code-frame": {
++          "version": "7.8.3",
++          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
++          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
++          "dev": true,
++          "requires": {
++            "@babel/highlight": "^7.8.3"
++          }
++        },
++        "@babel/parser": {
++          "version": "7.9.4",
++          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
++          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
++          "dev": true
++        },
++        "@babel/template": {
++          "version": "7.8.6",
++          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
++          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
++          "dev": true,
++          "requires": {
++            "@babel/code-frame": "^7.8.3",
++            "@babel/parser": "^7.8.6",
++            "@babel/types": "^7.8.6"
++          }
++        },
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-optimise-call-expression": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz",
++      "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==",
++      "dev": true,
++      "requires": {
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-plugin-utils": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
++      "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
++      "dev": true
++    },
++    "@babel/helper-regex": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz",
++      "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==",
++      "dev": true,
++      "requires": {
++        "lodash": "^4.17.13"
++      }
++    },
++    "@babel/helper-remap-async-to-generator": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz",
++      "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-annotate-as-pure": "^7.8.3",
++        "@babel/helper-wrap-function": "^7.8.3",
++        "@babel/template": "^7.8.3",
++        "@babel/traverse": "^7.8.3",
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/code-frame": {
++          "version": "7.8.3",
++          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
++          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
++          "dev": true,
++          "requires": {
++            "@babel/highlight": "^7.8.3"
++          }
++        },
++        "@babel/generator": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
++          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
++          "dev": true,
++          "requires": {
++            "@babel/types": "^7.9.5",
++            "jsesc": "^2.5.1",
++            "lodash": "^4.17.13",
++            "source-map": "^0.5.0"
++          }
++        },
++        "@babel/parser": {
++          "version": "7.9.4",
++          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
++          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
++          "dev": true
++        },
++        "@babel/template": {
++          "version": "7.8.6",
++          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
++          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
++          "dev": true,
++          "requires": {
++            "@babel/code-frame": "^7.8.3",
++            "@babel/parser": "^7.8.6",
++            "@babel/types": "^7.8.6"
++          }
++        },
++        "@babel/traverse": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
++          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
++          "dev": true,
++          "requires": {
++            "@babel/code-frame": "^7.8.3",
++            "@babel/generator": "^7.9.5",
++            "@babel/helper-function-name": "^7.9.5",
++            "@babel/helper-split-export-declaration": "^7.8.3",
++            "@babel/parser": "^7.9.0",
++            "@babel/types": "^7.9.5",
++            "debug": "^4.1.0",
++            "globals": "^11.1.0",
++            "lodash": "^4.17.13"
++          }
++        },
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        },
++        "source-map": {
++          "version": "0.5.7",
++          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++          "dev": true
++        }
++      }
++    },
++    "@babel/helper-replace-supers": {
++      "version": "7.8.6",
++      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz",
++      "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-member-expression-to-functions": "^7.8.3",
++        "@babel/helper-optimise-call-expression": "^7.8.3",
++        "@babel/traverse": "^7.8.6",
++        "@babel/types": "^7.8.6"
++      },
++      "dependencies": {
++        "@babel/code-frame": {
++          "version": "7.8.3",
++          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
++          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
++          "dev": true,
++          "requires": {
++            "@babel/highlight": "^7.8.3"
++          }
++        },
++        "@babel/generator": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
++          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
++          "dev": true,
++          "requires": {
++            "@babel/types": "^7.9.5",
++            "jsesc": "^2.5.1",
++            "lodash": "^4.17.13",
++            "source-map": "^0.5.0"
++          }
++        },
++        "@babel/parser": {
++          "version": "7.9.4",
++          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
++          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
++          "dev": true
++        },
++        "@babel/traverse": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
++          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
++          "dev": true,
++          "requires": {
++            "@babel/code-frame": "^7.8.3",
++            "@babel/generator": "^7.9.5",
++            "@babel/helper-function-name": "^7.9.5",
++            "@babel/helper-split-export-declaration": "^7.8.3",
++            "@babel/parser": "^7.9.0",
++            "@babel/types": "^7.9.5",
++            "debug": "^4.1.0",
++            "globals": "^11.1.0",
++            "lodash": "^4.17.13"
++          }
++        },
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        },
++        "source-map": {
++          "version": "0.5.7",
++          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++          "dev": true
++        }
++      }
++    },
++    "@babel/helper-simple-access": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz",
++      "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==",
++      "dev": true,
++      "requires": {
++        "@babel/template": "^7.8.3",
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/code-frame": {
++          "version": "7.8.3",
++          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
++          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
++          "dev": true,
++          "requires": {
++            "@babel/highlight": "^7.8.3"
++          }
++        },
++        "@babel/parser": {
++          "version": "7.9.4",
++          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
++          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
++          "dev": true
++        },
++        "@babel/template": {
++          "version": "7.8.6",
++          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
++          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
++          "dev": true,
++          "requires": {
++            "@babel/code-frame": "^7.8.3",
++            "@babel/parser": "^7.8.6",
++            "@babel/types": "^7.8.6"
++          }
++        },
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-split-export-declaration": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
++      "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
++      "dev": true,
++      "requires": {
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        }
++      }
++    },
++    "@babel/helper-validator-identifier": {
++      "version": "7.9.5",
++      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
++      "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
++      "dev": true
++    },
++    "@babel/helper-wrap-function": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz",
++      "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-function-name": "^7.8.3",
++        "@babel/template": "^7.8.3",
++        "@babel/traverse": "^7.8.3",
++        "@babel/types": "^7.8.3"
++      },
++      "dependencies": {
++        "@babel/code-frame": {
++          "version": "7.8.3",
++          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
++          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
++          "dev": true,
++          "requires": {
++            "@babel/highlight": "^7.8.3"
++          }
++        },
++        "@babel/generator": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
++          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
++          "dev": true,
++          "requires": {
++            "@babel/types": "^7.9.5",
++            "jsesc": "^2.5.1",
++            "lodash": "^4.17.13",
++            "source-map": "^0.5.0"
++          }
++        },
++        "@babel/parser": {
++          "version": "7.9.4",
++          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
++          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
++          "dev": true
++        },
++        "@babel/template": {
++          "version": "7.8.6",
++          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
++          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
++          "dev": true,
++          "requires": {
++            "@babel/code-frame": "^7.8.3",
++            "@babel/parser": "^7.8.6",
++            "@babel/types": "^7.8.6"
++          }
++        },
++        "@babel/traverse": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
++          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
++          "dev": true,
++          "requires": {
++            "@babel/code-frame": "^7.8.3",
++            "@babel/generator": "^7.9.5",
++            "@babel/helper-function-name": "^7.9.5",
++            "@babel/helper-split-export-declaration": "^7.8.3",
++            "@babel/parser": "^7.9.0",
++            "@babel/types": "^7.9.5",
++            "debug": "^4.1.0",
++            "globals": "^11.1.0",
++            "lodash": "^4.17.13"
++          }
++        },
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        },
++        "source-map": {
++          "version": "0.5.7",
++          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++          "dev": true
++        }
++      }
++    },
++    "@babel/helpers": {
++      "version": "7.9.2",
++      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz",
++      "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==",
++      "dev": true,
++      "requires": {
++        "@babel/template": "^7.8.3",
++        "@babel/traverse": "^7.9.0",
++        "@babel/types": "^7.9.0"
++      },
++      "dependencies": {
++        "@babel/code-frame": {
++          "version": "7.8.3",
++          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
++          "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
++          "dev": true,
++          "requires": {
++            "@babel/highlight": "^7.8.3"
++          }
++        },
++        "@babel/generator": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
++          "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
++          "dev": true,
++          "requires": {
++            "@babel/types": "^7.9.5",
++            "jsesc": "^2.5.1",
++            "lodash": "^4.17.13",
++            "source-map": "^0.5.0"
++          }
++        },
++        "@babel/parser": {
++          "version": "7.9.4",
++          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
++          "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
++          "dev": true
++        },
++        "@babel/template": {
++          "version": "7.8.6",
++          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
++          "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
++          "dev": true,
++          "requires": {
++            "@babel/code-frame": "^7.8.3",
++            "@babel/parser": "^7.8.6",
++            "@babel/types": "^7.8.6"
++          }
++        },
++        "@babel/traverse": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
++          "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
++          "dev": true,
++          "requires": {
++            "@babel/code-frame": "^7.8.3",
++            "@babel/generator": "^7.9.5",
++            "@babel/helper-function-name": "^7.9.5",
++            "@babel/helper-split-export-declaration": "^7.8.3",
++            "@babel/parser": "^7.9.0",
++            "@babel/types": "^7.9.5",
++            "debug": "^4.1.0",
++            "globals": "^11.1.0",
++            "lodash": "^4.17.13"
++          }
++        },
++        "@babel/types": {
++          "version": "7.9.5",
++          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
++          "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
++          "dev": true,
++          "requires": {
++            "@babel/helper-validator-identifier": "^7.9.5",
++            "lodash": "^4.17.13",
++            "to-fast-properties": "^2.0.0"
++          }
++        },
++        "source-map": {
++          "version": "0.5.7",
++          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++          "dev": true
++        }
++      }
++    },
++    "@babel/highlight": {
++      "version": "7.9.0",
++      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
++      "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-validator-identifier": "^7.9.0",
++        "chalk": "^2.0.0",
++        "js-tokens": "^4.0.0"
++      }
++    },
++    "@babel/parser": {
++      "version": "7.3.4",
++      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz",
++      "integrity": "sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==",
++      "dev": true
++    },
++    "@babel/plugin-proposal-async-generator-functions": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz",
++      "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3",
++        "@babel/helper-remap-async-to-generator": "^7.8.3",
++        "@babel/plugin-syntax-async-generators": "^7.8.0"
++      }
++    },
++    "@babel/plugin-proposal-json-strings": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz",
++      "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3",
++        "@babel/plugin-syntax-json-strings": "^7.8.0"
++      }
++    },
++    "@babel/plugin-proposal-object-rest-spread": {
++      "version": "7.9.5",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz",
++      "integrity": "sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3",
++        "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
++        "@babel/plugin-transform-parameters": "^7.9.5"
++      }
++    },
++    "@babel/plugin-proposal-optional-catch-binding": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz",
++      "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3",
++        "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
++      }
++    },
++    "@babel/plugin-proposal-unicode-property-regex": {
++      "version": "7.8.8",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz",
++      "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-create-regexp-features-plugin": "^7.8.8",
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-syntax-async-generators": {
++      "version": "7.8.4",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
++      "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.0"
++      }
++    },
++    "@babel/plugin-syntax-flow": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz",
++      "integrity": "sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-syntax-json-strings": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
++      "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.0"
++      }
++    },
++    "@babel/plugin-syntax-jsx": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz",
++      "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-syntax-object-rest-spread": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
++      "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.0"
++      }
++    },
++    "@babel/plugin-syntax-optional-catch-binding": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
++      "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.0"
++      }
++    },
++    "@babel/plugin-transform-arrow-functions": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz",
++      "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-async-to-generator": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz",
++      "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-module-imports": "^7.8.3",
++        "@babel/helper-plugin-utils": "^7.8.3",
++        "@babel/helper-remap-async-to-generator": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-block-scoped-functions": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz",
++      "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-block-scoping": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz",
++      "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3",
++        "lodash": "^4.17.13"
++      }
++    },
++    "@babel/plugin-transform-classes": {
++      "version": "7.9.5",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz",
++      "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-annotate-as-pure": "^7.8.3",
++        "@babel/helper-define-map": "^7.8.3",
++        "@babel/helper-function-name": "^7.9.5",
++        "@babel/helper-optimise-call-expression": "^7.8.3",
++        "@babel/helper-plugin-utils": "^7.8.3",
++        "@babel/helper-replace-supers": "^7.8.6",
++        "@babel/helper-split-export-declaration": "^7.8.3",
++        "globals": "^11.1.0"
++      }
++    },
++    "@babel/plugin-transform-computed-properties": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz",
++      "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-destructuring": {
++      "version": "7.9.5",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz",
++      "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-dotall-regex": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz",
++      "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-create-regexp-features-plugin": "^7.8.3",
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-duplicate-keys": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz",
++      "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-exponentiation-operator": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz",
++      "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3",
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-flow-strip-types": {
++      "version": "7.3.4",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.3.4.tgz",
++      "integrity": "sha512-PmQC9R7DwpBFA+7ATKMyzViz3zCaMNouzZMPZN2K5PnbBbtL3AXFYTkDk+Hey5crQq2A90UG5Uthz0mel+XZrA==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.0.0",
++        "@babel/plugin-syntax-flow": "^7.2.0"
++      }
++    },
++    "@babel/plugin-transform-for-of": {
++      "version": "7.9.0",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz",
++      "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-function-name": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz",
++      "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-function-name": "^7.8.3",
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-literals": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz",
++      "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-modules-amd": {
++      "version": "7.9.0",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz",
++      "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-module-transforms": "^7.9.0",
++        "@babel/helper-plugin-utils": "^7.8.3",
++        "babel-plugin-dynamic-import-node": "^2.3.0"
++      }
++    },
++    "@babel/plugin-transform-modules-commonjs": {
++      "version": "7.2.0",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz",
++      "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-module-transforms": "^7.1.0",
++        "@babel/helper-plugin-utils": "^7.0.0",
++        "@babel/helper-simple-access": "^7.1.0"
++      }
++    },
++    "@babel/plugin-transform-modules-systemjs": {
++      "version": "7.9.0",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz",
++      "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-hoist-variables": "^7.8.3",
++        "@babel/helper-module-transforms": "^7.9.0",
++        "@babel/helper-plugin-utils": "^7.8.3",
++        "babel-plugin-dynamic-import-node": "^2.3.0"
++      }
++    },
++    "@babel/plugin-transform-modules-umd": {
++      "version": "7.9.0",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz",
++      "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-module-transforms": "^7.9.0",
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-named-capturing-groups-regex": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz",
++      "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-create-regexp-features-plugin": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-new-target": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz",
++      "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-object-super": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz",
++      "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3",
++        "@babel/helper-replace-supers": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-parameters": {
++      "version": "7.9.5",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz",
++      "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-get-function-arity": "^7.8.3",
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-react-jsx": {
++      "version": "7.3.0",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz",
++      "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-builder-react-jsx": "^7.3.0",
++        "@babel/helper-plugin-utils": "^7.0.0",
++        "@babel/plugin-syntax-jsx": "^7.2.0"
++      }
++    },
++    "@babel/plugin-transform-regenerator": {
++      "version": "7.8.7",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz",
++      "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==",
++      "dev": true,
++      "requires": {
++        "regenerator-transform": "^0.14.2"
++      }
++    },
++    "@babel/plugin-transform-shorthand-properties": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz",
++      "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-spread": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz",
++      "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-sticky-regex": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz",
++      "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3",
++        "@babel/helper-regex": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-template-literals": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz",
++      "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-annotate-as-pure": "^7.8.3",
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-typeof-symbol": {
++      "version": "7.8.4",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz",
++      "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/plugin-transform-unicode-regex": {
++      "version": "7.8.3",
++      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz",
++      "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-create-regexp-features-plugin": "^7.8.3",
++        "@babel/helper-plugin-utils": "^7.8.3"
++      }
++    },
++    "@babel/preset-env": {
++      "version": "7.3.4",
++      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz",
++      "integrity": "sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==",
++      "dev": true,
++      "requires": {
++        "@babel/helper-module-imports": "^7.0.0",
++        "@babel/helper-plugin-utils": "^7.0.0",
++        "@babel/plugin-proposal-async-generator-functions": "^7.2.0",
++        "@babel/plugin-proposal-json-strings": "^7.2.0",
++        "@babel/plugin-proposal-object-rest-spread": "^7.3.4",
++        "@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
++        "@babel/plugin-proposal-unicode-property-regex": "^7.2.0",
++        "@babel/plugin-syntax-async-generators": "^7.2.0",
++        "@babel/plugin-syntax-json-strings": "^7.2.0",
++        "@babel/plugin-syntax-object-rest-spread": "^7.2.0",
++        "@babel/plugin-syntax-optional-catch-binding": "^7.2.0",
++        "@babel/plugin-transform-arrow-functions": "^7.2.0",
++        "@babel/plugin-transform-async-to-generator": "^7.3.4",
++        "@babel/plugin-transform-block-scoped-functions": "^7.2.0",
++        "@babel/plugin-transform-block-scoping": "^7.3.4",
++        "@babel/plugin-transform-classes": "^7.3.4",
++        "@babel/plugin-transform-computed-properties": "^7.2.0",
++        "@babel/plugin-transform-destructuring": "^7.2.0",
++        "@babel/plugin-transform-dotall-regex": "^7.2.0",
++        "@babel/plugin-transform-duplicate-keys": "^7.2.0",
++        "@babel/plugin-transform-exponentiation-operator": "^7.2.0",
++        "@babel/plugin-transform-for-of": "^7.2.0",
++        "@babel/plugin-transform-function-name": "^7.2.0",
++        "@babel/plugin-transform-literals": "^7.2.0",
++        "@babel/plugin-transform-modules-amd": "^7.2.0",
++        "@babel/plugin-transform-modules-commonjs": "^7.2.0",
++        "@babel/plugin-transform-modules-systemjs": "^7.3.4",
++        "@babel/plugin-transform-modules-umd": "^7.2.0",
++        "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0",
++        "@babel/plugin-transform-new-target": "^7.0.0",
++        "@babel/plugin-transform-object-super": "^7.2.0",
++        "@babel/plugin-transform-parameters": "^7.2.0",
++        "@babel/plugin-transform-regenerator": "^7.3.4",
++        "@babel/plugin-transform-shorthand-properties": "^7.2.0",
++        "@babel/plugin-transform-spread": "^7.2.0",
++        "@babel/plugin-transform-sticky-regex": "^7.2.0",
++        "@babel/plugin-transform-template-literals": "^7.2.0",
++        "@babel/plugin-transform-typeof-symbol": "^7.2.0",
++        "@babel/plugin-transform-unicode-regex": "^7.2.0",
++        "browserslist": "^4.3.4",
++        "invariant": "^2.2.2",
++        "js-levenshtein": "^1.1.3",
++        "semver": "^5.3.0"
++      }
++    },
++    "@babel/runtime": {
++      "version": "7.3.4",
++      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz",
++      "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==",
++      "dev": true,
++      "requires": {
++        "regenerator-runtime": "^0.12.0"
++      },
++      "dependencies": {
++        "regenerator-runtime": {
++          "version": "0.12.1",
++          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz",
++          "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==",
++          "dev": true
++        }
++      }
++    },
++    "@babel/template": {
++      "version": "7.2.2",
++      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz",
++      "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==",
++      "dev": true,
++      "requires": {
++        "@babel/code-frame": "^7.0.0",
++        "@babel/parser": "^7.2.2",
++        "@babel/types": "^7.2.2"
++      }
++    },
++    "@babel/traverse": {
++      "version": "7.3.4",
++      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz",
++      "integrity": "sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==",
++      "dev": true,
++      "requires": {
++        "@babel/code-frame": "^7.0.0",
++        "@babel/generator": "^7.3.4",
++        "@babel/helper-function-name": "^7.1.0",
++        "@babel/helper-split-export-declaration": "^7.0.0",
++        "@babel/parser": "^7.3.4",
++        "@babel/types": "^7.3.4",
++        "debug": "^4.1.0",
++        "globals": "^11.1.0",
++        "lodash": "^4.17.11"
++      }
++    },
++    "@babel/types": {
++      "version": "7.3.4",
++      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz",
++      "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==",
++      "dev": true,
++      "requires": {
++        "esutils": "^2.0.2",
++        "lodash": "^4.17.11",
++        "to-fast-properties": "^2.0.0"
++      }
++    },
++    "@iarna/toml": {
++      "version": "2.2.5",
++      "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
++      "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==",
++      "dev": true
++    },
++    "@mrmlnc/readdir-enhanced": {
++      "version": "2.2.1",
++      "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
++      "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
++      "dev": true,
++      "requires": {
++        "call-me-maybe": "^1.0.1",
++        "glob-to-regexp": "^0.3.0"
++      }
++    },
++    "@nodelib/fs.stat": {
++      "version": "1.1.3",
++      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
++      "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
++      "dev": true
++    },
++    "@parcel/fs": {
++      "version": "1.11.0",
++      "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-1.11.0.tgz",
++      "integrity": "sha512-86RyEqULbbVoeo8OLcv+LQ1Vq2PKBAvWTU9fCgALxuCTbbs5Ppcvll4Vr+Ko1AnmMzja/k++SzNAwJfeQXVlpA==",
++      "dev": true,
++      "requires": {
++        "@parcel/utils": "^1.11.0",
++        "mkdirp": "^0.5.1",
++        "rimraf": "^2.6.2"
++      }
++    },
++    "@parcel/logger": {
++      "version": "1.11.1",
++      "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-1.11.1.tgz",
++      "integrity": "sha512-9NF3M6UVeP2udOBDILuoEHd8VrF4vQqoWHEafymO1pfSoOMfxrSJZw1MfyAAIUN/IFp9qjcpDCUbDZB+ioVevA==",
++      "dev": true,
++      "requires": {
++        "@parcel/workers": "^1.11.0",
++        "chalk": "^2.1.0",
++        "grapheme-breaker": "^0.3.2",
++        "ora": "^2.1.0",
++        "strip-ansi": "^4.0.0"
++      }
++    },
++    "@parcel/utils": {
++      "version": "1.11.0",
++      "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-1.11.0.tgz",
++      "integrity": "sha512-cA3p4jTlaMeOtAKR/6AadanOPvKeg8VwgnHhOyfi0yClD0TZS/hi9xu12w4EzA/8NtHu0g6o4RDfcNjqN8l1AQ==",
++      "dev": true
++    },
++    "@parcel/watcher": {
++      "version": "1.12.1",
++      "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-1.12.1.tgz",
++      "integrity": "sha512-od+uCtCxC/KoNQAIE1vWx1YTyKYY+7CTrxBJPRh3cDWw/C0tCtlBMVlrbplscGoEpt6B27KhJDCv82PBxOERNA==",
++      "dev": true,
++      "requires": {
++        "@parcel/utils": "^1.11.0",
++        "chokidar": "^2.1.5"
++      }
++    },
++    "@parcel/workers": {
++      "version": "1.11.0",
++      "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-1.11.0.tgz",
++      "integrity": "sha512-USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==",
++      "dev": true,
++      "requires": {
++        "@parcel/utils": "^1.11.0",
++        "physical-cpu-count": "^2.0.0"
++      }
++    },
++    "@types/q": {
++      "version": "1.5.2",
++      "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz",
++      "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==",
++      "dev": true
++    },
++    "abab": {
++      "version": "2.0.3",
++      "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz",
++      "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==",
++      "dev": true
++    },
++    "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
++    },
++    "acorn": {
++      "version": "7.1.1",
++      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
++      "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
++      "dev": true
++    },
++    "acorn-globals": {
++      "version": "4.3.4",
++      "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
++      "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==",
++      "dev": true,
++      "requires": {
++        "acorn": "^6.0.1",
++        "acorn-walk": "^6.0.1"
++      },
++      "dependencies": {
++        "acorn": {
++          "version": "6.4.1",
++          "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
++          "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
++          "dev": true
++        }
++      }
++    },
++    "acorn-walk": {
++      "version": "6.2.0",
++      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
++      "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==",
++      "dev": true
++    },
++    "ajv": {
++      "version": "6.12.2",
++      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
++      "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
++      "requires": {
++        "fast-deep-equal": "^3.1.1",
++        "fast-json-stable-stringify": "^2.0.0",
++        "json-schema-traverse": "^0.4.1",
++        "uri-js": "^4.2.2"
++      }
++    },
++    "alphanum-sort": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
++      "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
++      "dev": true
++    },
++    "ansi-regex": {
++      "version": "3.0.0",
++      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
++      "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
++      "dev": true
++    },
++    "ansi-styles": {
++      "version": "3.2.1",
++      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
++      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
++      "dev": true,
++      "requires": {
++        "color-convert": "^1.9.0"
++      }
++    },
++    "ansi-to-html": {
++      "version": "0.6.14",
++      "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz",
++      "integrity": "sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA==",
++      "dev": true,
++      "requires": {
++        "entities": "^1.1.2"
++      },
++      "dependencies": {
++        "entities": {
++          "version": "1.1.2",
++          "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
++          "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
++          "dev": true
++        }
++      }
++    },
++    "anymatch": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
++      "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
++      "dev": true,
++      "requires": {
++        "micromatch": "^3.1.4",
++        "normalize-path": "^2.1.1"
++      },
++      "dependencies": {
++        "normalize-path": {
++          "version": "2.1.1",
++          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
++          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
++          "dev": true,
++          "requires": {
++            "remove-trailing-separator": "^1.0.1"
++          }
++        }
++      }
++    },
++    "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"
++      }
++    },
++    "arr-diff": {
++      "version": "4.0.0",
++      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
++      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
++      "dev": true
++    },
++    "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
++    },
++    "arr-union": {
++      "version": "3.1.0",
++      "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
++      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
++      "dev": true
++    },
++    "array-equal": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
++      "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
++      "dev": true
++    },
++    "array-unique": {
++      "version": "0.3.2",
++      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
++      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
++      "dev": true
++    },
++    "asn1": {
++      "version": "0.2.4",
++      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
++      "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
++      "requires": {
++        "safer-buffer": "~2.1.0"
++      }
++    },
++    "asn1.js": {
++      "version": "4.10.1",
++      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
++      "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
++      "dev": true,
++      "requires": {
++        "bn.js": "^4.0.0",
++        "inherits": "^2.0.1",
++        "minimalistic-assert": "^1.0.0"
++      }
++    },
++    "assert": {
++      "version": "1.5.0",
++      "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
++      "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
++      "dev": true,
++      "requires": {
++        "object-assign": "^4.1.1",
++        "util": "0.10.3"
++      },
++      "dependencies": {
++        "inherits": {
++          "version": "2.0.1",
++          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
++          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
++          "dev": true
++        },
++        "util": {
++          "version": "0.10.3",
++          "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
++          "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
++          "dev": true,
++          "requires": {
++            "inherits": "2.0.1"
++          }
++        }
++      }
++    },
++    "assert-plus": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
++      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
++    },
++    "assign-symbols": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
++      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
++      "dev": true
++    },
++    "async-each": {
++      "version": "1.0.3",
++      "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
++      "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
++      "dev": true
++    },
++    "async-limiter": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
++      "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
++      "dev": true
++    },
++    "asynckit": {
++      "version": "0.4.0",
++      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
++      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
++    },
++    "atob": {
++      "version": "2.1.2",
++      "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
++      "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
++      "dev": true
++    },
++    "aws-sign2": {
++      "version": "0.7.0",
++      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
++      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
++    },
++    "aws4": {
++      "version": "1.9.1",
++      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
++      "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
++    },
++    "babel-plugin-dynamic-import-node": {
++      "version": "2.3.3",
++      "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
++      "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
++      "dev": true,
++      "requires": {
++        "object.assign": "^4.1.0"
++      }
++    },
++    "babel-runtime": {
++      "version": "6.26.0",
++      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
++      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
++      "dev": true,
++      "requires": {
++        "core-js": "^2.4.0",
++        "regenerator-runtime": "^0.11.0"
++      },
++      "dependencies": {
++        "regenerator-runtime": {
++          "version": "0.11.1",
++          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
++          "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
++          "dev": true
++        }
++      }
++    },
++    "babel-types": {
++      "version": "6.26.0",
++      "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
++      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
++      "dev": true,
++      "requires": {
++        "babel-runtime": "^6.26.0",
++        "esutils": "^2.0.2",
++        "lodash": "^4.17.4",
++        "to-fast-properties": "^1.0.3"
++      },
++      "dependencies": {
++        "to-fast-properties": {
++          "version": "1.0.3",
++          "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
++          "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
++          "dev": true
++        }
++      }
++    },
++    "babylon-walk": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/babylon-walk/-/babylon-walk-1.0.2.tgz",
++      "integrity": "sha1-OxWl3btIKni0zpwByLoYFwLZ1s4=",
++      "dev": true,
++      "requires": {
++        "babel-runtime": "^6.11.6",
++        "babel-types": "^6.15.0",
++        "lodash.clone": "^4.5.0"
++      }
++    },
+     "balanced-match": {
+       "version": "1.0.0",
+-      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+-      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
++      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
++      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
++      "dev": true
++    },
++    "base": {
++      "version": "0.11.2",
++      "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
++      "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
++      "dev": true,
++      "requires": {
++        "cache-base": "^1.0.1",
++        "class-utils": "^0.3.5",
++        "component-emitter": "^1.2.1",
++        "define-property": "^1.0.0",
++        "isobject": "^3.0.1",
++        "mixin-deep": "^1.2.0",
++        "pascalcase": "^0.1.1"
++      },
++      "dependencies": {
++        "define-property": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
++          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
++          "dev": true,
++          "requires": {
++            "is-descriptor": "^1.0.0"
++          }
++        },
++        "is-accessor-descriptor": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
++          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
++          "dev": true,
++          "requires": {
++            "kind-of": "^6.0.0"
++          }
++        },
++        "is-data-descriptor": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
++          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
++          "dev": true,
++          "requires": {
++            "kind-of": "^6.0.0"
++          }
++        },
++        "is-descriptor": {
++          "version": "1.0.2",
++          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
++          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
++          "dev": true,
++          "requires": {
++            "is-accessor-descriptor": "^1.0.0",
++            "is-data-descriptor": "^1.0.0",
++            "kind-of": "^6.0.2"
++          }
++        }
++      }
++    },
++    "base64-js": {
++      "version": "1.3.1",
++      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
++      "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
++      "dev": true
++    },
++    "bcrypt-pbkdf": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
++      "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
++      "requires": {
++        "tweetnacl": "^0.14.3"
++      }
++    },
++    "binary-extensions": {
++      "version": "1.13.1",
++      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
++      "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
++      "dev": true
++    },
++    "bindings": {
++      "version": "1.5.0",
++      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
++      "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
++      "dev": true,
++      "requires": {
++        "file-uri-to-path": "1.0.0"
++      }
++    },
++    "bn.js": {
++      "version": "4.11.8",
++      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
++      "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
++      "dev": true
++    },
++    "boolbase": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
++      "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
++      "dev": true
++    },
++    "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": "2.3.2",
++      "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
++      "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
++      "dev": true,
++      "requires": {
++        "arr-flatten": "^1.1.0",
++        "array-unique": "^0.3.2",
++        "extend-shallow": "^2.0.1",
++        "fill-range": "^4.0.0",
++        "isobject": "^3.0.1",
++        "repeat-element": "^1.1.2",
++        "snapdragon": "^0.8.1",
++        "snapdragon-node": "^2.0.1",
++        "split-string": "^3.0.2",
++        "to-regex": "^3.0.1"
++      },
++      "dependencies": {
++        "extend-shallow": {
++          "version": "2.0.1",
++          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
++          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
++          "dev": true,
++          "requires": {
++            "is-extendable": "^0.1.0"
++          }
++        }
++      }
++    },
++    "brfs": {
++      "version": "1.6.1",
++      "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz",
++      "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==",
++      "dev": true,
++      "requires": {
++        "quote-stream": "^1.0.1",
++        "resolve": "^1.1.5",
++        "static-module": "^2.2.0",
++        "through2": "^2.0.0"
++      }
++    },
++    "brorand": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
++      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
++      "dev": true
++    },
++    "browser-process-hrtime": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
++      "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
++      "dev": true
++    },
++    "browserify-aes": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
++      "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
++      "dev": true,
++      "requires": {
++        "buffer-xor": "^1.0.3",
++        "cipher-base": "^1.0.0",
++        "create-hash": "^1.1.0",
++        "evp_bytestokey": "^1.0.3",
++        "inherits": "^2.0.1",
++        "safe-buffer": "^5.0.1"
++      }
++    },
++    "browserify-cipher": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
++      "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
++      "dev": true,
++      "requires": {
++        "browserify-aes": "^1.0.4",
++        "browserify-des": "^1.0.0",
++        "evp_bytestokey": "^1.0.0"
++      }
++    },
++    "browserify-des": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
++      "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
++      "dev": true,
++      "requires": {
++        "cipher-base": "^1.0.1",
++        "des.js": "^1.0.0",
++        "inherits": "^2.0.1",
++        "safe-buffer": "^5.1.2"
++      }
++    },
++    "browserify-rsa": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
++      "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
++      "dev": true,
++      "requires": {
++        "bn.js": "^4.1.0",
++        "randombytes": "^2.0.1"
++      }
++    },
++    "browserify-sign": {
++      "version": "4.0.4",
++      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
++      "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
++      "dev": true,
++      "requires": {
++        "bn.js": "^4.1.1",
++        "browserify-rsa": "^4.0.0",
++        "create-hash": "^1.1.0",
++        "create-hmac": "^1.1.2",
++        "elliptic": "^6.0.0",
++        "inherits": "^2.0.1",
++        "parse-asn1": "^5.0.0"
++      }
++    },
++    "browserify-zlib": {
++      "version": "0.2.0",
++      "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
++      "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
++      "dev": true,
++      "requires": {
++        "pako": "~1.0.5"
++      },
++      "dependencies": {
++        "pako": {
++          "version": "1.0.11",
++          "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
++          "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
++          "dev": true
++        }
++      }
++    },
++    "browserslist": {
++      "version": "4.12.0",
++      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz",
++      "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==",
++      "dev": true,
++      "requires": {
++        "caniuse-lite": "^1.0.30001043",
++        "electron-to-chromium": "^1.3.413",
++        "node-releases": "^1.1.53",
++        "pkg-up": "^2.0.0"
++      }
++    },
++    "buffer": {
++      "version": "4.9.2",
++      "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
++      "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
++      "dev": true,
++      "requires": {
++        "base64-js": "^1.0.2",
++        "ieee754": "^1.1.4",
++        "isarray": "^1.0.0"
++      }
++    },
++    "buffer-equal": {
++      "version": "0.0.1",
++      "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
++      "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=",
++      "dev": true
++    },
++    "buffer-from": {
++      "version": "1.1.1",
++      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
++      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
++      "dev": true
++    },
++    "buffer-xor": {
++      "version": "1.0.3",
++      "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
++      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
++      "dev": true
++    },
++    "builtin-status-codes": {
++      "version": "3.0.0",
++      "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
++      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
++      "dev": true
++    },
++    "cache-base": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
++      "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
++      "dev": true,
++      "requires": {
++        "collection-visit": "^1.0.0",
++        "component-emitter": "^1.2.1",
++        "get-value": "^2.0.6",
++        "has-value": "^1.0.0",
++        "isobject": "^3.0.1",
++        "set-value": "^2.0.0",
++        "to-object-path": "^0.3.0",
++        "union-value": "^1.0.0",
++        "unset-value": "^1.0.0"
++      }
++    },
++    "call-me-maybe": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
++      "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
++      "dev": true
++    },
++    "caller-callsite": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
++      "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
++      "dev": true,
++      "requires": {
++        "callsites": "^2.0.0"
++      }
++    },
++    "caller-path": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
++      "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
++      "dev": true,
++      "requires": {
++        "caller-callsite": "^2.0.0"
++      }
++    },
++    "callsites": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
++      "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
++      "dev": true
++    },
++    "camelcase": {
++      "version": "5.3.1",
++      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
++      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
++      "dev": true
++    },
++    "caniuse-api": {
++      "version": "3.0.0",
++      "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
++      "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
++      "dev": true,
++      "requires": {
++        "browserslist": "^4.0.0",
++        "caniuse-lite": "^1.0.0",
++        "lodash.memoize": "^4.1.2",
++        "lodash.uniq": "^4.5.0"
++      }
++    },
++    "caniuse-lite": {
++      "version": "1.0.30001048",
++      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz",
++      "integrity": "sha512-g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg==",
++      "dev": true
++    },
++    "caseless": {
++      "version": "0.12.0",
++      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
++      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
++    },
++    "chalk": {
++      "version": "2.4.2",
++      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
++      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
++      "dev": true,
++      "requires": {
++        "ansi-styles": "^3.2.1",
++        "escape-string-regexp": "^1.0.5",
++        "supports-color": "^5.3.0"
++      },
++      "dependencies": {
++        "supports-color": {
++          "version": "5.5.0",
++          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
++          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
++          "dev": true,
++          "requires": {
++            "has-flag": "^3.0.0"
++          }
++        }
++      }
++    },
++    "chokidar": {
++      "version": "2.1.8",
++      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
++      "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
++      "dev": true,
++      "requires": {
++        "anymatch": "^2.0.0",
++        "async-each": "^1.0.1",
++        "braces": "^2.3.2",
++        "fsevents": "^1.2.7",
++        "glob-parent": "^3.1.0",
++        "inherits": "^2.0.3",
++        "is-binary-path": "^1.0.0",
++        "is-glob": "^4.0.0",
++        "normalize-path": "^3.0.0",
++        "path-is-absolute": "^1.0.0",
++        "readdirp": "^2.2.1",
++        "upath": "^1.1.1"
++      },
++      "dependencies": {
++        "fsevents": {
++          "version": "1.2.12",
++          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz",
++          "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==",
++          "dev": true,
++          "optional": true,
++          "requires": {
++            "bindings": "^1.5.0",
++            "nan": "^2.12.1",
++            "node-pre-gyp": "*"
++          },
++          "dependencies": {
++            "abbrev": {
++              "version": "1.1.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "ansi-regex": {
++              "version": "2.1.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "aproba": {
++              "version": "1.2.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "are-we-there-yet": {
++              "version": "1.1.5",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "delegates": "^1.0.0",
++                "readable-stream": "^2.0.6"
++              }
++            },
++            "balanced-match": {
++              "version": "1.0.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "brace-expansion": {
++              "version": "1.1.11",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "balanced-match": "^1.0.0",
++                "concat-map": "0.0.1"
++              }
++            },
++            "chownr": {
++              "version": "1.1.4",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "code-point-at": {
++              "version": "1.1.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "concat-map": {
++              "version": "0.0.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "console-control-strings": {
++              "version": "1.1.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "core-util-is": {
++              "version": "1.0.2",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "debug": {
++              "version": "3.2.6",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "ms": "^2.1.1"
++              }
++            },
++            "deep-extend": {
++              "version": "0.6.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "delegates": {
++              "version": "1.0.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "detect-libc": {
++              "version": "1.0.3",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "fs-minipass": {
++              "version": "1.2.7",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "minipass": "^2.6.0"
++              }
++            },
++            "fs.realpath": {
++              "version": "1.0.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "gauge": {
++              "version": "2.7.4",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "aproba": "^1.0.3",
++                "console-control-strings": "^1.0.0",
++                "has-unicode": "^2.0.0",
++                "object-assign": "^4.1.0",
++                "signal-exit": "^3.0.0",
++                "string-width": "^1.0.1",
++                "strip-ansi": "^3.0.1",
++                "wide-align": "^1.1.0"
++              }
++            },
++            "glob": {
++              "version": "7.1.6",
++              "bundled": true,
++              "dev": true,
++              "optional": 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"
++              }
++            },
++            "has-unicode": {
++              "version": "2.0.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "iconv-lite": {
++              "version": "0.4.24",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "safer-buffer": ">= 2.1.2 < 3"
++              }
++            },
++            "ignore-walk": {
++              "version": "3.0.3",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "minimatch": "^3.0.4"
++              }
++            },
++            "inflight": {
++              "version": "1.0.6",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "once": "^1.3.0",
++                "wrappy": "1"
++              }
++            },
++            "inherits": {
++              "version": "2.0.4",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "ini": {
++              "version": "1.3.5",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "is-fullwidth-code-point": {
++              "version": "1.0.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "number-is-nan": "^1.0.0"
++              }
++            },
++            "isarray": {
++              "version": "1.0.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "minimatch": {
++              "version": "3.0.4",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "brace-expansion": "^1.1.7"
++              }
++            },
++            "minimist": {
++              "version": "1.2.5",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "minipass": {
++              "version": "2.9.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "safe-buffer": "^5.1.2",
++                "yallist": "^3.0.0"
++              }
++            },
++            "minizlib": {
++              "version": "1.3.3",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "minipass": "^2.9.0"
++              }
++            },
++            "mkdirp": {
++              "version": "0.5.3",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "minimist": "^1.2.5"
++              }
++            },
++            "ms": {
++              "version": "2.1.2",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "needle": {
++              "version": "2.3.3",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "debug": "^3.2.6",
++                "iconv-lite": "^0.4.4",
++                "sax": "^1.2.4"
++              }
++            },
++            "node-pre-gyp": {
++              "version": "0.14.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "detect-libc": "^1.0.2",
++                "mkdirp": "^0.5.1",
++                "needle": "^2.2.1",
++                "nopt": "^4.0.1",
++                "npm-packlist": "^1.1.6",
++                "npmlog": "^4.0.2",
++                "rc": "^1.2.7",
++                "rimraf": "^2.6.1",
++                "semver": "^5.3.0",
++                "tar": "^4.4.2"
++              }
++            },
++            "nopt": {
++              "version": "4.0.3",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "abbrev": "1",
++                "osenv": "^0.1.4"
++              }
++            },
++            "npm-bundled": {
++              "version": "1.1.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "npm-normalize-package-bin": "^1.0.1"
++              }
++            },
++            "npm-normalize-package-bin": {
++              "version": "1.0.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "npm-packlist": {
++              "version": "1.4.8",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "ignore-walk": "^3.0.1",
++                "npm-bundled": "^1.0.1",
++                "npm-normalize-package-bin": "^1.0.1"
++              }
++            },
++            "npmlog": {
++              "version": "4.1.2",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "are-we-there-yet": "~1.1.2",
++                "console-control-strings": "~1.1.0",
++                "gauge": "~2.7.3",
++                "set-blocking": "~2.0.0"
++              }
++            },
++            "number-is-nan": {
++              "version": "1.0.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "object-assign": {
++              "version": "4.1.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "once": {
++              "version": "1.4.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "wrappy": "1"
++              }
++            },
++            "os-homedir": {
++              "version": "1.0.2",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "os-tmpdir": {
++              "version": "1.0.2",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "osenv": {
++              "version": "0.1.5",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "os-homedir": "^1.0.0",
++                "os-tmpdir": "^1.0.0"
++              }
++            },
++            "path-is-absolute": {
++              "version": "1.0.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "process-nextick-args": {
++              "version": "2.0.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "rc": {
++              "version": "1.2.8",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "deep-extend": "^0.6.0",
++                "ini": "~1.3.0",
++                "minimist": "^1.2.0",
++                "strip-json-comments": "~2.0.1"
++              }
++            },
++            "readable-stream": {
++              "version": "2.3.7",
++              "bundled": true,
++              "dev": true,
++              "optional": 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"
++              }
++            },
++            "rimraf": {
++              "version": "2.7.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "glob": "^7.1.3"
++              }
++            },
++            "safe-buffer": {
++              "version": "5.1.2",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "safer-buffer": {
++              "version": "2.1.2",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "sax": {
++              "version": "1.2.4",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "semver": {
++              "version": "5.7.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "set-blocking": {
++              "version": "2.0.0",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "signal-exit": {
++              "version": "3.0.2",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "string-width": {
++              "version": "1.0.2",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "code-point-at": "^1.0.0",
++                "is-fullwidth-code-point": "^1.0.0",
++                "strip-ansi": "^3.0.0"
++              }
++            },
++            "string_decoder": {
++              "version": "1.1.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "safe-buffer": "~5.1.0"
++              }
++            },
++            "strip-ansi": {
++              "version": "3.0.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "ansi-regex": "^2.0.0"
++              }
++            },
++            "strip-json-comments": {
++              "version": "2.0.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "tar": {
++              "version": "4.4.13",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "chownr": "^1.1.1",
++                "fs-minipass": "^1.2.5",
++                "minipass": "^2.8.6",
++                "minizlib": "^1.2.1",
++                "mkdirp": "^0.5.0",
++                "safe-buffer": "^5.1.2",
++                "yallist": "^3.0.3"
++              }
++            },
++            "util-deprecate": {
++              "version": "1.0.2",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "wide-align": {
++              "version": "1.1.3",
++              "bundled": true,
++              "dev": true,
++              "optional": true,
++              "requires": {
++                "string-width": "^1.0.2 || 2"
++              }
++            },
++            "wrappy": {
++              "version": "1.0.2",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            },
++            "yallist": {
++              "version": "3.1.1",
++              "bundled": true,
++              "dev": true,
++              "optional": true
++            }
++          }
++        }
++      }
++    },
++    "cipher-base": {
++      "version": "1.0.4",
++      "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
++      "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
++      "dev": true,
++      "requires": {
++        "inherits": "^2.0.1",
++        "safe-buffer": "^5.0.1"
++      }
++    },
++    "class-utils": {
++      "version": "0.3.6",
++      "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
++      "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
++      "dev": true,
++      "requires": {
++        "arr-union": "^3.1.0",
++        "define-property": "^0.2.5",
++        "isobject": "^3.0.0",
++        "static-extend": "^0.1.1"
++      },
++      "dependencies": {
++        "define-property": {
++          "version": "0.2.5",
++          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
++          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
++          "dev": true,
++          "requires": {
++            "is-descriptor": "^0.1.0"
++          }
++        }
++      }
++    },
++    "cli-cursor": {
++      "version": "2.1.0",
++      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
++      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
++      "dev": true,
++      "requires": {
++        "restore-cursor": "^2.0.0"
++      }
++    },
++    "cli-spinners": {
++      "version": "1.3.1",
++      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz",
++      "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==",
++      "dev": true
++    },
++    "cliui": {
++      "version": "5.0.0",
++      "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
++      "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
++      "dev": true,
++      "requires": {
++        "string-width": "^3.1.0",
++        "strip-ansi": "^5.2.0",
++        "wrap-ansi": "^5.1.0"
++      },
++      "dependencies": {
++        "ansi-regex": {
++          "version": "4.1.0",
++          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
++          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
++          "dev": true
++        },
++        "strip-ansi": {
++          "version": "5.2.0",
++          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
++          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
++          "dev": true,
++          "requires": {
++            "ansi-regex": "^4.1.0"
++          }
++        }
++      }
++    },
++    "clone": {
++      "version": "2.1.2",
++      "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
++      "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
++      "dev": true
++    },
++    "clones": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/clones/-/clones-1.2.0.tgz",
++      "integrity": "sha512-FXDYw4TjR8wgPZYui2LeTqWh1BLpfQ8lB6upMtlpDF6WlOOxghmTTxWyngdKTgozqBgKnHbTVwTE+hOHqAykuQ==",
++      "dev": true
++    },
++    "coa": {
++      "version": "2.0.2",
++      "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
++      "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==",
++      "dev": true,
++      "requires": {
++        "@types/q": "^1.5.1",
++        "chalk": "^2.4.1",
++        "q": "^1.1.2"
++      }
++    },
++    "collection-visit": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
++      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
++      "dev": true,
++      "requires": {
++        "map-visit": "^1.0.0",
++        "object-visit": "^1.0.0"
++      }
++    },
++    "color": {
++      "version": "3.1.2",
++      "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz",
++      "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==",
++      "dev": true,
++      "requires": {
++        "color-convert": "^1.9.1",
++        "color-string": "^1.5.2"
++      }
++    },
++    "color-convert": {
++      "version": "1.9.3",
++      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
++      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
++      "dev": true,
++      "requires": {
++        "color-name": "1.1.3"
++      }
++    },
++    "color-name": {
++      "version": "1.1.3",
++      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
++      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
++      "dev": true
++    },
++    "color-string": {
++      "version": "1.5.3",
++      "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
++      "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
++      "dev": true,
++      "requires": {
++        "color-name": "^1.0.0",
++        "simple-swizzle": "^0.2.2"
++      }
++    },
++    "combined-stream": {
++      "version": "1.0.8",
++      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
++      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
++      "requires": {
++        "delayed-stream": "~1.0.0"
++      }
++    },
++    "command-exists": {
++      "version": "1.2.9",
++      "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
++      "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==",
++      "dev": true
++    },
++    "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
++    },
++    "component-emitter": {
++      "version": "1.3.0",
++      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
++      "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
++      "dev": true
++    },
++    "concat-map": {
++      "version": "0.0.1",
++      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
++      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
++      "dev": true
++    },
++    "concat-stream": {
++      "version": "1.6.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"
++      }
++    },
++    "config-chain": {
++      "version": "1.1.12",
++      "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
++      "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
++      "dev": true,
++      "requires": {
++        "ini": "^1.3.4",
++        "proto-list": "~1.2.1"
++      }
++    },
++    "console-browserify": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
++      "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
++      "dev": true
++    },
++    "constants-browserify": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
++      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
++      "dev": true
++    },
++    "convert-source-map": {
++      "version": "1.7.0",
++      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
++      "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
++      "dev": true,
++      "requires": {
++        "safe-buffer": "~5.1.1"
++      }
++    },
++    "copy-descriptor": {
++      "version": "0.1.1",
++      "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
++      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
++      "dev": true
++    },
++    "core-js": {
++      "version": "2.6.11",
++      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
++      "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
++      "dev": true
++    },
++    "core-util-is": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
++      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
++    },
++    "cosmiconfig": {
++      "version": "5.2.1",
++      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
++      "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
++      "dev": true,
++      "requires": {
++        "import-fresh": "^2.0.0",
++        "is-directory": "^0.3.1",
++        "js-yaml": "^3.13.1",
++        "parse-json": "^4.0.0"
++      }
++    },
++    "create-ecdh": {
++      "version": "4.0.3",
++      "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
++      "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
++      "dev": true,
++      "requires": {
++        "bn.js": "^4.1.0",
++        "elliptic": "^6.0.0"
++      }
++    },
++    "create-hash": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
++      "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
++      "dev": true,
++      "requires": {
++        "cipher-base": "^1.0.1",
++        "inherits": "^2.0.1",
++        "md5.js": "^1.3.4",
++        "ripemd160": "^2.0.1",
++        "sha.js": "^2.4.0"
++      }
++    },
++    "create-hmac": {
++      "version": "1.1.7",
++      "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
++      "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
++      "dev": true,
++      "requires": {
++        "cipher-base": "^1.0.3",
++        "create-hash": "^1.1.0",
++        "inherits": "^2.0.1",
++        "ripemd160": "^2.0.0",
++        "safe-buffer": "^5.0.1",
++        "sha.js": "^2.4.8"
++      }
++    },
++    "cross-spawn": {
++      "version": "6.0.5",
++      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
++      "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
++      "dev": true,
++      "requires": {
++        "nice-try": "^1.0.4",
++        "path-key": "^2.0.1",
++        "semver": "^5.5.0",
++        "shebang-command": "^1.2.0",
++        "which": "^1.2.9"
++      }
++    },
++    "crypto-browserify": {
++      "version": "3.12.0",
++      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
++      "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
++      "dev": true,
++      "requires": {
++        "browserify-cipher": "^1.0.0",
++        "browserify-sign": "^4.0.0",
++        "create-ecdh": "^4.0.0",
++        "create-hash": "^1.1.0",
++        "create-hmac": "^1.1.0",
++        "diffie-hellman": "^5.0.0",
++        "inherits": "^2.0.1",
++        "pbkdf2": "^3.0.3",
++        "public-encrypt": "^4.0.0",
++        "randombytes": "^2.0.0",
++        "randomfill": "^1.0.3"
++      }
++    },
++    "css-color-names": {
++      "version": "0.0.4",
++      "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
++      "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
++      "dev": true
++    },
++    "css-declaration-sorter": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
++      "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
++      "dev": true,
++      "requires": {
++        "postcss": "^7.0.1",
++        "timsort": "^0.3.0"
++      }
++    },
++    "css-modules-loader-core": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz",
++      "integrity": "sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=",
++      "dev": true,
++      "requires": {
++        "icss-replace-symbols": "1.1.0",
++        "postcss": "6.0.1",
++        "postcss-modules-extract-imports": "1.1.0",
++        "postcss-modules-local-by-default": "1.2.0",
++        "postcss-modules-scope": "1.1.0",
++        "postcss-modules-values": "1.3.0"
++      },
++      "dependencies": {
++        "ansi-regex": {
++          "version": "2.1.1",
++          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
++          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
++          "dev": true
++        },
++        "ansi-styles": {
++          "version": "2.2.1",
++          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
++          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
++          "dev": true
++        },
++        "chalk": {
++          "version": "1.1.3",
++          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
++          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
++          "dev": true,
++          "requires": {
++            "ansi-styles": "^2.2.1",
++            "escape-string-regexp": "^1.0.2",
++            "has-ansi": "^2.0.0",
++            "strip-ansi": "^3.0.0",
++            "supports-color": "^2.0.0"
++          },
++          "dependencies": {
++            "supports-color": {
++              "version": "2.0.0",
++              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
++              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
++              "dev": true
++            }
++          }
++        },
++        "has-flag": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
++          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
++          "dev": true
++        },
++        "postcss": {
++          "version": "6.0.1",
++          "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz",
++          "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=",
++          "dev": true,
++          "requires": {
++            "chalk": "^1.1.3",
++            "source-map": "^0.5.6",
++            "supports-color": "^3.2.3"
++          }
++        },
++        "source-map": {
++          "version": "0.5.7",
++          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++          "dev": true
++        },
++        "strip-ansi": {
++          "version": "3.0.1",
++          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
++          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
++          "dev": true,
++          "requires": {
++            "ansi-regex": "^2.0.0"
++          }
++        },
++        "supports-color": {
++          "version": "3.2.3",
++          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
++          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
++          "dev": true,
++          "requires": {
++            "has-flag": "^1.0.0"
++          }
++        }
++      }
++    },
++    "css-select": {
++      "version": "2.1.0",
++      "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
++      "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
++      "dev": true,
++      "requires": {
++        "boolbase": "^1.0.0",
++        "css-what": "^3.2.1",
++        "domutils": "^1.7.0",
++        "nth-check": "^1.0.2"
++      }
++    },
++    "css-select-base-adapter": {
++      "version": "0.1.1",
++      "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
++      "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==",
++      "dev": true
++    },
++    "css-selector-tokenizer": {
++      "version": "0.7.2",
++      "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz",
++      "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==",
++      "dev": true,
++      "requires": {
++        "cssesc": "^3.0.0",
++        "fastparse": "^1.1.2",
++        "regexpu-core": "^4.6.0"
++      }
++    },
++    "css-tree": {
++      "version": "1.0.0-alpha.37",
++      "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
++      "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==",
++      "dev": true,
++      "requires": {
++        "mdn-data": "2.0.4",
++        "source-map": "^0.6.1"
++      }
++    },
++    "css-what": {
++      "version": "3.2.1",
++      "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz",
++      "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==",
++      "dev": true
++    },
++    "cssesc": {
++      "version": "3.0.0",
++      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
++      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
++      "dev": true
++    },
++    "cssnano": {
++      "version": "4.1.10",
++      "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz",
++      "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==",
++      "dev": true,
++      "requires": {
++        "cosmiconfig": "^5.0.0",
++        "cssnano-preset-default": "^4.0.7",
++        "is-resolvable": "^1.0.0",
++        "postcss": "^7.0.0"
++      }
++    },
++    "cssnano-preset-default": {
++      "version": "4.0.7",
++      "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz",
++      "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==",
++      "dev": true,
++      "requires": {
++        "css-declaration-sorter": "^4.0.1",
++        "cssnano-util-raw-cache": "^4.0.1",
++        "postcss": "^7.0.0",
++        "postcss-calc": "^7.0.1",
++        "postcss-colormin": "^4.0.3",
++        "postcss-convert-values": "^4.0.1",
++        "postcss-discard-comments": "^4.0.2",
++        "postcss-discard-duplicates": "^4.0.2",
++        "postcss-discard-empty": "^4.0.1",
++        "postcss-discard-overridden": "^4.0.1",
++        "postcss-merge-longhand": "^4.0.11",
++        "postcss-merge-rules": "^4.0.3",
++        "postcss-minify-font-values": "^4.0.2",
++        "postcss-minify-gradients": "^4.0.2",
++        "postcss-minify-params": "^4.0.2",
++        "postcss-minify-selectors": "^4.0.2",
++        "postcss-normalize-charset": "^4.0.1",
++        "postcss-normalize-display-values": "^4.0.2",
++        "postcss-normalize-positions": "^4.0.2",
++        "postcss-normalize-repeat-style": "^4.0.2",
++        "postcss-normalize-string": "^4.0.2",
++        "postcss-normalize-timing-functions": "^4.0.2",
++        "postcss-normalize-unicode": "^4.0.1",
++        "postcss-normalize-url": "^4.0.1",
++        "postcss-normalize-whitespace": "^4.0.2",
++        "postcss-ordered-values": "^4.1.2",
++        "postcss-reduce-initial": "^4.0.3",
++        "postcss-reduce-transforms": "^4.0.2",
++        "postcss-svgo": "^4.0.2",
++        "postcss-unique-selectors": "^4.0.1"
++      }
++    },
++    "cssnano-util-get-arguments": {
++      "version": "4.0.0",
++      "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
++      "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=",
++      "dev": true
++    },
++    "cssnano-util-get-match": {
++      "version": "4.0.0",
++      "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz",
++      "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=",
++      "dev": true
++    },
++    "cssnano-util-raw-cache": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz",
++      "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==",
++      "dev": true,
++      "requires": {
++        "postcss": "^7.0.0"
++      }
++    },
++    "cssnano-util-same-parent": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz",
++      "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==",
++      "dev": true
++    },
++    "csso": {
++      "version": "4.0.3",
++      "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz",
++      "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==",
++      "dev": true,
++      "requires": {
++        "css-tree": "1.0.0-alpha.39"
++      },
++      "dependencies": {
++        "css-tree": {
++          "version": "1.0.0-alpha.39",
++          "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz",
++          "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==",
++          "dev": true,
++          "requires": {
++            "mdn-data": "2.0.6",
++            "source-map": "^0.6.1"
++          }
++        },
++        "mdn-data": {
++          "version": "2.0.6",
++          "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz",
++          "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==",
++          "dev": true
++        }
++      }
++    },
++    "cssom": {
++      "version": "0.3.8",
++      "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
++      "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
++      "dev": true
++    },
++    "cssstyle": {
++      "version": "1.4.0",
++      "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz",
++      "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==",
++      "dev": true,
++      "requires": {
++        "cssom": "0.3.x"
++      }
++    },
++    "dashdash": {
++      "version": "1.14.1",
++      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
++      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
++      "requires": {
++        "assert-plus": "^1.0.0"
++      }
++    },
++    "data-urls": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
++      "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
++      "dev": true,
++      "requires": {
++        "abab": "^2.0.0",
++        "whatwg-mimetype": "^2.2.0",
++        "whatwg-url": "^7.0.0"
++      }
++    },
++    "deasync": {
++      "version": "0.1.19",
++      "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.19.tgz",
++      "integrity": "sha512-oh3MRktfnPlLysCPpBpKZZzb4cUC/p0aA3SyRGp15lN30juJBTo/CiD0d4fR+f1kBtUQoJj1NE9RPNWQ7BQ9Mg==",
++      "dev": true,
++      "requires": {
++        "bindings": "^1.5.0",
++        "node-addon-api": "^1.7.1"
++      }
++    },
++    "debug": {
++      "version": "4.1.1",
++      "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
++      "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
++      "dev": true,
++      "requires": {
++        "ms": "^2.1.1"
++      }
++    },
++    "decamelize": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
++      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
++      "dev": true
++    },
++    "decode-uri-component": {
++      "version": "0.2.0",
++      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
++      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
++      "dev": true
++    },
++    "deep-is": {
++      "version": "0.1.3",
++      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
++      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
++      "dev": true
++    },
++    "defaults": {
++      "version": "1.0.3",
++      "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
++      "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
++      "dev": true,
++      "requires": {
++        "clone": "^1.0.2"
++      },
++      "dependencies": {
++        "clone": {
++          "version": "1.0.4",
++          "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
++          "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
++          "dev": true
++        }
++      }
++    },
++    "define-properties": {
++      "version": "1.1.3",
++      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
++      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
++      "dev": true,
++      "requires": {
++        "object-keys": "^1.0.12"
++      }
++    },
++    "define-property": {
++      "version": "2.0.2",
++      "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
++      "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
++      "dev": true,
++      "requires": {
++        "is-descriptor": "^1.0.2",
++        "isobject": "^3.0.1"
++      },
++      "dependencies": {
++        "is-accessor-descriptor": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
++          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
++          "dev": true,
++          "requires": {
++            "kind-of": "^6.0.0"
++          }
++        },
++        "is-data-descriptor": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
++          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
++          "dev": true,
++          "requires": {
++            "kind-of": "^6.0.0"
++          }
++        },
++        "is-descriptor": {
++          "version": "1.0.2",
++          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
++          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
++          "dev": true,
++          "requires": {
++            "is-accessor-descriptor": "^1.0.0",
++            "is-data-descriptor": "^1.0.0",
++            "kind-of": "^6.0.2"
++          }
++        }
++      }
++    },
++    "delayed-stream": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
++      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
++    },
++    "depd": {
++      "version": "1.1.2",
++      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
++      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
++      "dev": true
++    },
++    "des.js": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
++      "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
++      "dev": true,
++      "requires": {
++        "inherits": "^2.0.1",
++        "minimalistic-assert": "^1.0.0"
++      }
++    },
++    "destroy": {
++      "version": "1.0.4",
++      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
++      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
++      "dev": true
++    },
++    "diffie-hellman": {
++      "version": "5.0.3",
++      "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
++      "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
++      "dev": true,
++      "requires": {
++        "bn.js": "^4.1.0",
++        "miller-rabin": "^4.0.0",
++        "randombytes": "^2.0.0"
++      }
++    },
++    "dom-serializer": {
++      "version": "0.2.2",
++      "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
++      "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
++      "dev": true,
++      "requires": {
++        "domelementtype": "^2.0.1",
++        "entities": "^2.0.0"
++      },
++      "dependencies": {
++        "domelementtype": {
++          "version": "2.0.1",
++          "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
++          "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==",
++          "dev": true
++        }
++      }
++    },
++    "domain-browser": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
++      "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
++      "dev": true
++    },
++    "domelementtype": {
++      "version": "1.3.1",
++      "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
++      "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
++      "dev": true
++    },
++    "domexception": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
++      "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
++      "dev": true,
++      "requires": {
++        "webidl-conversions": "^4.0.2"
++      }
++    },
++    "domhandler": {
++      "version": "2.4.2",
++      "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
++      "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
++      "dev": true,
++      "requires": {
++        "domelementtype": "1"
++      }
++    },
++    "domutils": {
++      "version": "1.7.0",
++      "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
++      "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
++      "dev": true,
++      "requires": {
++        "dom-serializer": "0",
++        "domelementtype": "1"
++      }
++    },
++    "dot-prop": {
++      "version": "5.2.0",
++      "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
++      "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
++      "dev": true,
++      "requires": {
++        "is-obj": "^2.0.0"
++      }
++    },
++    "dotenv": {
++      "version": "5.0.1",
++      "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz",
++      "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==",
++      "dev": true
++    },
++    "dotenv-expand": {
++      "version": "4.2.0",
++      "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz",
++      "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=",
++      "dev": true
++    },
++    "duplexer2": {
++      "version": "0.1.4",
++      "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
++      "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
++      "dev": true,
++      "requires": {
++        "readable-stream": "^2.0.2"
++      }
++    },
++    "ecc-jsbn": {
++      "version": "0.1.2",
++      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
++      "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
++      "requires": {
++        "jsbn": "~0.1.0",
++        "safer-buffer": "^2.1.0"
++      }
++    },
++    "editorconfig": {
++      "version": "0.15.3",
++      "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
++      "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==",
++      "dev": true,
++      "requires": {
++        "commander": "^2.19.0",
++        "lru-cache": "^4.1.5",
++        "semver": "^5.6.0",
++        "sigmund": "^1.0.1"
++      }
++    },
++    "ee-first": {
++      "version": "1.1.1",
++      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
++      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
++      "dev": true
++    },
++    "electron-to-chromium": {
++      "version": "1.3.418",
++      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.418.tgz",
++      "integrity": "sha512-i2QrQtHes5fK/F9QGG5XacM5WKEuR322fxTYF9e8O9Gu0mc0WmjjwGpV8c7Htso6Zf2Di18lc3SIPxmMeRFBug==",
++      "dev": true
++    },
++    "elliptic": {
++      "version": "6.5.2",
++      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
++      "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
++      "dev": true,
++      "requires": {
++        "bn.js": "^4.4.0",
++        "brorand": "^1.0.1",
++        "hash.js": "^1.0.0",
++        "hmac-drbg": "^1.0.0",
++        "inherits": "^2.0.1",
++        "minimalistic-assert": "^1.0.0",
++        "minimalistic-crypto-utils": "^1.0.0"
++      }
++    },
++    "elm-hot": {
++      "version": "1.1.1",
++      "resolved": "https://registry.npmjs.org/elm-hot/-/elm-hot-1.1.1.tgz",
++      "integrity": "sha512-ZHjoHd2Ev6riNXNQirj3J+GKKXXwedAUikfFBYzlVL/+3CdGs96cpZ7nhAk4c5l//Qa9ymltrqX36mOlr0pPFA==",
++      "dev": true
++    },
++    "emoji-regex": {
++      "version": "7.0.3",
++      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
++      "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
++      "dev": true
++    },
++    "encodeurl": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
++      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
++      "dev": true
++    },
++    "entities": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
++      "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==",
++      "dev": true
++    },
++    "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-abstract": {
++      "version": "1.17.5",
++      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
++      "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
++      "dev": true,
++      "requires": {
++        "es-to-primitive": "^1.2.1",
++        "function-bind": "^1.1.1",
++        "has": "^1.0.3",
++        "has-symbols": "^1.0.1",
++        "is-callable": "^1.1.5",
++        "is-regex": "^1.0.5",
++        "object-inspect": "^1.7.0",
++        "object-keys": "^1.1.1",
++        "object.assign": "^4.1.0",
++        "string.prototype.trimleft": "^2.1.1",
++        "string.prototype.trimright": "^2.1.1"
++      }
++    },
++    "es-to-primitive": {
++      "version": "1.2.1",
++      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
++      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
++      "dev": true,
++      "requires": {
++        "is-callable": "^1.1.4",
++        "is-date-object": "^1.0.1",
++        "is-symbol": "^1.0.2"
++      }
++    },
++    "escape-html": {
++      "version": "1.0.3",
++      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
++      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
++      "dev": true
++    },
++    "escape-string-regexp": {
++      "version": "1.0.5",
++      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
++      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
++      "dev": true
++    },
++    "escodegen": {
++      "version": "1.9.1",
++      "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
++      "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
++      "dev": true,
++      "requires": {
++        "esprima": "^3.1.3",
++        "estraverse": "^4.2.0",
++        "esutils": "^2.0.2",
++        "optionator": "^0.8.1",
++        "source-map": "~0.6.1"
++      },
++      "dependencies": {
++        "esprima": {
++          "version": "3.1.3",
++          "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
++          "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
++          "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
++    },
++    "estraverse": {
++      "version": "4.3.0",
++      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
++      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
++      "dev": true
++    },
++    "esutils": {
++      "version": "2.0.3",
++      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
++      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
++      "dev": true
++    },
++    "etag": {
++      "version": "1.8.1",
++      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
++      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
++      "dev": true
++    },
++    "events": {
++      "version": "3.1.0",
++      "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
++      "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==",
++      "dev": true
++    },
++    "evp_bytestokey": {
++      "version": "1.0.3",
++      "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
++      "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
++      "dev": true,
++      "requires": {
++        "md5.js": "^1.3.4",
++        "safe-buffer": "^5.1.1"
++      }
++    },
++    "expand-brackets": {
++      "version": "2.1.4",
++      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
++      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
++      "dev": true,
++      "requires": {
++        "debug": "^2.3.3",
++        "define-property": "^0.2.5",
++        "extend-shallow": "^2.0.1",
++        "posix-character-classes": "^0.1.0",
++        "regex-not": "^1.0.0",
++        "snapdragon": "^0.8.1",
++        "to-regex": "^3.0.1"
++      },
++      "dependencies": {
++        "debug": {
++          "version": "2.6.9",
++          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
++          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
++          "dev": true,
++          "requires": {
++            "ms": "2.0.0"
++          }
++        },
++        "define-property": {
++          "version": "0.2.5",
++          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
++          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
++          "dev": true,
++          "requires": {
++            "is-descriptor": "^0.1.0"
++          }
++        },
++        "extend-shallow": {
++          "version": "2.0.1",
++          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
++          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
++          "dev": true,
++          "requires": {
++            "is-extendable": "^0.1.0"
++          }
++        },
++        "ms": {
++          "version": "2.0.0",
++          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
++          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
++          "dev": true
++        }
++      }
++    },
++    "extend": {
++      "version": "3.0.2",
++      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
++      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
++    },
++    "extend-shallow": {
++      "version": "3.0.2",
++      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
++      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
++      "dev": true,
++      "requires": {
++        "assign-symbols": "^1.0.0",
++        "is-extendable": "^1.0.1"
++      },
++      "dependencies": {
++        "is-extendable": {
++          "version": "1.0.1",
++          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
++          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
++          "dev": true,
++          "requires": {
++            "is-plain-object": "^2.0.4"
++          }
++        }
++      }
++    },
++    "extglob": {
++      "version": "2.0.4",
++      "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
++      "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
++      "dev": true,
++      "requires": {
++        "array-unique": "^0.3.2",
++        "define-property": "^1.0.0",
++        "expand-brackets": "^2.1.4",
++        "extend-shallow": "^2.0.1",
++        "fragment-cache": "^0.2.1",
++        "regex-not": "^1.0.0",
++        "snapdragon": "^0.8.1",
++        "to-regex": "^3.0.1"
++      },
++      "dependencies": {
++        "define-property": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
++          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
++          "dev": true,
++          "requires": {
++            "is-descriptor": "^1.0.0"
++          }
++        },
++        "extend-shallow": {
++          "version": "2.0.1",
++          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
++          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
++          "dev": true,
++          "requires": {
++            "is-extendable": "^0.1.0"
++          }
++        },
++        "is-accessor-descriptor": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
++          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
++          "dev": true,
++          "requires": {
++            "kind-of": "^6.0.0"
++          }
++        },
++        "is-data-descriptor": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
++          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
++          "dev": true,
++          "requires": {
++            "kind-of": "^6.0.0"
++          }
++        },
++        "is-descriptor": {
++          "version": "1.0.2",
++          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
++          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
++          "dev": true,
++          "requires": {
++            "is-accessor-descriptor": "^1.0.0",
++            "is-data-descriptor": "^1.0.0",
++            "kind-of": "^6.0.2"
++          }
++        }
++      }
++    },
++    "extsprintf": {
++      "version": "1.3.0",
++      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
++      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
++    },
++    "falafel": {
++      "version": "2.2.4",
++      "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz",
++      "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==",
++      "dev": true,
++      "requires": {
++        "acorn": "^7.1.1",
++        "foreach": "^2.0.5",
++        "isarray": "^2.0.1",
++        "object-keys": "^1.0.6"
++      },
++      "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
++        }
++      }
++    },
++    "fast-deep-equal": {
++      "version": "3.1.1",
++      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
++      "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
++    },
++    "fast-glob": {
++      "version": "2.2.7",
++      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
++      "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==",
++      "dev": true,
++      "requires": {
++        "@mrmlnc/readdir-enhanced": "^2.2.1",
++        "@nodelib/fs.stat": "^1.1.2",
++        "glob-parent": "^3.1.0",
++        "is-glob": "^4.0.0",
++        "merge2": "^1.2.3",
++        "micromatch": "^3.1.10"
++      }
++    },
++    "fast-json-stable-stringify": {
++      "version": "2.1.0",
++      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
++      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
++    },
++    "fast-levenshtein": {
++      "version": "2.0.6",
++      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
++      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
++      "dev": true
++    },
++    "fastparse": {
++      "version": "1.1.2",
++      "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
++      "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
++      "dev": true
++    },
++    "file-uri-to-path": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
++      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
++      "dev": true
++    },
++    "filesize": {
++      "version": "3.6.1",
++      "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
++      "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==",
++      "dev": true
++    },
++    "fill-range": {
++      "version": "4.0.0",
++      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
++      "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
++      "dev": true,
++      "requires": {
++        "extend-shallow": "^2.0.1",
++        "is-number": "^3.0.0",
++        "repeat-string": "^1.6.1",
++        "to-regex-range": "^2.1.0"
++      },
++      "dependencies": {
++        "extend-shallow": {
++          "version": "2.0.1",
++          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
++          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
++          "dev": true,
++          "requires": {
++            "is-extendable": "^0.1.0"
++          }
++        }
++      }
++    },
++    "find-elm-dependencies": {
++      "version": "2.0.2",
++      "resolved": "https://registry.npmjs.org/find-elm-dependencies/-/find-elm-dependencies-2.0.2.tgz",
++      "integrity": "sha512-nM5UCbccD1G8CGK2GsM7ykG3ksOAl9E+34jiDfl07CAl2OPnLpBVWY2hlxEmIkSBfdJjSopEowWHrO0cI8RhxQ==",
++      "dev": true,
++      "requires": {
++        "firstline": "1.2.0",
++        "lodash": "4.17.15"
++      }
++    },
++    "find-up": {
++      "version": "2.1.0",
++      "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
++      "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
++      "dev": true,
++      "requires": {
++        "locate-path": "^2.0.0"
++      }
++    },
++    "firstline": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/firstline/-/firstline-1.2.0.tgz",
++      "integrity": "sha1-yfSIbn9/vwr8EtcZQdzgaxkq6gU=",
++      "dev": true
++    },
++    "for-in": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
++      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
++      "dev": true
++    },
++    "foreach": {
++      "version": "2.0.5",
++      "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
++      "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
++      "dev": true
++    },
++    "forever-agent": {
++      "version": "0.6.1",
++      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
++      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
++    },
++    "form-data": {
++      "version": "2.3.3",
++      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
++      "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
++      "requires": {
++        "asynckit": "^0.4.0",
++        "combined-stream": "^1.0.6",
++        "mime-types": "^2.1.12"
++      }
++    },
++    "fragment-cache": {
++      "version": "0.2.1",
++      "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
++      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
++      "dev": true,
++      "requires": {
++        "map-cache": "^0.2.2"
++      }
++    },
++    "fresh": {
++      "version": "0.5.2",
++      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
++      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
++      "dev": true
++    },
++    "fs.realpath": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
++      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
++      "dev": true
++    },
++    "function-bind": {
++      "version": "1.1.1",
++      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
++      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
++      "dev": true
++    },
++    "get-caller-file": {
++      "version": "2.0.5",
++      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
++      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
++      "dev": true
++    },
++    "get-port": {
++      "version": "3.2.0",
++      "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
++      "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=",
++      "dev": true
++    },
++    "get-value": {
++      "version": "2.0.6",
++      "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
++      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
++      "dev": true
++    },
++    "getpass": {
++      "version": "0.1.7",
++      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
++      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
++      "requires": {
++        "assert-plus": "^1.0.0"
++      }
++    },
++    "glob": {
++      "version": "7.1.4",
++      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
++      "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
++      "dev": true,
++      "requires": {
++        "fs.realpath": "^1.0.0",
++        "inflight": "^1.0.4",
++        "inherits": "2",
++        "minimatch": "^3.0.4",
++        "once": "^1.3.0",
++        "path-is-absolute": "^1.0.0"
++      }
++    },
++    "glob-parent": {
++      "version": "3.1.0",
++      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
++      "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
++      "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": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
++          "dev": true,
++          "requires": {
++            "is-extglob": "^2.1.0"
++          }
++        }
++      }
++    },
++    "glob-to-regexp": {
++      "version": "0.3.0",
++      "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
++      "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
++      "dev": true
++    },
++    "globals": {
++      "version": "11.12.0",
++      "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
++      "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
++      "dev": true
++    },
++    "graceful-fs": {
++      "version": "4.2.3",
++      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
++      "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
++      "dev": true
++    },
++    "grapheme-breaker": {
++      "version": "0.3.2",
++      "resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz",
++      "integrity": "sha1-W55reMODJFLSuiuxy4MPlidkEKw=",
++      "dev": true,
++      "requires": {
++        "brfs": "^1.2.0",
++        "unicode-trie": "^0.3.1"
++      }
++    },
++    "har-schema": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
++      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
++    },
++    "har-validator": {
++      "version": "5.1.3",
++      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
++      "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
++      "requires": {
++        "ajv": "^6.5.5",
++        "har-schema": "^2.0.0"
++      }
++    },
++    "has": {
++      "version": "1.0.3",
++      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
++      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
++      "dev": true,
++      "requires": {
++        "function-bind": "^1.1.1"
++      }
++    },
++    "has-ansi": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
++      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
++      "dev": true,
++      "requires": {
++        "ansi-regex": "^2.0.0"
++      },
++      "dependencies": {
++        "ansi-regex": {
++          "version": "2.1.1",
++          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
++          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
++          "dev": true
++        }
++      }
++    },
++    "has-flag": {
++      "version": "3.0.0",
++      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
++      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
++      "dev": true
++    },
++    "has-symbols": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
++      "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
++      "dev": true
++    },
++    "has-value": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
++      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
++      "dev": true,
++      "requires": {
++        "get-value": "^2.0.6",
++        "has-values": "^1.0.0",
++        "isobject": "^3.0.0"
++      }
++    },
++    "has-values": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
++      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
++      "dev": true,
++      "requires": {
++        "is-number": "^3.0.0",
++        "kind-of": "^4.0.0"
++      },
++      "dependencies": {
++        "kind-of": {
++          "version": "4.0.0",
++          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
++          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
++          "dev": true,
++          "requires": {
++            "is-buffer": "^1.1.5"
++          }
++        }
++      }
++    },
++    "hash-base": {
++      "version": "3.0.4",
++      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
++      "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
++      "dev": true,
++      "requires": {
++        "inherits": "^2.0.1",
++        "safe-buffer": "^5.0.1"
++      }
++    },
++    "hash.js": {
++      "version": "1.1.7",
++      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
++      "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
++      "dev": true,
++      "requires": {
++        "inherits": "^2.0.3",
++        "minimalistic-assert": "^1.0.1"
++      }
++    },
++    "hex-color-regex": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
++      "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
++      "dev": true
++    },
++    "hmac-drbg": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
++      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
++      "dev": true,
++      "requires": {
++        "hash.js": "^1.0.3",
++        "minimalistic-assert": "^1.0.0",
++        "minimalistic-crypto-utils": "^1.0.1"
++      }
++    },
++    "hsl-regex": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
++      "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
++      "dev": true
++    },
++    "hsla-regex": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
++      "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
++      "dev": true
++    },
++    "html-comment-regex": {
++      "version": "1.1.2",
++      "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz",
++      "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==",
++      "dev": true
++    },
++    "html-encoding-sniffer": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
++      "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
++      "dev": true,
++      "requires": {
++        "whatwg-encoding": "^1.0.1"
++      }
++    },
++    "html-tags": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-1.2.0.tgz",
++      "integrity": "sha1-x43mW1Zjqll5id0rerSSANfk25g=",
++      "dev": true
++    },
++    "htmlnano": {
++      "version": "0.2.5",
++      "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-0.2.5.tgz",
++      "integrity": "sha512-X1iPSwXG/iF9bVs+/obt2n6F64uH0ETkA8zp7qFDmLW9/+A6ueHGeb/+qD67T21qUY22owZPMdawljN50ajkqA==",
++      "dev": true,
++      "requires": {
++        "cssnano": "^4.1.10",
++        "normalize-html-whitespace": "^1.0.0",
++        "posthtml": "^0.12.0",
++        "posthtml-render": "^1.1.5",
++        "purgecss": "^1.4.0",
++        "svgo": "^1.3.2",
++        "terser": "^4.3.9",
++        "uncss": "^0.17.2"
++      },
++      "dependencies": {
++        "posthtml": {
++          "version": "0.12.3",
++          "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.12.3.tgz",
++          "integrity": "sha512-Fbpi95+JJyR0tqU7pUy1zTSQFjAsluuwB9pJ1h0jtnGk7n/O2TBtP5nDl9rV0JVACjQ1Lm5wSp4ppChr8u3MhA==",
++          "dev": true,
++          "requires": {
++            "posthtml-parser": "^0.4.2",
++            "posthtml-render": "^1.2.2"
++          }
++        },
++        "terser": {
++          "version": "4.6.12",
++          "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.12.tgz",
++          "integrity": "sha512-fnIwuaKjFPANG6MAixC/k1TDtnl1YlPLUlLVIxxGZUn1gfUx2+l3/zGNB72wya+lgsb50QBi2tUV75RiODwnww==",
++          "dev": true,
++          "requires": {
++            "commander": "^2.20.0",
++            "source-map": "~0.6.1",
++            "source-map-support": "~0.5.12"
++          }
++        }
++      }
++    },
++    "htmlparser2": {
++      "version": "3.10.1",
++      "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
++      "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
++      "dev": true,
++      "requires": {
++        "domelementtype": "^1.3.1",
++        "domhandler": "^2.3.0",
++        "domutils": "^1.5.1",
++        "entities": "^1.1.1",
++        "inherits": "^2.0.1",
++        "readable-stream": "^3.1.1"
++      },
++      "dependencies": {
++        "entities": {
++          "version": "1.1.2",
++          "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
++          "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
++          "dev": true
++        },
++        "readable-stream": {
++          "version": "3.6.0",
++          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
++          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
++          "dev": true,
++          "requires": {
++            "inherits": "^2.0.3",
++            "string_decoder": "^1.1.1",
++            "util-deprecate": "^1.0.1"
++          }
++        }
++      }
++    },
++    "http-errors": {
++      "version": "1.7.3",
++      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
++      "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
++      "dev": true,
++      "requires": {
++        "depd": "~1.1.2",
++        "inherits": "2.0.4",
++        "setprototypeof": "1.1.1",
++        "statuses": ">= 1.5.0 < 2",
++        "toidentifier": "1.0.0"
++      }
++    },
++    "http-signature": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
++      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
++      "requires": {
++        "assert-plus": "^1.0.0",
++        "jsprim": "^1.2.2",
++        "sshpk": "^1.7.0"
++      }
++    },
++    "https-browserify": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
++      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
++      "dev": true
++    },
++    "iconv-lite": {
++      "version": "0.4.24",
++      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
++      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
++      "dev": true,
++      "requires": {
++        "safer-buffer": ">= 2.1.2 < 3"
++      }
++    },
++    "icss-replace-symbols": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
++      "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
++      "dev": true
++    },
++    "ieee754": {
++      "version": "1.1.13",
++      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
++      "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
++      "dev": true
++    },
++    "import-fresh": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
++      "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
++      "dev": true,
++      "requires": {
++        "caller-path": "^2.0.0",
++        "resolve-from": "^3.0.0"
++      }
++    },
++    "indexes-of": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
++      "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
++      "dev": true
++    },
++    "inflight": {
++      "version": "1.0.6",
++      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
++      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
++      "dev": true,
++      "requires": {
++        "once": "^1.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.5",
++      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
++      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
++      "dev": true
++    },
++    "invariant": {
++      "version": "2.2.4",
++      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
++      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
++      "dev": true,
++      "requires": {
++        "loose-envify": "^1.0.0"
++      }
++    },
++    "is-absolute-url": {
++      "version": "2.1.0",
++      "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
++      "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
++      "dev": true
++    },
++    "is-accessor-descriptor": {
++      "version": "0.1.6",
++      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
++      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
++      "dev": true,
++      "requires": {
++        "kind-of": "^3.0.2"
++      },
++      "dependencies": {
++        "kind-of": {
++          "version": "3.2.2",
++          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
++          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
++          "dev": true,
++          "requires": {
++            "is-buffer": "^1.1.5"
++          }
++        }
++      }
++    },
++    "is-arrayish": {
++      "version": "0.2.1",
++      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
++      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
++      "dev": true
++    },
++    "is-binary-path": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
++      "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
++      "dev": true,
++      "requires": {
++        "binary-extensions": "^1.0.0"
++      }
++    },
++    "is-buffer": {
++      "version": "1.1.6",
++      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
++      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
++      "dev": true
++    },
++    "is-callable": {
++      "version": "1.1.5",
++      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
++      "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
++      "dev": true
++    },
++    "is-color-stop": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
++      "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
++      "dev": true,
++      "requires": {
++        "css-color-names": "^0.0.4",
++        "hex-color-regex": "^1.1.0",
++        "hsl-regex": "^1.0.0",
++        "hsla-regex": "^1.0.0",
++        "rgb-regex": "^1.0.1",
++        "rgba-regex": "^1.0.0"
++      }
++    },
++    "is-data-descriptor": {
++      "version": "0.1.4",
++      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
++      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
++      "dev": true,
++      "requires": {
++        "kind-of": "^3.0.2"
++      },
++      "dependencies": {
++        "kind-of": {
++          "version": "3.2.2",
++          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
++          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
++          "dev": true,
++          "requires": {
++            "is-buffer": "^1.1.5"
++          }
++        }
++      }
++    },
++    "is-date-object": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
++      "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
++      "dev": true
++    },
++    "is-descriptor": {
++      "version": "0.1.6",
++      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
++      "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
++      "dev": true,
++      "requires": {
++        "is-accessor-descriptor": "^0.1.6",
++        "is-data-descriptor": "^0.1.4",
++        "kind-of": "^5.0.0"
++      },
++      "dependencies": {
++        "kind-of": {
++          "version": "5.1.0",
++          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
++          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
++          "dev": true
++        }
++      }
++    },
++    "is-directory": {
++      "version": "0.3.1",
++      "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
++      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
++      "dev": true
++    },
++    "is-extendable": {
++      "version": "0.1.1",
++      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
++      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
++      "dev": true
++    },
++    "is-extglob": {
++      "version": "2.1.1",
++      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
++      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
++      "dev": true
++    },
++    "is-fullwidth-code-point": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
++      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
++      "dev": true
++    },
++    "is-glob": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
++      "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
++      "dev": true,
++      "requires": {
++        "is-extglob": "^2.1.1"
++      }
++    },
++    "is-html": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/is-html/-/is-html-1.1.0.tgz",
++      "integrity": "sha1-4E8cGNOUhRETlvmgJz6rUa8hhGQ=",
++      "dev": true,
++      "requires": {
++        "html-tags": "^1.0.0"
++      }
++    },
++    "is-number": {
++      "version": "3.0.0",
++      "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
++      "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
++      "dev": true,
++      "requires": {
++        "kind-of": "^3.0.2"
++      },
++      "dependencies": {
++        "kind-of": {
++          "version": "3.2.2",
++          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
++          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
++          "dev": true,
++          "requires": {
++            "is-buffer": "^1.1.5"
++          }
++        }
++      }
++    },
++    "is-obj": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
++      "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
++      "dev": true
++    },
++    "is-plain-object": {
++      "version": "2.0.4",
++      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
++      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
++      "dev": true,
++      "requires": {
++        "isobject": "^3.0.1"
++      }
++    },
++    "is-regex": {
++      "version": "1.0.5",
++      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
++      "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
++      "dev": true,
++      "requires": {
++        "has": "^1.0.3"
++      }
++    },
++    "is-resolvable": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
++      "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
++      "dev": true
++    },
++    "is-svg": {
++      "version": "3.0.0",
++      "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz",
++      "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==",
++      "dev": true,
++      "requires": {
++        "html-comment-regex": "^1.1.0"
++      }
++    },
++    "is-symbol": {
++      "version": "1.0.3",
++      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
++      "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
++      "dev": true,
++      "requires": {
++        "has-symbols": "^1.0.1"
++      }
++    },
++    "is-typedarray": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
++      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
++    },
++    "is-url": {
++      "version": "1.2.4",
++      "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
++      "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==",
++      "dev": true
++    },
++    "is-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-wsl": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
++      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
++      "dev": true
++    },
++    "isarray": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
++      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
++      "dev": true
++    },
++    "isexe": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
++      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
++      "dev": true
++    },
++    "isobject": {
++      "version": "3.0.1",
++      "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
++      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
++      "dev": true
++    },
++    "isstream": {
++      "version": "0.1.2",
++      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
++      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
++    },
++    "js-beautify": {
++      "version": "1.11.0",
++      "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz",
++      "integrity": "sha512-a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A==",
++      "dev": true,
++      "requires": {
++        "config-chain": "^1.1.12",
++        "editorconfig": "^0.15.3",
++        "glob": "^7.1.3",
++        "mkdirp": "~1.0.3",
++        "nopt": "^4.0.3"
++      },
++      "dependencies": {
++        "mkdirp": {
++          "version": "1.0.4",
++          "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
++          "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
++          "dev": true
++        }
++      }
++    },
++    "js-levenshtein": {
++      "version": "1.1.6",
++      "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
++      "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
++      "dev": true
++    },
++    "js-tokens": {
++      "version": "4.0.0",
++      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
++      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
++      "dev": true
++    },
++    "js-yaml": {
++      "version": "3.13.1",
++      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
++      "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
++      "dev": true,
++      "requires": {
++        "argparse": "^1.0.7",
++        "esprima": "^4.0.0"
++      }
++    },
++    "jsbn": {
++      "version": "0.1.1",
++      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
++      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
++    },
++    "jsdom": {
++      "version": "14.1.0",
++      "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz",
++      "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==",
++      "dev": true,
++      "requires": {
++        "abab": "^2.0.0",
++        "acorn": "^6.0.4",
++        "acorn-globals": "^4.3.0",
++        "array-equal": "^1.0.0",
++        "cssom": "^0.3.4",
++        "cssstyle": "^1.1.1",
++        "data-urls": "^1.1.0",
++        "domexception": "^1.0.1",
++        "escodegen": "^1.11.0",
++        "html-encoding-sniffer": "^1.0.2",
++        "nwsapi": "^2.1.3",
++        "parse5": "5.1.0",
++        "pn": "^1.1.0",
++        "request": "^2.88.0",
++        "request-promise-native": "^1.0.5",
++        "saxes": "^3.1.9",
++        "symbol-tree": "^3.2.2",
++        "tough-cookie": "^2.5.0",
++        "w3c-hr-time": "^1.0.1",
++        "w3c-xmlserializer": "^1.1.2",
++        "webidl-conversions": "^4.0.2",
++        "whatwg-encoding": "^1.0.5",
++        "whatwg-mimetype": "^2.3.0",
++        "whatwg-url": "^7.0.0",
++        "ws": "^6.1.2",
++        "xml-name-validator": "^3.0.0"
++      },
++      "dependencies": {
++        "acorn": {
++          "version": "6.4.1",
++          "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
++          "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
++          "dev": true
++        },
++        "escodegen": {
++          "version": "1.14.1",
++          "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
++          "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
++          "dev": true,
++          "requires": {
++            "esprima": "^4.0.1",
++            "estraverse": "^4.2.0",
++            "esutils": "^2.0.2",
++            "optionator": "^0.8.1",
++            "source-map": "~0.6.1"
++          }
++        },
++        "ws": {
++          "version": "6.2.1",
++          "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
++          "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
++          "dev": true,
++          "requires": {
++            "async-limiter": "~1.0.0"
++          }
++        }
++      }
++    },
++    "jsesc": {
++      "version": "2.5.2",
++      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
++      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
++      "dev": true
++    },
++    "json-parse-better-errors": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
++      "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
++      "dev": true
++    },
++    "json-schema": {
++      "version": "0.2.3",
++      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
++      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
++    },
++    "json-schema-traverse": {
++      "version": "0.4.1",
++      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
++      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
++    },
++    "json-stringify-safe": {
++      "version": "5.0.1",
++      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
++      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
++    },
++    "json5": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
++      "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
++      "dev": true,
++      "requires": {
++        "minimist": "^1.2.0"
++      }
++    },
++    "jsprim": {
++      "version": "1.4.1",
++      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
++      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
++      "requires": {
++        "assert-plus": "1.0.0",
++        "extsprintf": "1.3.0",
++        "json-schema": "0.2.3",
++        "verror": "1.10.0"
++      }
++    },
++    "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
++    },
++    "levn": {
++      "version": "0.3.0",
++      "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
++      "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
++      "dev": true,
++      "requires": {
++        "prelude-ls": "~1.1.2",
++        "type-check": "~0.3.2"
++      }
++    },
++    "locate-path": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
++      "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
++      "dev": true,
++      "requires": {
++        "p-locate": "^2.0.0",
++        "path-exists": "^3.0.0"
++      }
++    },
++    "lodash": {
++      "version": "4.17.15",
++      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
++      "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
++      "dev": true
++    },
++    "lodash.clone": {
++      "version": "4.5.0",
++      "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz",
++      "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=",
++      "dev": true
++    },
++    "lodash.memoize": {
++      "version": "4.1.2",
++      "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
++      "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
++      "dev": true
++    },
++    "lodash.sortby": {
++      "version": "4.7.0",
++      "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
++      "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
++      "dev": true
++    },
++    "lodash.uniq": {
++      "version": "4.5.0",
++      "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
++      "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
++      "dev": true
++    },
++    "log-symbols": {
++      "version": "2.2.0",
++      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
++      "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
++      "dev": true,
++      "requires": {
++        "chalk": "^2.0.1"
++      }
++    },
++    "loose-envify": {
++      "version": "1.4.0",
++      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
++      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
++      "dev": true,
++      "requires": {
++        "js-tokens": "^3.0.0 || ^4.0.0"
++      }
++    },
++    "lru-cache": {
++      "version": "4.1.5",
++      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
++      "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
++      "dev": true,
++      "requires": {
++        "pseudomap": "^1.0.2",
++        "yallist": "^2.1.2"
++      }
++    },
++    "magic-string": {
++      "version": "0.22.5",
++      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
++      "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
++      "dev": true,
++      "requires": {
++        "vlq": "^0.2.2"
++      }
++    },
++    "map-cache": {
++      "version": "0.2.2",
++      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
++      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
++      "dev": true
++    },
++    "map-visit": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
++      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
++      "dev": true,
++      "requires": {
++        "object-visit": "^1.0.0"
++      }
++    },
++    "md5.js": {
++      "version": "1.3.5",
++      "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
++      "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
++      "dev": true,
++      "requires": {
++        "hash-base": "^3.0.0",
++        "inherits": "^2.0.1",
++        "safe-buffer": "^5.1.2"
++      }
++    },
++    "mdn-data": {
++      "version": "2.0.4",
++      "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
++      "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==",
++      "dev": true
++    },
++    "merge-source-map": {
++      "version": "1.0.4",
++      "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz",
++      "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=",
++      "dev": true,
++      "requires": {
++        "source-map": "^0.5.6"
++      },
++      "dependencies": {
++        "source-map": {
++          "version": "0.5.7",
++          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++          "dev": true
++        }
++      }
++    },
++    "merge2": {
++      "version": "1.3.0",
++      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz",
++      "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==",
++      "dev": true
++    },
++    "micromatch": {
++      "version": "3.1.10",
++      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
++      "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
++      "dev": true,
++      "requires": {
++        "arr-diff": "^4.0.0",
++        "array-unique": "^0.3.2",
++        "braces": "^2.3.1",
++        "define-property": "^2.0.2",
++        "extend-shallow": "^3.0.2",
++        "extglob": "^2.0.4",
++        "fragment-cache": "^0.2.1",
++        "kind-of": "^6.0.2",
++        "nanomatch": "^1.2.9",
++        "object.pick": "^1.3.0",
++        "regex-not": "^1.0.0",
++        "snapdragon": "^0.8.1",
++        "to-regex": "^3.0.2"
++      }
++    },
++    "miller-rabin": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
++      "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
++      "dev": true,
++      "requires": {
++        "bn.js": "^4.0.0",
++        "brorand": "^1.0.1"
++      }
++    },
++    "mime": {
++      "version": "1.6.0",
++      "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
++      "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
++      "dev": true
++    },
++    "mime-db": {
++      "version": "1.44.0",
++      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
++      "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
++    },
++    "mime-types": {
++      "version": "2.1.27",
++      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
++      "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
++      "requires": {
++        "mime-db": "1.44.0"
++      }
++    },
++    "mimic-fn": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
++      "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
++      "dev": true
++    },
++    "minimalistic-assert": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
++      "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
++      "dev": true
++    },
++    "minimalistic-crypto-utils": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
++      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
++      "dev": true
++    },
++    "minimatch": {
++      "version": "3.0.4",
++      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
++      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
++      "dev": true,
++      "requires": {
++        "brace-expansion": "^1.1.7"
++      }
++    },
++    "minimist": {
++      "version": "1.2.5",
++      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
++      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
++      "dev": true
++    },
++    "mixin-deep": {
++      "version": "1.3.2",
++      "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
++      "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
++      "dev": true,
++      "requires": {
++        "for-in": "^1.0.2",
++        "is-extendable": "^1.0.1"
++      },
++      "dependencies": {
++        "is-extendable": {
++          "version": "1.0.1",
++          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
++          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
++          "dev": true,
++          "requires": {
++            "is-plain-object": "^2.0.4"
++          }
++        }
++      }
++    },
++    "mkdirp": {
++      "version": "0.5.5",
++      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
++      "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
++      "dev": true,
++      "requires": {
++        "minimist": "^1.2.5"
++      }
++    },
++    "ms": {
++      "version": "2.1.2",
++      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
++      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
++      "dev": true
++    },
++    "nan": {
++      "version": "2.14.1",
++      "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz",
++      "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==",
++      "dev": true,
++      "optional": true
++    },
++    "nanomatch": {
++      "version": "1.2.13",
++      "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
++      "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
++      "dev": true,
++      "requires": {
++        "arr-diff": "^4.0.0",
++        "array-unique": "^0.3.2",
++        "define-property": "^2.0.2",
++        "extend-shallow": "^3.0.2",
++        "fragment-cache": "^0.2.1",
++        "is-windows": "^1.0.2",
++        "kind-of": "^6.0.2",
++        "object.pick": "^1.3.0",
++        "regex-not": "^1.0.0",
++        "snapdragon": "^0.8.1",
++        "to-regex": "^3.0.1"
++      }
++    },
++    "nice-try": {
++      "version": "1.0.5",
++      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
++      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
++      "dev": true
++    },
++    "node-addon-api": {
++      "version": "1.7.1",
++      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.1.tgz",
++      "integrity": "sha512-2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ==",
++      "dev": true
++    },
++    "node-elm-compiler": {
++      "version": "5.0.4",
++      "resolved": "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.4.tgz",
++      "integrity": "sha512-VQsT8QSierYGkHzRed+b4MnccQVF1+qPHunE8jBoU7jD6YpuRqCDPzEoC2zfyEJS80qVnlMZrqobLnyjzX9lJg==",
++      "dev": true,
++      "requires": {
++        "cross-spawn": "6.0.5",
++        "find-elm-dependencies": "2.0.2",
++        "lodash": "4.17.15",
++        "temp": "^0.9.0"
++      }
++    },
++    "node-forge": {
++      "version": "0.7.6",
++      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz",
++      "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==",
++      "dev": true
++    },
++    "node-libs-browser": {
++      "version": "2.2.1",
++      "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
++      "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
++      "dev": true,
++      "requires": {
++        "assert": "^1.1.1",
++        "browserify-zlib": "^0.2.0",
++        "buffer": "^4.3.0",
++        "console-browserify": "^1.1.0",
++        "constants-browserify": "^1.0.0",
++        "crypto-browserify": "^3.11.0",
++        "domain-browser": "^1.1.1",
++        "events": "^3.0.0",
++        "https-browserify": "^1.0.0",
++        "os-browserify": "^0.3.0",
++        "path-browserify": "0.0.1",
++        "process": "^0.11.10",
++        "punycode": "^1.2.4",
++        "querystring-es3": "^0.2.0",
++        "readable-stream": "^2.3.3",
++        "stream-browserify": "^2.0.1",
++        "stream-http": "^2.7.2",
++        "string_decoder": "^1.0.0",
++        "timers-browserify": "^2.0.4",
++        "tty-browserify": "0.0.0",
++        "url": "^0.11.0",
++        "util": "^0.11.0",
++        "vm-browserify": "^1.0.1"
++      },
++      "dependencies": {
++        "punycode": {
++          "version": "1.4.1",
++          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
++          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
++          "dev": true
++        }
++      }
++    },
++    "node-releases": {
++      "version": "1.1.53",
++      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz",
++      "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==",
++      "dev": true
++    },
++    "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"
++      }
++    },
++    "normalize-html-whitespace": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz",
++      "integrity": "sha512-9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA==",
++      "dev": true
++    },
++    "normalize-path": {
++      "version": "3.0.0",
++      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
++      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
++      "dev": true
++    },
++    "normalize-url": {
++      "version": "3.3.0",
++      "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
++      "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==",
++      "dev": true
++    },
++    "nth-check": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
++      "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
++      "dev": true,
++      "requires": {
++        "boolbase": "~1.0.0"
++      }
++    },
++    "nwsapi": {
++      "version": "2.2.0",
++      "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
++      "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==",
++      "dev": true
++    },
++    "oauth-sign": {
++      "version": "0.9.0",
++      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
++      "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
++    },
++    "object-assign": {
++      "version": "4.1.1",
++      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
++      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
++      "dev": true
++    },
++    "object-copy": {
++      "version": "0.1.0",
++      "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
++      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
++      "dev": true,
++      "requires": {
++        "copy-descriptor": "^0.1.0",
++        "define-property": "^0.2.5",
++        "kind-of": "^3.0.3"
++      },
++      "dependencies": {
++        "define-property": {
++          "version": "0.2.5",
++          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
++          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
++          "dev": true,
++          "requires": {
++            "is-descriptor": "^0.1.0"
++          }
++        },
++        "kind-of": {
++          "version": "3.2.2",
++          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
++          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
++          "dev": true,
++          "requires": {
++            "is-buffer": "^1.1.5"
++          }
++        }
++      }
++    },
++    "object-inspect": {
++      "version": "1.7.0",
++      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
++      "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
++      "dev": 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-visit": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
++      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
++      "dev": true,
++      "requires": {
++        "isobject": "^3.0.0"
++      }
++    },
++    "object.assign": {
++      "version": "4.1.0",
++      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
++      "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
++      "dev": true,
++      "requires": {
++        "define-properties": "^1.1.2",
++        "function-bind": "^1.1.1",
++        "has-symbols": "^1.0.0",
++        "object-keys": "^1.0.11"
++      }
++    },
++    "object.getownpropertydescriptors": {
++      "version": "2.1.0",
++      "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz",
++      "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==",
++      "dev": true,
++      "requires": {
++        "define-properties": "^1.1.3",
++        "es-abstract": "^1.17.0-next.1"
++      }
++    },
++    "object.pick": {
++      "version": "1.3.0",
++      "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
++      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
++      "dev": true,
++      "requires": {
++        "isobject": "^3.0.1"
++      }
++    },
++    "object.values": {
++      "version": "1.1.1",
++      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
++      "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
++      "dev": true,
++      "requires": {
++        "define-properties": "^1.1.3",
++        "es-abstract": "^1.17.0-next.1",
++        "function-bind": "^1.1.1",
++        "has": "^1.0.3"
++      }
++    },
++    "on-finished": {
++      "version": "2.3.0",
++      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
++      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
++      "dev": true,
++      "requires": {
++        "ee-first": "1.1.1"
++      }
++    },
++    "once": {
++      "version": "1.4.0",
++      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
++      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
++      "dev": true,
++      "requires": {
++        "wrappy": "1"
++      }
++    },
++    "onetime": {
++      "version": "2.0.1",
++      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
++      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
++      "dev": true,
++      "requires": {
++        "mimic-fn": "^1.0.0"
++      }
++    },
++    "opn": {
++      "version": "5.5.0",
++      "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
++      "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
++      "dev": true,
++      "requires": {
++        "is-wsl": "^1.1.0"
++      }
++    },
++    "optionator": {
++      "version": "0.8.3",
++      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
++      "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
++      "dev": true,
++      "requires": {
++        "deep-is": "~0.1.3",
++        "fast-levenshtein": "~2.0.6",
++        "levn": "~0.3.0",
++        "prelude-ls": "~1.1.2",
++        "type-check": "~0.3.2",
++        "word-wrap": "~1.2.3"
++      }
++    },
++    "ora": {
++      "version": "2.1.0",
++      "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz",
++      "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==",
++      "dev": true,
++      "requires": {
++        "chalk": "^2.3.1",
++        "cli-cursor": "^2.1.0",
++        "cli-spinners": "^1.1.0",
++        "log-symbols": "^2.2.0",
++        "strip-ansi": "^4.0.0",
++        "wcwidth": "^1.0.1"
++      }
++    },
++    "os-browserify": {
++      "version": "0.3.0",
++      "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
++      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
++      "dev": true
++    },
++    "os-homedir": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
++      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
++      "dev": true
++    },
++    "os-tmpdir": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
++      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
++      "dev": true
++    },
++    "osenv": {
++      "version": "0.1.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"
++      }
++    },
++    "p-limit": {
++      "version": "1.3.0",
++      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
++      "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
++      "dev": true,
++      "requires": {
++        "p-try": "^1.0.0"
++      }
++    },
++    "p-locate": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
++      "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
++      "dev": true,
++      "requires": {
++        "p-limit": "^1.1.0"
++      }
++    },
++    "p-try": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
++      "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
++      "dev": true
++    },
++    "pako": {
++      "version": "0.2.9",
++      "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
++      "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
++      "dev": true
++    },
++    "parcel-bundler": {
++      "version": "1.12.3",
++      "resolved": "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.3.tgz",
++      "integrity": "sha512-8bq6lj0hhQeGxD9f9xEkFMXQ3d8TIlf2+isKxoi9bciB0KVEILRGllaPkUgp++5t0anToBh9+tG6ZyInXOC1/A==",
++      "dev": true,
++      "requires": {
++        "@babel/code-frame": "^7.0.0 <7.4.0",
++        "@babel/core": "^7.0.0 <7.4.0",
++        "@babel/generator": "^7.0.0 <7.4.0",
++        "@babel/parser": "^7.0.0 <7.4.0",
++        "@babel/plugin-transform-flow-strip-types": "^7.0.0 <7.4.0",
++        "@babel/plugin-transform-modules-commonjs": "^7.0.0 <7.4.0",
++        "@babel/plugin-transform-react-jsx": "^7.0.0 <7.4.0",
++        "@babel/preset-env": "^7.0.0 <7.4.0",
++        "@babel/runtime": "^7.0.0 <7.4.0",
++        "@babel/template": "^7.0.0 <7.4.0",
++        "@babel/traverse": "^7.0.0 <7.4.0",
++        "@babel/types": "^7.0.0 <7.4.0",
++        "@iarna/toml": "^2.2.0",
++        "@parcel/fs": "^1.11.0",
++        "@parcel/logger": "^1.11.0",
++        "@parcel/utils": "^1.11.0",
++        "@parcel/watcher": "^1.12.0",
++        "@parcel/workers": "^1.11.0",
++        "ansi-to-html": "^0.6.4",
++        "babylon-walk": "^1.0.2",
++        "browserslist": "^4.1.0",
++        "chalk": "^2.1.0",
++        "clone": "^2.1.1",
++        "command-exists": "^1.2.6",
++        "commander": "^2.11.0",
++        "cross-spawn": "^6.0.4",
++        "css-modules-loader-core": "^1.1.0",
++        "cssnano": "^4.0.0",
++        "deasync": "^0.1.14",
++        "dotenv": "^5.0.0",
++        "dotenv-expand": "^4.2.0",
++        "fast-glob": "^2.2.2",
++        "filesize": "^3.6.0",
++        "get-port": "^3.2.0",
++        "htmlnano": "^0.2.2",
++        "is-glob": "^4.0.0",
++        "is-url": "^1.2.2",
++        "js-yaml": "^3.10.0",
++        "json5": "^1.0.1",
++        "micromatch": "^3.0.4",
++        "mkdirp": "^0.5.1",
++        "node-forge": "^0.7.1",
++        "node-libs-browser": "^2.0.0",
++        "opn": "^5.1.0",
++        "postcss": "^7.0.11",
++        "postcss-value-parser": "^3.3.1",
++        "posthtml": "^0.11.2",
++        "posthtml-parser": "^0.4.0",
++        "posthtml-render": "^1.1.3",
++        "resolve": "^1.4.0",
++        "semver": "^5.4.1",
++        "serialize-to-js": "^1.1.1",
++        "serve-static": "^1.12.4",
++        "source-map": "0.6.1",
++        "terser": "^3.7.3",
++        "v8-compile-cache": "^2.0.0",
++        "ws": "^5.1.1"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "parse-asn1": {
++      "version": "5.1.5",
++      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
++      "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==",
++      "dev": true,
++      "requires": {
++        "asn1.js": "^4.0.0",
++        "browserify-aes": "^1.0.0",
++        "create-hash": "^1.1.0",
++        "evp_bytestokey": "^1.0.0",
++        "pbkdf2": "^3.0.3",
++        "safe-buffer": "^5.1.1"
++      }
++    },
++    "parse-json": {
++      "version": "4.0.0",
++      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
++      "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
++      "dev": true,
++      "requires": {
++        "error-ex": "^1.3.1",
++        "json-parse-better-errors": "^1.0.1"
++      }
++    },
++    "parse5": {
++      "version": "5.1.0",
++      "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
++      "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==",
++      "dev": true
++    },
++    "parseurl": {
++      "version": "1.3.3",
++      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
++      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
++      "dev": true
++    },
++    "pascalcase": {
++      "version": "0.1.1",
++      "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
++      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
++      "dev": true
++    },
++    "path-browserify": {
++      "version": "0.0.1",
++      "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
++      "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
++      "dev": true
++    },
++    "path-dirname": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
++      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
++      "dev": true
++    },
++    "path-exists": {
++      "version": "3.0.0",
++      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
++      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
++      "dev": true
++    },
++    "path-is-absolute": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
++      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
++      "dev": true
++    },
++    "path-key": {
++      "version": "2.0.1",
++      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
++      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
++      "dev": true
++    },
++    "path-parse": {
++      "version": "1.0.6",
++      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
++      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
++      "dev": true
++    },
++    "pbkdf2": {
++      "version": "3.0.17",
++      "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
++      "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==",
++      "dev": true,
++      "requires": {
++        "create-hash": "^1.1.2",
++        "create-hmac": "^1.1.4",
++        "ripemd160": "^2.0.1",
++        "safe-buffer": "^5.0.1",
++        "sha.js": "^2.4.8"
++      }
++    },
++    "performance-now": {
++      "version": "2.1.0",
++      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
++      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
++    },
++    "physical-cpu-count": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz",
++      "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=",
++      "dev": true
++    },
++    "pkg-up": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
++      "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
++      "dev": true,
++      "requires": {
++        "find-up": "^2.1.0"
++      }
++    },
++    "pn": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
++      "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
++      "dev": true
++    },
++    "posix-character-classes": {
++      "version": "0.1.1",
++      "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
++      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
++      "dev": true
++    },
++    "postcss": {
++      "version": "7.0.27",
++      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
++      "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
++      "dev": true,
++      "requires": {
++        "chalk": "^2.4.2",
++        "source-map": "^0.6.1",
++        "supports-color": "^6.1.0"
++      }
++    },
++    "postcss-calc": {
++      "version": "7.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz",
++      "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==",
++      "dev": true,
++      "requires": {
++        "postcss": "^7.0.27",
++        "postcss-selector-parser": "^6.0.2",
++        "postcss-value-parser": "^4.0.2"
++      }
++    },
++    "postcss-colormin": {
++      "version": "4.0.3",
++      "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz",
++      "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==",
++      "dev": true,
++      "requires": {
++        "browserslist": "^4.0.0",
++        "color": "^3.0.0",
++        "has": "^1.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-convert-values": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz",
++      "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==",
++      "dev": true,
++      "requires": {
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-discard-comments": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz",
++      "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==",
++      "dev": true,
++      "requires": {
++        "postcss": "^7.0.0"
++      }
++    },
++    "postcss-discard-duplicates": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz",
++      "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==",
++      "dev": true,
++      "requires": {
++        "postcss": "^7.0.0"
++      }
++    },
++    "postcss-discard-empty": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz",
++      "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==",
++      "dev": true,
++      "requires": {
++        "postcss": "^7.0.0"
++      }
++    },
++    "postcss-discard-overridden": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz",
++      "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==",
++      "dev": true,
++      "requires": {
++        "postcss": "^7.0.0"
++      }
++    },
++    "postcss-merge-longhand": {
++      "version": "4.0.11",
++      "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz",
++      "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==",
++      "dev": true,
++      "requires": {
++        "css-color-names": "0.0.4",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0",
++        "stylehacks": "^4.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-merge-rules": {
++      "version": "4.0.3",
++      "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz",
++      "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==",
++      "dev": true,
++      "requires": {
++        "browserslist": "^4.0.0",
++        "caniuse-api": "^3.0.0",
++        "cssnano-util-same-parent": "^4.0.0",
++        "postcss": "^7.0.0",
++        "postcss-selector-parser": "^3.0.0",
++        "vendors": "^1.0.0"
++      },
++      "dependencies": {
++        "postcss-selector-parser": {
++          "version": "3.1.2",
++          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
++          "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
++          "dev": true,
++          "requires": {
++            "dot-prop": "^5.2.0",
++            "indexes-of": "^1.0.1",
++            "uniq": "^1.0.1"
++          }
++        }
++      }
++    },
++    "postcss-minify-font-values": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz",
++      "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==",
++      "dev": true,
++      "requires": {
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-minify-gradients": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz",
++      "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==",
++      "dev": true,
++      "requires": {
++        "cssnano-util-get-arguments": "^4.0.0",
++        "is-color-stop": "^1.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-minify-params": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz",
++      "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==",
++      "dev": true,
++      "requires": {
++        "alphanum-sort": "^1.0.0",
++        "browserslist": "^4.0.0",
++        "cssnano-util-get-arguments": "^4.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0",
++        "uniqs": "^2.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-minify-selectors": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz",
++      "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==",
++      "dev": true,
++      "requires": {
++        "alphanum-sort": "^1.0.0",
++        "has": "^1.0.0",
++        "postcss": "^7.0.0",
++        "postcss-selector-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-selector-parser": {
++          "version": "3.1.2",
++          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
++          "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
++          "dev": true,
++          "requires": {
++            "dot-prop": "^5.2.0",
++            "indexes-of": "^1.0.1",
++            "uniq": "^1.0.1"
++          }
++        }
++      }
++    },
++    "postcss-modules-extract-imports": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz",
++      "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
++      "dev": true,
++      "requires": {
++        "postcss": "^6.0.1"
++      },
++      "dependencies": {
++        "postcss": {
++          "version": "6.0.23",
++          "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
++          "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
++          "dev": true,
++          "requires": {
++            "chalk": "^2.4.1",
++            "source-map": "^0.6.1",
++            "supports-color": "^5.4.0"
++          }
++        },
++        "supports-color": {
++          "version": "5.5.0",
++          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
++          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
++          "dev": true,
++          "requires": {
++            "has-flag": "^3.0.0"
++          }
++        }
++      }
++    },
++    "postcss-modules-local-by-default": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
++      "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
++      "dev": true,
++      "requires": {
++        "css-selector-tokenizer": "^0.7.0",
++        "postcss": "^6.0.1"
++      },
++      "dependencies": {
++        "postcss": {
++          "version": "6.0.23",
++          "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
++          "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
++          "dev": true,
++          "requires": {
++            "chalk": "^2.4.1",
++            "source-map": "^0.6.1",
++            "supports-color": "^5.4.0"
++          }
++        },
++        "supports-color": {
++          "version": "5.5.0",
++          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
++          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
++          "dev": true,
++          "requires": {
++            "has-flag": "^3.0.0"
++          }
++        }
++      }
++    },
++    "postcss-modules-scope": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
++      "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
++      "dev": true,
++      "requires": {
++        "css-selector-tokenizer": "^0.7.0",
++        "postcss": "^6.0.1"
++      },
++      "dependencies": {
++        "postcss": {
++          "version": "6.0.23",
++          "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
++          "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
++          "dev": true,
++          "requires": {
++            "chalk": "^2.4.1",
++            "source-map": "^0.6.1",
++            "supports-color": "^5.4.0"
++          }
++        },
++        "supports-color": {
++          "version": "5.5.0",
++          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
++          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
++          "dev": true,
++          "requires": {
++            "has-flag": "^3.0.0"
++          }
++        }
++      }
++    },
++    "postcss-modules-values": {
++      "version": "1.3.0",
++      "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
++      "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
++      "dev": true,
++      "requires": {
++        "icss-replace-symbols": "^1.1.0",
++        "postcss": "^6.0.1"
++      },
++      "dependencies": {
++        "postcss": {
++          "version": "6.0.23",
++          "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
++          "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
++          "dev": true,
++          "requires": {
++            "chalk": "^2.4.1",
++            "source-map": "^0.6.1",
++            "supports-color": "^5.4.0"
++          }
++        },
++        "supports-color": {
++          "version": "5.5.0",
++          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
++          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
++          "dev": true,
++          "requires": {
++            "has-flag": "^3.0.0"
++          }
++        }
++      }
++    },
++    "postcss-normalize-charset": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
++      "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==",
++      "dev": true,
++      "requires": {
++        "postcss": "^7.0.0"
++      }
++    },
++    "postcss-normalize-display-values": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz",
++      "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==",
++      "dev": true,
++      "requires": {
++        "cssnano-util-get-match": "^4.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-normalize-positions": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz",
++      "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==",
++      "dev": true,
++      "requires": {
++        "cssnano-util-get-arguments": "^4.0.0",
++        "has": "^1.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-normalize-repeat-style": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz",
++      "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==",
++      "dev": true,
++      "requires": {
++        "cssnano-util-get-arguments": "^4.0.0",
++        "cssnano-util-get-match": "^4.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-normalize-string": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz",
++      "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==",
++      "dev": true,
++      "requires": {
++        "has": "^1.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-normalize-timing-functions": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz",
++      "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==",
++      "dev": true,
++      "requires": {
++        "cssnano-util-get-match": "^4.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-normalize-unicode": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz",
++      "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==",
++      "dev": true,
++      "requires": {
++        "browserslist": "^4.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-normalize-url": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz",
++      "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==",
++      "dev": true,
++      "requires": {
++        "is-absolute-url": "^2.0.0",
++        "normalize-url": "^3.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-normalize-whitespace": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz",
++      "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==",
++      "dev": true,
++      "requires": {
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-ordered-values": {
++      "version": "4.1.2",
++      "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz",
++      "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==",
++      "dev": true,
++      "requires": {
++        "cssnano-util-get-arguments": "^4.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-reduce-initial": {
++      "version": "4.0.3",
++      "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz",
++      "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==",
++      "dev": true,
++      "requires": {
++        "browserslist": "^4.0.0",
++        "caniuse-api": "^3.0.0",
++        "has": "^1.0.0",
++        "postcss": "^7.0.0"
++      }
++    },
++    "postcss-reduce-transforms": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz",
++      "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==",
++      "dev": true,
++      "requires": {
++        "cssnano-util-get-match": "^4.0.0",
++        "has": "^1.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-selector-parser": {
++      "version": "6.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz",
++      "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==",
++      "dev": true,
++      "requires": {
++        "cssesc": "^3.0.0",
++        "indexes-of": "^1.0.1",
++        "uniq": "^1.0.1"
++      }
++    },
++    "postcss-svgo": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz",
++      "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==",
++      "dev": true,
++      "requires": {
++        "is-svg": "^3.0.0",
++        "postcss": "^7.0.0",
++        "postcss-value-parser": "^3.0.0",
++        "svgo": "^1.0.0"
++      },
++      "dependencies": {
++        "postcss-value-parser": {
++          "version": "3.3.1",
++          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
++          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
++          "dev": true
++        }
++      }
++    },
++    "postcss-unique-selectors": {
++      "version": "4.0.1",
++      "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz",
++      "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==",
++      "dev": true,
++      "requires": {
++        "alphanum-sort": "^1.0.0",
++        "postcss": "^7.0.0",
++        "uniqs": "^2.0.0"
++      }
++    },
++    "postcss-value-parser": {
++      "version": "4.0.3",
++      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz",
++      "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==",
++      "dev": true
++    },
++    "posthtml": {
++      "version": "0.11.6",
++      "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.11.6.tgz",
++      "integrity": "sha512-C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw==",
++      "dev": true,
++      "requires": {
++        "posthtml-parser": "^0.4.1",
++        "posthtml-render": "^1.1.5"
++      }
++    },
++    "posthtml-parser": {
++      "version": "0.4.2",
++      "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.4.2.tgz",
++      "integrity": "sha512-BUIorsYJTvS9UhXxPTzupIztOMVNPa/HtAm9KHni9z6qEfiJ1bpOBL5DfUOL9XAc3XkLIEzBzpph+Zbm4AdRAg==",
++      "dev": true,
++      "requires": {
++        "htmlparser2": "^3.9.2"
++      }
++    },
++    "posthtml-render": {
++      "version": "1.2.2",
++      "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.2.2.tgz",
++      "integrity": "sha512-MbIXTWwAfJ9qET6Zl29UNwJcDJEEz9Zkr5oDhiujitJa7YBJwEpbkX2cmuklCDxubTMoRWpid3q8DrSyGnUUzQ==",
++      "dev": true
++    },
++    "prelude-ls": {
++      "version": "1.1.2",
++      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
++      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
++      "dev": true
++    },
++    "private": {
++      "version": "0.1.8",
++      "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
++      "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
++      "dev": true
++    },
++    "process": {
++      "version": "0.11.10",
++      "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
++      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
++      "dev": true
++    },
++    "process-nextick-args": {
++      "version": "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
++    },
++    "proto-list": {
++      "version": "1.2.4",
++      "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
++      "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
++      "dev": true
++    },
++    "pseudomap": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
++      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
++      "dev": true
++    },
++    "psl": {
++      "version": "1.8.0",
++      "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
++      "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
++    },
++    "public-encrypt": {
++      "version": "4.0.3",
++      "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
++      "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
++      "dev": true,
++      "requires": {
++        "bn.js": "^4.1.0",
++        "browserify-rsa": "^4.0.0",
++        "create-hash": "^1.1.0",
++        "parse-asn1": "^5.0.0",
++        "randombytes": "^2.0.1",
++        "safe-buffer": "^5.1.2"
++      }
++    },
++    "punycode": {
++      "version": "2.1.1",
++      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
++      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
++    },
++    "purgecss": {
++      "version": "1.4.2",
++      "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-1.4.2.tgz",
++      "integrity": "sha512-hkOreFTgiyMHMmC2BxzdIw5DuC6kxAbP/gGOGd3MEsF3+5m69rIvUEPaxrnoUtfODTFKe9hcXjGwC6jcjoyhOw==",
++      "dev": true,
++      "requires": {
++        "glob": "^7.1.3",
++        "postcss": "^7.0.14",
++        "postcss-selector-parser": "^6.0.0",
++        "yargs": "^14.0.0"
++      }
++    },
++    "q": {
++      "version": "1.5.1",
++      "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
++      "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
++      "dev": true
++    },
++    "qs": {
++      "version": "6.5.2",
++      "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
++      "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
++    },
++    "querystring": {
++      "version": "0.2.0",
++      "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
++      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
++      "dev": true
++    },
++    "querystring-es3": {
++      "version": "0.2.1",
++      "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
++      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
++      "dev": true
++    },
++    "quote-stream": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz",
++      "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=",
++      "dev": true,
++      "requires": {
++        "buffer-equal": "0.0.1",
++        "minimist": "^1.1.3",
++        "through2": "^2.0.0"
++      }
++    },
++    "randombytes": {
++      "version": "2.1.0",
++      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
++      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
++      "dev": true,
++      "requires": {
++        "safe-buffer": "^5.1.0"
++      }
++    },
++    "randomfill": {
++      "version": "1.0.4",
++      "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
++      "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
++      "dev": true,
++      "requires": {
++        "randombytes": "^2.0.5",
++        "safe-buffer": "^5.1.0"
++      }
++    },
++    "range-parser": {
++      "version": "1.2.1",
++      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
++      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
++      "dev": true
++    },
++    "readable-stream": {
++      "version": "2.3.7",
++      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
++      "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
++      "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"
++      }
++    },
++    "readdirp": {
++      "version": "2.2.1",
++      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
++      "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
++      "dev": true,
++      "requires": {
++        "graceful-fs": "^4.1.11",
++        "micromatch": "^3.1.10",
++        "readable-stream": "^2.0.2"
++      }
++    },
++    "regenerate": {
++      "version": "1.4.0",
++      "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
++      "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
++      "dev": true
++    },
++    "regenerate-unicode-properties": {
++      "version": "8.2.0",
++      "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
++      "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
++      "dev": true,
++      "requires": {
++        "regenerate": "^1.4.0"
++      }
++    },
++    "regenerator-runtime": {
++      "version": "0.13.5",
++      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
++      "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
++      "dev": true
++    },
++    "regenerator-transform": {
++      "version": "0.14.4",
++      "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz",
++      "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==",
++      "dev": true,
++      "requires": {
++        "@babel/runtime": "^7.8.4",
++        "private": "^0.1.8"
++      },
++      "dependencies": {
++        "@babel/runtime": {
++          "version": "7.9.2",
++          "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz",
++          "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==",
++          "dev": true,
++          "requires": {
++            "regenerator-runtime": "^0.13.4"
++          }
++        }
++      }
++    },
++    "regex-not": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
++      "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
++      "dev": true,
++      "requires": {
++        "extend-shallow": "^3.0.2",
++        "safe-regex": "^1.1.0"
++      }
++    },
++    "regexpu-core": {
++      "version": "4.7.0",
++      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
++      "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
++      "dev": true,
++      "requires": {
++        "regenerate": "^1.4.0",
++        "regenerate-unicode-properties": "^8.2.0",
++        "regjsgen": "^0.5.1",
++        "regjsparser": "^0.6.4",
++        "unicode-match-property-ecmascript": "^1.0.4",
++        "unicode-match-property-value-ecmascript": "^1.2.0"
++      }
++    },
++    "regjsgen": {
++      "version": "0.5.1",
++      "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz",
++      "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==",
++      "dev": true
++    },
++    "regjsparser": {
++      "version": "0.6.4",
++      "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
++      "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
++      "dev": true,
++      "requires": {
++        "jsesc": "~0.5.0"
++      },
++      "dependencies": {
++        "jsesc": {
++          "version": "0.5.0",
++          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
++          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
++          "dev": true
++        }
++      }
++    },
++    "remove-trailing-separator": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
++      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
++      "dev": true
++    },
++    "repeat-element": {
++      "version": "1.1.3",
++      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
++      "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
++      "dev": true
++    },
++    "repeat-string": {
++      "version": "1.6.1",
++      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
++      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
++      "dev": true
++    },
++    "request": {
++      "version": "2.88.2",
++      "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
++      "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
++      "requires": {
++        "aws-sign2": "~0.7.0",
++        "aws4": "^1.8.0",
++        "caseless": "~0.12.0",
++        "combined-stream": "~1.0.6",
++        "extend": "~3.0.2",
++        "forever-agent": "~0.6.1",
++        "form-data": "~2.3.2",
++        "har-validator": "~5.1.3",
++        "http-signature": "~1.2.0",
++        "is-typedarray": "~1.0.0",
++        "isstream": "~0.1.2",
++        "json-stringify-safe": "~5.0.1",
++        "mime-types": "~2.1.19",
++        "oauth-sign": "~0.9.0",
++        "performance-now": "^2.1.0",
++        "qs": "~6.5.2",
++        "safe-buffer": "^5.1.2",
++        "tough-cookie": "~2.5.0",
++        "tunnel-agent": "^0.6.0",
++        "uuid": "^3.3.2"
++      }
++    },
++    "request-promise-core": {
++      "version": "1.1.3",
++      "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz",
++      "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==",
++      "dev": true,
++      "requires": {
++        "lodash": "^4.17.15"
++      }
++    },
++    "request-promise-native": {
++      "version": "1.0.8",
++      "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz",
++      "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==",
++      "dev": true,
++      "requires": {
++        "request-promise-core": "1.1.3",
++        "stealthy-require": "^1.1.1",
++        "tough-cookie": "^2.3.3"
++      }
++    },
++    "require-directory": {
++      "version": "2.1.1",
++      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
++      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
++      "dev": true
++    },
++    "require-main-filename": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
++      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
++      "dev": true
++    },
++    "resolve": {
++      "version": "1.17.0",
++      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
++      "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
++      "dev": true,
++      "requires": {
++        "path-parse": "^1.0.6"
++      }
++    },
++    "resolve-from": {
++      "version": "3.0.0",
++      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
++      "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
++      "dev": true
++    },
++    "resolve-url": {
++      "version": "0.2.1",
++      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
++      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
++      "dev": true
++    },
++    "restore-cursor": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
++      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
++      "dev": true,
++      "requires": {
++        "onetime": "^2.0.0",
++        "signal-exit": "^3.0.2"
++      }
++    },
++    "ret": {
++      "version": "0.1.15",
++      "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
++      "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
++      "dev": true
++    },
++    "rgb-regex": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
++      "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
++      "dev": true
++    },
++    "rgba-regex": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
++      "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
++      "dev": true
++    },
++    "rimraf": {
++      "version": "2.6.3",
++      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
++      "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
++      "dev": true,
++      "requires": {
++        "glob": "^7.1.3"
++      }
++    },
++    "ripemd160": {
++      "version": "2.0.2",
++      "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
++      "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
++      "dev": true,
++      "requires": {
++        "hash-base": "^3.0.0",
++        "inherits": "^2.0.1"
++      }
++    },
++    "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=="
++    },
++    "safe-regex": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
++      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
++      "dev": true,
++      "requires": {
++        "ret": "~0.1.10"
++      }
++    },
++    "safer-buffer": {
++      "version": "2.1.2",
++      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
++      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
++    },
++    "safer-eval": {
++      "version": "1.3.6",
++      "resolved": "https://registry.npmjs.org/safer-eval/-/safer-eval-1.3.6.tgz",
++      "integrity": "sha512-DN9tBsZgtUOHODzSfO1nGCLhZtxc7Qq/d8/2SNxQZ9muYXZspSh1fO7HOsrf4lcelBNviAJLCxB/ggmG+jV1aw==",
++      "dev": true,
++      "requires": {
++        "clones": "^1.2.0"
++      }
++    },
++    "sax": {
++      "version": "1.2.4",
++      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
++      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
++      "dev": true
++    },
++    "saxes": {
++      "version": "3.1.11",
++      "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz",
++      "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==",
++      "dev": true,
++      "requires": {
++        "xmlchars": "^2.1.1"
++      }
++    },
++    "semver": {
++      "version": "5.7.1",
++      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
++      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
++      "dev": true
++    },
++    "send": {
++      "version": "0.17.1",
++      "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
++      "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
++      "dev": true,
++      "requires": {
++        "debug": "2.6.9",
++        "depd": "~1.1.2",
++        "destroy": "~1.0.4",
++        "encodeurl": "~1.0.2",
++        "escape-html": "~1.0.3",
++        "etag": "~1.8.1",
++        "fresh": "0.5.2",
++        "http-errors": "~1.7.2",
++        "mime": "1.6.0",
++        "ms": "2.1.1",
++        "on-finished": "~2.3.0",
++        "range-parser": "~1.2.1",
++        "statuses": "~1.5.0"
++      },
++      "dependencies": {
++        "debug": {
++          "version": "2.6.9",
++          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
++          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
++          "dev": true,
++          "requires": {
++            "ms": "2.0.0"
++          },
++          "dependencies": {
++            "ms": {
++              "version": "2.0.0",
++              "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
++              "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
++              "dev": true
++            }
++          }
++        },
++        "ms": {
++          "version": "2.1.1",
++          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
++          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
++          "dev": true
++        }
++      }
++    },
++    "serialize-to-js": {
++      "version": "1.2.2",
++      "resolved": "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-1.2.2.tgz",
++      "integrity": "sha512-mUc8vA5iJghe+O+3s0YDGFLMJcqitVFk787YKiv8a4sf6RX5W0u81b+gcHrp15O0fFa010dRBVZvwcKXOWsL9Q==",
++      "dev": true,
++      "requires": {
++        "js-beautify": "^1.8.9",
++        "safer-eval": "^1.3.0"
++      }
++    },
++    "serve-static": {
++      "version": "1.14.1",
++      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
++      "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
++      "dev": true,
++      "requires": {
++        "encodeurl": "~1.0.2",
++        "escape-html": "~1.0.3",
++        "parseurl": "~1.3.3",
++        "send": "0.17.1"
++      }
++    },
++    "set-blocking": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
++      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
++      "dev": true
++    },
++    "set-value": {
++      "version": "2.0.1",
++      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
++      "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
++      "dev": true,
++      "requires": {
++        "extend-shallow": "^2.0.1",
++        "is-extendable": "^0.1.1",
++        "is-plain-object": "^2.0.3",
++        "split-string": "^3.0.1"
++      },
++      "dependencies": {
++        "extend-shallow": {
++          "version": "2.0.1",
++          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
++          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
++          "dev": true,
++          "requires": {
++            "is-extendable": "^0.1.0"
++          }
++        }
++      }
++    },
++    "setimmediate": {
++      "version": "1.0.5",
++      "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
++      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
++      "dev": true
++    },
++    "setprototypeof": {
++      "version": "1.1.1",
++      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
++      "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
++      "dev": true
++    },
++    "sha.js": {
++      "version": "2.4.11",
++      "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
++      "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
++      "dev": true,
++      "requires": {
++        "inherits": "^2.0.1",
++        "safe-buffer": "^5.0.1"
++      }
++    },
++    "shallow-copy": {
++      "version": "0.0.1",
++      "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
++      "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=",
++      "dev": true
++    },
++    "shebang-command": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
++      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
++      "dev": true,
++      "requires": {
++        "shebang-regex": "^1.0.0"
++      }
++    },
++    "shebang-regex": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
++      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
++      "dev": true
++    },
++    "sigmund": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
++      "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
++      "dev": true
++    },
++    "signal-exit": {
++      "version": "3.0.3",
++      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
++      "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
++      "dev": true
++    },
++    "simple-swizzle": {
++      "version": "0.2.2",
++      "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
++      "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
++      "dev": true,
++      "requires": {
++        "is-arrayish": "^0.3.1"
++      },
++      "dependencies": {
++        "is-arrayish": {
++          "version": "0.3.2",
++          "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
++          "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
++          "dev": true
++        }
++      }
++    },
++    "snapdragon": {
++      "version": "0.8.2",
++      "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
++      "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
++      "dev": true,
++      "requires": {
++        "base": "^0.11.1",
++        "debug": "^2.2.0",
++        "define-property": "^0.2.5",
++        "extend-shallow": "^2.0.1",
++        "map-cache": "^0.2.2",
++        "source-map": "^0.5.6",
++        "source-map-resolve": "^0.5.0",
++        "use": "^3.1.0"
++      },
++      "dependencies": {
++        "debug": {
++          "version": "2.6.9",
++          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
++          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
++          "dev": true,
++          "requires": {
++            "ms": "2.0.0"
++          }
++        },
++        "define-property": {
++          "version": "0.2.5",
++          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
++          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
++          "dev": true,
++          "requires": {
++            "is-descriptor": "^0.1.0"
++          }
++        },
++        "extend-shallow": {
++          "version": "2.0.1",
++          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
++          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
++          "dev": true,
++          "requires": {
++            "is-extendable": "^0.1.0"
++          }
++        },
++        "ms": {
++          "version": "2.0.0",
++          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
++          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
++          "dev": true
++        },
++        "source-map": {
++          "version": "0.5.7",
++          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
++          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
++          "dev": true
++        }
++      }
++    },
++    "snapdragon-node": {
++      "version": "2.1.1",
++      "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
++      "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
++      "dev": true,
++      "requires": {
++        "define-property": "^1.0.0",
++        "isobject": "^3.0.0",
++        "snapdragon-util": "^3.0.1"
++      },
++      "dependencies": {
++        "define-property": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
++          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
++          "dev": true,
++          "requires": {
++            "is-descriptor": "^1.0.0"
++          }
++        },
++        "is-accessor-descriptor": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
++          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
++          "dev": true,
++          "requires": {
++            "kind-of": "^6.0.0"
++          }
++        },
++        "is-data-descriptor": {
++          "version": "1.0.0",
++          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
++          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
++          "dev": true,
++          "requires": {
++            "kind-of": "^6.0.0"
++          }
++        },
++        "is-descriptor": {
++          "version": "1.0.2",
++          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
++          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
++          "dev": true,
++          "requires": {
++            "is-accessor-descriptor": "^1.0.0",
++            "is-data-descriptor": "^1.0.0",
++            "kind-of": "^6.0.2"
++          }
++        }
++      }
++    },
++    "snapdragon-util": {
++      "version": "3.0.1",
++      "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
++      "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
++      "dev": true,
++      "requires": {
++        "kind-of": "^3.2.0"
++      },
++      "dependencies": {
++        "kind-of": {
++          "version": "3.2.2",
++          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
++          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
++          "dev": true,
++          "requires": {
++            "is-buffer": "^1.1.5"
++          }
++        }
++      }
++    },
++    "source-map": {
++      "version": "0.6.1",
++      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
++      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
++      "dev": true
++    },
++    "source-map-resolve": {
++      "version": "0.5.3",
++      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
++      "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
++      "dev": true,
++      "requires": {
++        "atob": "^2.1.2",
++        "decode-uri-component": "^0.2.0",
++        "resolve-url": "^0.2.1",
++        "source-map-url": "^0.4.0",
++        "urix": "^0.1.0"
++      }
++    },
++    "source-map-support": {
++      "version": "0.5.19",
++      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
++      "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
++      "dev": true,
++      "requires": {
++        "buffer-from": "^1.0.0",
++        "source-map": "^0.6.0"
++      }
++    },
++    "source-map-url": {
++      "version": "0.4.0",
++      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
++      "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
++      "dev": true
++    },
++    "split-string": {
++      "version": "3.1.0",
++      "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
++      "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
++      "dev": true,
++      "requires": {
++        "extend-shallow": "^3.0.0"
++      }
++    },
++    "sprintf-js": {
++      "version": "1.0.3",
++      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
++      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
++      "dev": true
++    },
++    "sshpk": {
++      "version": "1.16.1",
++      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
++      "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
++      "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"
++      }
++    },
++    "stable": {
++      "version": "0.1.8",
++      "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
++      "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
++      "dev": true
++    },
++    "static-eval": {
++      "version": "2.0.5",
++      "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.5.tgz",
++      "integrity": "sha512-nNbV6LbGtMBgv7e9LFkt5JV8RVlRsyJrphfAt9tOtBBW/SfnzZDf2KnS72an8e434A+9e/BmJuTxeGPvrAK7KA==",
++      "dev": true,
++      "requires": {
++        "escodegen": "^1.11.1"
++      },
++      "dependencies": {
++        "escodegen": {
++          "version": "1.14.1",
++          "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
++          "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
++          "dev": true,
++          "requires": {
++            "esprima": "^4.0.1",
++            "estraverse": "^4.2.0",
++            "esutils": "^2.0.2",
++            "optionator": "^0.8.1",
++            "source-map": "~0.6.1"
++          }
++        }
++      }
++    },
++    "static-extend": {
++      "version": "0.1.2",
++      "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
++      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
++      "dev": true,
++      "requires": {
++        "define-property": "^0.2.5",
++        "object-copy": "^0.1.0"
++      },
++      "dependencies": {
++        "define-property": {
++          "version": "0.2.5",
++          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
++          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
++          "dev": true,
++          "requires": {
++            "is-descriptor": "^0.1.0"
++          }
++        }
++      }
++    },
++    "static-module": {
++      "version": "2.2.5",
++      "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz",
++      "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==",
++      "dev": true,
++      "requires": {
++        "concat-stream": "~1.6.0",
++        "convert-source-map": "^1.5.1",
++        "duplexer2": "~0.1.4",
++        "escodegen": "~1.9.0",
++        "falafel": "^2.1.0",
++        "has": "^1.0.1",
++        "magic-string": "^0.22.4",
++        "merge-source-map": "1.0.4",
++        "object-inspect": "~1.4.0",
++        "quote-stream": "~1.0.2",
++        "readable-stream": "~2.3.3",
++        "shallow-copy": "~0.0.1",
++        "static-eval": "^2.0.0",
++        "through2": "~2.0.3"
++      },
++      "dependencies": {
++        "object-inspect": {
++          "version": "1.4.1",
++          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz",
++          "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==",
++          "dev": true
++        }
++      }
++    },
++    "statuses": {
++      "version": "1.5.0",
++      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
++      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
++      "dev": true
++    },
++    "stealthy-require": {
++      "version": "1.1.1",
++      "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
++      "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
++      "dev": true
++    },
++    "stream-browserify": {
++      "version": "2.0.2",
++      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
++      "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
++      "dev": true,
++      "requires": {
++        "inherits": "~2.0.1",
++        "readable-stream": "^2.0.2"
++      }
++    },
++    "stream-http": {
++      "version": "2.8.3",
++      "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
++      "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
++      "dev": true,
++      "requires": {
++        "builtin-status-codes": "^3.0.0",
++        "inherits": "^2.0.1",
++        "readable-stream": "^2.3.6",
++        "to-arraybuffer": "^1.0.0",
++        "xtend": "^4.0.0"
++      }
++    },
++    "string-width": {
++      "version": "3.1.0",
++      "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
++      "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
++      "dev": true,
++      "requires": {
++        "emoji-regex": "^7.0.1",
++        "is-fullwidth-code-point": "^2.0.0",
++        "strip-ansi": "^5.1.0"
++      },
++      "dependencies": {
++        "ansi-regex": {
++          "version": "4.1.0",
++          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
++          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
++          "dev": true
++        },
++        "strip-ansi": {
++          "version": "5.2.0",
++          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
++          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
++          "dev": true,
++          "requires": {
++            "ansi-regex": "^4.1.0"
++          }
++        }
++      }
++    },
++    "string.prototype.trimend": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
++      "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
++      "dev": true,
++      "requires": {
++        "define-properties": "^1.1.3",
++        "es-abstract": "^1.17.5"
++      }
++    },
++    "string.prototype.trimleft": {
++      "version": "2.1.2",
++      "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
++      "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
++      "dev": true,
++      "requires": {
++        "define-properties": "^1.1.3",
++        "es-abstract": "^1.17.5",
++        "string.prototype.trimstart": "^1.0.0"
++      }
++    },
++    "string.prototype.trimright": {
++      "version": "2.1.2",
++      "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
++      "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
++      "dev": true,
++      "requires": {
++        "define-properties": "^1.1.3",
++        "es-abstract": "^1.17.5",
++        "string.prototype.trimend": "^1.0.0"
++      }
++    },
++    "string.prototype.trimstart": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
++      "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
++      "dev": true,
++      "requires": {
++        "define-properties": "^1.1.3",
++        "es-abstract": "^1.17.5"
++      }
++    },
++    "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"
++      }
++    },
++    "strip-ansi": {
++      "version": "4.0.0",
++      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
++      "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
++      "dev": true,
++      "requires": {
++        "ansi-regex": "^3.0.0"
++      }
++    },
++    "stylehacks": {
++      "version": "4.0.3",
++      "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
++      "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==",
++      "dev": true,
++      "requires": {
++        "browserslist": "^4.0.0",
++        "postcss": "^7.0.0",
++        "postcss-selector-parser": "^3.0.0"
++      },
++      "dependencies": {
++        "postcss-selector-parser": {
++          "version": "3.1.2",
++          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
++          "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
++          "dev": true,
++          "requires": {
++            "dot-prop": "^5.2.0",
++            "indexes-of": "^1.0.1",
++            "uniq": "^1.0.1"
++          }
++        }
++      }
++    },
++    "supports-color": {
++      "version": "6.1.0",
++      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
++      "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
++      "dev": true,
++      "requires": {
++        "has-flag": "^3.0.0"
++      }
++    },
++    "svgo": {
++      "version": "1.3.2",
++      "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
++      "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==",
++      "dev": true,
++      "requires": {
++        "chalk": "^2.4.1",
++        "coa": "^2.0.2",
++        "css-select": "^2.0.0",
++        "css-select-base-adapter": "^0.1.1",
++        "css-tree": "1.0.0-alpha.37",
++        "csso": "^4.0.2",
++        "js-yaml": "^3.13.1",
++        "mkdirp": "~0.5.1",
++        "object.values": "^1.1.0",
++        "sax": "~1.2.4",
++        "stable": "^0.1.8",
++        "unquote": "~1.1.1",
++        "util.promisify": "~1.0.0"
++      }
++    },
++    "symbol-tree": {
++      "version": "3.2.4",
++      "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
++      "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
++      "dev": true
++    },
++    "temp": {
++      "version": "0.9.0",
++      "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.0.tgz",
++      "integrity": "sha512-YfUhPQCJoNQE5N+FJQcdPz63O3x3sdT4Xju69Gj4iZe0lBKOtnAMi0SLj9xKhGkcGhsxThvTJ/usxtFPo438zQ==",
++      "dev": true,
++      "requires": {
++        "rimraf": "~2.6.2"
++      }
++    },
++    "terser": {
++      "version": "3.17.0",
++      "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
++      "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
++      "dev": true,
++      "requires": {
++        "commander": "^2.19.0",
++        "source-map": "~0.6.1",
++        "source-map-support": "~0.5.10"
++      }
++    },
++    "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"
++      }
++    },
++    "timers-browserify": {
++      "version": "2.0.11",
++      "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
++      "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==",
++      "dev": true,
++      "requires": {
++        "setimmediate": "^1.0.4"
++      }
++    },
++    "timsort": {
++      "version": "0.3.0",
++      "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
++      "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
++      "dev": true
++    },
++    "tiny-inflate": {
++      "version": "1.0.3",
++      "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
++      "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==",
++      "dev": true
++    },
++    "to-arraybuffer": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
++      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
++      "dev": true
++    },
++    "to-fast-properties": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
++      "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
++      "dev": true
++    },
++    "to-object-path": {
++      "version": "0.3.0",
++      "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
++      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
++      "dev": true,
++      "requires": {
++        "kind-of": "^3.0.2"
++      },
++      "dependencies": {
++        "kind-of": {
++          "version": "3.2.2",
++          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
++          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
++          "dev": true,
++          "requires": {
++            "is-buffer": "^1.1.5"
++          }
++        }
++      }
++    },
++    "to-regex": {
++      "version": "3.0.2",
++      "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
++      "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
++      "dev": true,
++      "requires": {
++        "define-property": "^2.0.2",
++        "extend-shallow": "^3.0.2",
++        "regex-not": "^1.0.2",
++        "safe-regex": "^1.1.0"
++      }
++    },
++    "to-regex-range": {
++      "version": "2.1.1",
++      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
++      "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
++      "dev": true,
++      "requires": {
++        "is-number": "^3.0.0",
++        "repeat-string": "^1.6.1"
++      }
++    },
++    "toidentifier": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
++      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+       "dev": true
+     },
+-    "brace-expansion": {
+-      "version": "1.1.11",
+-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+-      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
++    "tough-cookie": {
++      "version": "2.5.0",
++      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
++      "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
++      "requires": {
++        "psl": "^1.1.28",
++        "punycode": "^2.1.1"
++      }
++    },
++    "tr46": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
++      "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
+       "dev": true,
+       "requires": {
+-        "balanced-match": "^1.0.0",
+-        "concat-map": "0.0.1"
++        "punycode": "^2.1.0"
+       }
+     },
+-    "concat-map": {
+-      "version": "0.0.1",
+-      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+-      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
++    "trim-right": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
++      "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+       "dev": true
+     },
+-    "cross-spawn": {
+-      "version": "6.0.5",
+-      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+-      "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
++    "tty-browserify": {
++      "version": "0.0.0",
++      "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
++      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
++      "dev": true
++    },
++    "tunnel-agent": {
++      "version": "0.6.0",
++      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
++      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
++      "requires": {
++        "safe-buffer": "^5.0.1"
++      }
++    },
++    "tweetnacl": {
++      "version": "0.14.5",
++      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
++      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
++    },
++    "type-check": {
++      "version": "0.3.2",
++      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
++      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+       "dev": true,
+       "requires": {
+-        "nice-try": "^1.0.4",
+-        "path-key": "^2.0.1",
+-        "semver": "^5.5.0",
+-        "shebang-command": "^1.2.0",
+-        "which": "^1.2.9"
++        "prelude-ls": "~1.1.2"
+       }
+     },
+-    "elm-hot": {
+-      "version": "1.1.1",
+-      "resolved": "https://registry.npmjs.org/elm-hot/-/elm-hot-1.1.1.tgz",
+-      "integrity": "sha512-ZHjoHd2Ev6riNXNQirj3J+GKKXXwedAUikfFBYzlVL/+3CdGs96cpZ7nhAk4c5l//Qa9ymltrqX36mOlr0pPFA==",
++    "typedarray": {
++      "version": "0.0.6",
++      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
++      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+       "dev": true
+     },
+-    "find-elm-dependencies": {
+-      "version": "2.0.2",
+-      "resolved": "https://registry.npmjs.org/find-elm-dependencies/-/find-elm-dependencies-2.0.2.tgz",
+-      "integrity": "sha512-nM5UCbccD1G8CGK2GsM7ykG3ksOAl9E+34jiDfl07CAl2OPnLpBVWY2hlxEmIkSBfdJjSopEowWHrO0cI8RhxQ==",
++    "uncss": {
++      "version": "0.17.3",
++      "resolved": "https://registry.npmjs.org/uncss/-/uncss-0.17.3.tgz",
++      "integrity": "sha512-ksdDWl81YWvF/X14fOSw4iu8tESDHFIeyKIeDrK6GEVTQvqJc1WlOEXqostNwOCi3qAj++4EaLsdAgPmUbEyog==",
+       "dev": true,
+       "requires": {
+-        "firstline": "1.2.0",
+-        "lodash": "4.17.15"
++        "commander": "^2.20.0",
++        "glob": "^7.1.4",
++        "is-absolute-url": "^3.0.1",
++        "is-html": "^1.1.0",
++        "jsdom": "^14.1.0",
++        "lodash": "^4.17.15",
++        "postcss": "^7.0.17",
++        "postcss-selector-parser": "6.0.2",
++        "request": "^2.88.0"
++      },
++      "dependencies": {
++        "is-absolute-url": {
++          "version": "3.0.3",
++          "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
++          "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
++          "dev": true
++        }
+       }
+     },
+-    "firstline": {
++    "unicode-canonical-property-names-ecmascript": {
++      "version": "1.0.4",
++      "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
++      "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
++      "dev": true
++    },
++    "unicode-match-property-ecmascript": {
++      "version": "1.0.4",
++      "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
++      "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
++      "dev": true,
++      "requires": {
++        "unicode-canonical-property-names-ecmascript": "^1.0.4",
++        "unicode-property-aliases-ecmascript": "^1.0.4"
++      }
++    },
++    "unicode-match-property-value-ecmascript": {
+       "version": "1.2.0",
+-      "resolved": "https://registry.npmjs.org/firstline/-/firstline-1.2.0.tgz",
+-      "integrity": "sha1-yfSIbn9/vwr8EtcZQdzgaxkq6gU=",
++      "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
++      "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==",
+       "dev": true
+     },
+-    "fs.realpath": {
+-      "version": "1.0.0",
+-      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+-      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
++    "unicode-property-aliases-ecmascript": {
++      "version": "1.1.0",
++      "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
++      "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
+       "dev": true
+     },
+-    "glob": {
+-      "version": "7.1.4",
+-      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
+-      "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
++    "unicode-trie": {
++      "version": "0.3.1",
++      "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz",
++      "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=",
+       "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"
++        "pako": "^0.2.5",
++        "tiny-inflate": "^1.0.0"
+       }
+     },
+-    "inflight": {
+-      "version": "1.0.6",
+-      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+-      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
++    "union-value": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
++      "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+       "dev": true,
+       "requires": {
+-        "once": "^1.3.0",
+-        "wrappy": "1"
++        "arr-union": "^3.1.0",
++        "get-value": "^2.0.6",
++        "is-extendable": "^0.1.1",
++        "set-value": "^2.0.1"
+       }
+     },
+-    "inherits": {
+-      "version": "2.0.4",
+-      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+-      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
++    "uniq": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
++      "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+       "dev": true
+     },
+-    "isexe": {
++    "uniqs": {
+       "version": "2.0.0",
+-      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+-      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
++      "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
++      "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+       "dev": true
+     },
+-    "lodash": {
+-      "version": "4.17.15",
+-      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+-      "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
++    "unquote": {
++      "version": "1.1.1",
++      "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
++      "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
+       "dev": true
+     },
+-    "minimatch": {
+-      "version": "3.0.4",
+-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+-      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
++    "unset-value": {
++      "version": "1.0.0",
++      "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
++      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+       "dev": true,
+       "requires": {
+-        "brace-expansion": "^1.1.7"
++        "has-value": "^0.3.1",
++        "isobject": "^3.0.0"
++      },
++      "dependencies": {
++        "has-value": {
++          "version": "0.3.1",
++          "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
++          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
++          "dev": true,
++          "requires": {
++            "get-value": "^2.0.3",
++            "has-values": "^0.1.4",
++            "isobject": "^2.0.0"
++          },
++          "dependencies": {
++            "isobject": {
++              "version": "2.1.0",
++              "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
++              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
++              "dev": true,
++              "requires": {
++                "isarray": "1.0.0"
++              }
++            }
++          }
++        },
++        "has-values": {
++          "version": "0.1.4",
++          "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
++          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
++          "dev": true
++        }
+       }
+     },
+-    "nice-try": {
+-      "version": "1.0.5",
+-      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+-      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
++    "upath": {
++      "version": "1.2.0",
++      "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
++      "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+       "dev": true
+     },
+-    "node-elm-compiler": {
+-      "version": "5.0.4",
+-      "resolved": "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.4.tgz",
+-      "integrity": "sha512-VQsT8QSierYGkHzRed+b4MnccQVF1+qPHunE8jBoU7jD6YpuRqCDPzEoC2zfyEJS80qVnlMZrqobLnyjzX9lJg==",
++    "uri-js": {
++      "version": "4.2.2",
++      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
++      "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
++      "requires": {
++        "punycode": "^2.1.0"
++      }
++    },
++    "urix": {
++      "version": "0.1.0",
++      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
++      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
++      "dev": true
++    },
++    "url": {
++      "version": "0.11.0",
++      "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
++      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+       "dev": true,
+       "requires": {
+-        "cross-spawn": "6.0.5",
+-        "find-elm-dependencies": "2.0.2",
+-        "lodash": "4.17.15",
+-        "temp": "^0.9.0"
++        "punycode": "1.3.2",
++        "querystring": "0.2.0"
++      },
++      "dependencies": {
++        "punycode": {
++          "version": "1.3.2",
++          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
++          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
++          "dev": true
++        }
+       }
+     },
+-    "once": {
+-      "version": "1.4.0",
+-      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+-      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
++    "use": {
++      "version": "3.1.1",
++      "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
++      "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
++      "dev": true
++    },
++    "util": {
++      "version": "0.11.1",
++      "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
++      "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+       "dev": true,
+       "requires": {
+-        "wrappy": "1"
++        "inherits": "2.0.3"
++      },
++      "dependencies": {
++        "inherits": {
++          "version": "2.0.3",
++          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
++          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
++          "dev": true
++        }
+       }
+     },
+-    "path-is-absolute": {
++    "util-deprecate": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
++      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
++      "dev": true
++    },
++    "util.promisify": {
+       "version": "1.0.1",
+-      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+-      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
++      "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
++      "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
++      "dev": true,
++      "requires": {
++        "define-properties": "^1.1.3",
++        "es-abstract": "^1.17.2",
++        "has-symbols": "^1.0.1",
++        "object.getownpropertydescriptors": "^2.1.0"
++      }
++    },
++    "uuid": {
++      "version": "3.4.0",
++      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
++      "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
++    },
++    "v8-compile-cache": {
++      "version": "2.1.0",
++      "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
++      "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==",
+       "dev": true
+     },
+-    "path-key": {
+-      "version": "2.0.1",
+-      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+-      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
++    "vendors": {
++      "version": "1.0.4",
++      "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz",
++      "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==",
+       "dev": true
+     },
+-    "rimraf": {
+-      "version": "2.6.3",
+-      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+-      "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
++    "verror": {
++      "version": "1.10.0",
++      "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
++      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
++      "requires": {
++        "assert-plus": "^1.0.0",
++        "core-util-is": "1.0.2",
++        "extsprintf": "^1.2.0"
++      }
++    },
++    "vlq": {
++      "version": "0.2.3",
++      "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
++      "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==",
++      "dev": true
++    },
++    "vm-browserify": {
++      "version": "1.1.2",
++      "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
++      "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
++      "dev": true
++    },
++    "w3c-hr-time": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
++      "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
+       "dev": true,
+       "requires": {
+-        "glob": "^7.1.3"
++        "browser-process-hrtime": "^1.0.0"
+       }
+     },
+-    "semver": {
+-      "version": "5.7.1",
+-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
++    "w3c-xmlserializer": {
++      "version": "1.1.2",
++      "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz",
++      "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==",
++      "dev": true,
++      "requires": {
++        "domexception": "^1.0.1",
++        "webidl-conversions": "^4.0.2",
++        "xml-name-validator": "^3.0.0"
++      }
++    },
++    "wcwidth": {
++      "version": "1.0.1",
++      "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
++      "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
++      "dev": true,
++      "requires": {
++        "defaults": "^1.0.3"
++      }
++    },
++    "webidl-conversions": {
++      "version": "4.0.2",
++      "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
++      "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+       "dev": true
+     },
+-    "shebang-command": {
+-      "version": "1.2.0",
+-      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+-      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
++    "whatwg-encoding": {
++      "version": "1.0.5",
++      "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
++      "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
+       "dev": true,
+       "requires": {
+-        "shebang-regex": "^1.0.0"
++        "iconv-lite": "0.4.24"
+       }
+     },
+-    "shebang-regex": {
+-      "version": "1.0.0",
+-      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+-      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
++    "whatwg-mimetype": {
++      "version": "2.3.0",
++      "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
++      "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
+       "dev": true
+     },
+-    "temp": {
+-      "version": "0.9.0",
+-      "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.0.tgz",
+-      "integrity": "sha512-YfUhPQCJoNQE5N+FJQcdPz63O3x3sdT4Xju69Gj4iZe0lBKOtnAMi0SLj9xKhGkcGhsxThvTJ/usxtFPo438zQ==",
++    "whatwg-url": {
++      "version": "7.1.0",
++      "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
++      "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
+       "dev": true,
+       "requires": {
+-        "rimraf": "~2.6.2"
++        "lodash.sortby": "^4.7.0",
++        "tr46": "^1.0.1",
++        "webidl-conversions": "^4.0.2"
+       }
+     },
+     "which": {
+@@ -205,11 +7972,164 @@
+         "isexe": "^2.0.0"
+       }
+     },
++    "which-module": {
++      "version": "2.0.0",
++      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
++      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
++      "dev": true
++    },
++    "word-wrap": {
++      "version": "1.2.3",
++      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
++      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
++      "dev": true
++    },
++    "wrap-ansi": {
++      "version": "5.1.0",
++      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
++      "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
++      "dev": true,
++      "requires": {
++        "ansi-styles": "^3.2.0",
++        "string-width": "^3.0.0",
++        "strip-ansi": "^5.0.0"
++      },
++      "dependencies": {
++        "ansi-regex": {
++          "version": "4.1.0",
++          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
++          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
++          "dev": true
++        },
++        "strip-ansi": {
++          "version": "5.2.0",
++          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
++          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
++          "dev": true,
++          "requires": {
++            "ansi-regex": "^4.1.0"
++          }
++        }
++      }
++    },
+     "wrappy": {
+       "version": "1.0.2",
+       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+       "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+       "dev": true
++    },
++    "ws": {
++      "version": "5.2.2",
++      "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
++      "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
++      "dev": true,
++      "requires": {
++        "async-limiter": "~1.0.0"
++      }
++    },
++    "xml-name-validator": {
++      "version": "3.0.0",
++      "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
++      "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
++      "dev": true
++    },
++    "xmlchars": {
++      "version": "2.2.0",
++      "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
++      "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
++      "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
++    },
++    "y18n": {
++      "version": "4.0.0",
++      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
++      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
++      "dev": true
++    },
++    "yallist": {
++      "version": "2.1.2",
++      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
++      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
++      "dev": true
++    },
++    "yargs": {
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
++      "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
++      "dev": true,
++      "requires": {
++        "cliui": "^5.0.0",
++        "decamelize": "^1.2.0",
++        "find-up": "^3.0.0",
++        "get-caller-file": "^2.0.1",
++        "require-directory": "^2.1.1",
++        "require-main-filename": "^2.0.0",
++        "set-blocking": "^2.0.0",
++        "string-width": "^3.0.0",
++        "which-module": "^2.0.0",
++        "y18n": "^4.0.0",
++        "yargs-parser": "^15.0.1"
++      },
++      "dependencies": {
++        "find-up": {
++          "version": "3.0.0",
++          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
++          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
++          "dev": true,
++          "requires": {
++            "locate-path": "^3.0.0"
++          }
++        },
++        "locate-path": {
++          "version": "3.0.0",
++          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
++          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
++          "dev": true,
++          "requires": {
++            "p-locate": "^3.0.0",
++            "path-exists": "^3.0.0"
++          }
++        },
++        "p-limit": {
++          "version": "2.3.0",
++          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
++          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
++          "dev": true,
++          "requires": {
++            "p-try": "^2.0.0"
++          }
++        },
++        "p-locate": {
++          "version": "3.0.0",
++          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
++          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
++          "dev": true,
++          "requires": {
++            "p-limit": "^2.0.0"
++          }
++        },
++        "p-try": {
++          "version": "2.2.0",
++          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
++          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
++          "dev": true
++        }
++      }
++    },
++    "yargs-parser": {
++      "version": "15.0.1",
++      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
++      "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
++      "dev": true,
++      "requires": {
++        "camelcase": "^5.0.0",
++        "decamelize": "^1.2.0"
++      }
+     }
+   }
+ }
+diff --git a/src/Api.elm b/src/Api.elm
+index 82e5f6c..8442e58 100644
+--- a/src/Api.elm
++++ b/src/Api.elm
+@@ -36,7 +36,7 @@ init url =
+                     { url | host = "api.codenamesgreen.com", path = "", query = Nothing, fragment = Nothing }
+                 _ ->
+-                    { url | host = "api." ++ url.host, path = "", query = Nothing, fragment = Nothing }
++                    { url | host = url.host, path = "/api", query = Nothing, fragment = Nothing }
+     in
+     { baseUrl = baseUrl }
+@@ -80,7 +80,7 @@ type alias Index =
+ endpointUrl : Url.Url -> String -> String
+ endpointUrl baseUrl path =
+-    { baseUrl | path = path }
++    { baseUrl | path = baseUrl.path ++ path }
+         |> Url.toString
diff --git a/modules/private/websites/tools/games/codenames/default.nix b/modules/private/websites/tools/games/codenames/default.nix
new file mode 100644 (file)
index 0000000..25eb62d
--- /dev/null
@@ -0,0 +1,50 @@
+{ config, lib, pkgs, ... }:
+let
+  greenapid = pkgs.callPackage ./greenapid.nix {};
+  frontend = pkgs.callPackage ./frontend.nix { nodeEnv = pkgs.callPackage pkgs.mylibs.nodeEnv {}; };
+  wordlists = pkgs.runCommand "wordlists" {} ''
+    mkdir -p $out
+    cp -r ${./wordlists} $out/wordlists
+  '';
+  cfg = config.myServices.websites.games.codenames;
+in
+{
+  options.myServices.websites.games.codenames.enable = lib.mkEnableOption "Enable Codenames game";
+  config = lib.mkIf cfg.enable {
+    systemd.services.codenames_api = {
+      description = "Api for codenames game";
+      wantedBy = [ "multi-user.target" ];
+      script = "${greenapid}/bin/greenapid";
+      postStart = ''
+        sleep 5;
+        chown :wwwrun /run/codenamesgreen/socket.sock
+        chmod g+w /run/codenamesgreen/socket.sock
+      '';
+      serviceConfig = {
+        User = "codenames";
+        DynamicUser = true;
+        SupplementaryGroups = [ "wwwrun" ];
+        Type = "simple";
+        RuntimeDirectory = "codenamesgreen";
+        WorkingDirectory = builtins.toString wordlists;
+      };
+    };
+
+    services.websites.env.tools.vhostConfs.games_codenames = {
+      certName = "games";
+      certMainHost = "games.immae.eu";
+      hosts = [ "codenames.games.immae.eu" ];
+      root = frontend;
+      extraConfig = [
+        ''
+        ProxyPass        /api/ unix:///run/codenamesgreen/socket.sock|http://codenames.games.immae.eu/
+        ProxyPassReverse /api/ unix:///run/codenamesgreen/socket.sock|http://codenames.games.immae.eu/
+
+        <Directory ${frontend}>
+          FallbackResource index.html
+        </Directory>
+        ''
+      ];
+    };
+  };
+}
diff --git a/modules/private/websites/tools/games/codenames/deps.nix b/modules/private/websites/tools/games/codenames/deps.nix
new file mode 100644 (file)
index 0000000..fddec2e
--- /dev/null
@@ -0,0 +1,11 @@
+[
+  {
+    goPackagePath = "github.com/jbowens/dictionary";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jbowens/dictionary";
+      rev = "229cf68df1a675e7a2462c4028d7df4abfd98854";
+      sha256 = "0gyg3xcx4xqx6w8id2dq5s280mdfhs6yc9flg2jbj8jff040s28w";
+    };
+  }
+]
diff --git a/modules/private/websites/tools/games/codenames/elm-srcs.nix b/modules/private/websites/tools/games/codenames/elm-srcs.nix
new file mode 100644 (file)
index 0000000..6ae57b5
--- /dev/null
@@ -0,0 +1,82 @@
+{
+
+      "elm/json" = {
+        sha256 = "0kjwrz195z84kwywaxhhlnpl3p251qlbm5iz6byd6jky2crmyqyh";
+        version = "1.1.3";
+      };
+
+      "perzanko/elm-loading" = {
+        sha256 = "0fs7ly4jib4gwhh157g91hgjryqja096i6jhbsq7qb4k4r3c5l80";
+        version = "2.0.4";
+      };
+
+      "elm/html" = {
+        sha256 = "1n3gpzmpqqdsldys4ipgyl1zacn0kbpc3g4v3hdpiyfjlgh8bf3k";
+        version = "1.0.0";
+      };
+
+      "elm/browser" = {
+        sha256 = "1zlmx672glg7fdgkvh5jm47y85pv7pdfr5mkhg6x7ar6k000vyka";
+        version = "1.0.1";
+      };
+
+      "elm/core" = {
+        sha256 = "1l0qdbczw91kzz8sx5d5zwz9x662bspy7p21dsr3f2rigxiix2as";
+        version = "1.0.2";
+      };
+
+      "elm/url" = {
+        sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4";
+        version = "1.0.0";
+      };
+
+      "elm/http" = {
+        sha256 = "008bs76mnp48b4dw8qwjj4fyvzbxvlrl4xpa2qh1gg2kfwyw56v1";
+        version = "2.0.0";
+      };
+
+      "elm/bytes" = {
+        sha256 = "02ywbf52akvxclpxwj9n04jydajcbsbcbsnjs53yjc5lwck3abwj";
+        version = "1.0.8";
+      };
+
+      "elm/file" = {
+        sha256 = "1rljcb41dl97myidyjih2yliyzddkr2m7n74x7gg46rcw4jl0ny8";
+        version = "1.0.5";
+      };
+
+      "rtfeldman/elm-hex" = {
+        sha256 = "1y0aa16asvwdqmgbskh5iba6psp43lkcjjw9mgzj3gsrg33lp00d";
+        version = "1.0.0";
+      };
+
+      "rtfeldman/elm-css" = {
+        sha256 = "05sgz21jnnmz6m5s74515337n1aanab2zzn8jpw3bhdjc9cwwfcj";
+        version = "16.0.1";
+      };
+
+      "elm/time" = {
+        sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1";
+        version = "1.0.0";
+      };
+
+      "Skinney/murmur3" = {
+        sha256 = "1iiia68w8wlp2qjilyqgnzgjcxby47gla3rw5minj8i5c64zk18j";
+        version = "2.0.8";
+      };
+
+      "elm/virtual-dom" = {
+        sha256 = "0q1v5gi4g336bzz1lgwpn5b1639lrn63d8y6k6pimcyismp2i1yg";
+        version = "1.0.2";
+      };
+
+      "elm-explorations/test" = {
+        sha256 = "0rpynrm9irgzyynd1bws0xspww5lnwv7w7998750jb8kcrw39h0n";
+        version = "1.0.0";
+      };
+
+      "elm/random" = {
+        sha256 = "138n2455wdjwa657w6sjq18wx2r0k60ibpc4frhbqr50sncxrfdl";
+        version = "1.0.0";
+      };
+}
diff --git a/modules/private/websites/tools/games/codenames/frontend.nix b/modules/private/websites/tools/games/codenames/frontend.nix
new file mode 100644 (file)
index 0000000..0f29070
--- /dev/null
@@ -0,0 +1,22 @@
+{ callPackage, runCommand, nodejs, utillinux, nodeEnv, nodePackages, elmPackages }:
+let
+  codenamesgreen_packages = callPackage ./node-packages.nix { inherit nodeEnv; };
+in
+runCommand "frontend" {
+  buildInputs = [
+    nodejs utillinux nodePackages.parcel-bundler elmPackages.elm
+  ];
+} ''
+  cp -a ${codenamesgreen_packages.package}/lib/node_modules/codenamesgreen .
+  chmod -R u+w codenamesgreen
+  cd codenamesgreen
+  ${elmPackages.fetchElmDeps {
+    elmPackages = import ./elm-srcs.nix;
+    registryDat = ./registry.dat;
+    elmVersion = elmPackages.elm.version;
+  }}
+  npx parcel build src/index.html
+  cp -a dist $out
+  cp -R src/images $out
+  cp src/robots.txt $out
+''
diff --git a/modules/private/websites/tools/games/codenames/greenapid.nix b/modules/private/websites/tools/games/codenames/greenapid.nix
new file mode 100644 (file)
index 0000000..c75f29e
--- /dev/null
@@ -0,0 +1,18 @@
+{ buildGoPackage, fetchFromGitHub, socket ? "/run/codenamesgreen/socket.sock" }:
+buildGoPackage rec {
+  pname = "greenapid";
+  version = "master";
+
+  goPackagePath = "github.com/jbowens/codenamesgreen";
+  subPackages = [ "cmd/greenapid" ];
+
+  src = fetchFromGitHub {
+    owner = "jbowens";
+    repo = "codenamesgreen";
+    rev = version;
+    sha256 = "0bkaf52rnjw792q0755in4k5jbcrmgq06cl03fdl6zdr8kq2mhm0";
+  };
+
+  patches = [ ./greenapid.patch ];
+  goDeps = ./deps.nix;
+}
diff --git a/modules/private/websites/tools/games/codenames/greenapid.patch b/modules/private/websites/tools/games/codenames/greenapid.patch
new file mode 100644 (file)
index 0000000..a8f670a
--- /dev/null
@@ -0,0 +1,26 @@
+diff --git a/cmd/greenapid/main.go b/cmd/greenapid/main.go
+index 86499e9..1589323 100644
+--- a/cmd/greenapid/main.go
++++ b/cmd/greenapid/main.go
+@@ -1,6 +1,7 @@
+ package main
+ import (
++      "net"
+       "net/http"
+       "github.com/jbowens/codenamesgreen/gameapi"
+@@ -13,6 +14,12 @@ func main() {
+       }
+       h := gameapi.Handler(wordLists)
+-      err = http.ListenAndServe(":8080", h)
++      server := &http.Server{Handler: h}
++      ln, err := net.Listen("unix", "/run/codenamesgreen/socket.sock")
++      if err != nil {
++              panic(err)
++      }
++
++      err = server.Serve(ln)
+       panic(err)
+ }
diff --git a/modules/private/websites/tools/games/codenames/node-packages.nix b/modules/private/websites/tools/games/codenames/node-packages.nix
new file mode 100644 (file)
index 0000000..2ff488c
--- /dev/null
@@ -0,0 +1,7621 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, fetchFromGitHub, runCommand, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/code-frame-7.0.0" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz";
+        sha512 = "OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==";
+      };
+    };
+    "@babel/code-frame-7.8.3" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
+        sha512 = "a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==";
+      };
+    };
+    "@babel/core-7.3.4" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz";
+        sha512 = "jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==";
+      };
+    };
+    "@babel/generator-7.3.4" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz";
+        sha512 = "8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==";
+      };
+    };
+    "@babel/generator-7.9.5" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz";
+        sha512 = "GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==";
+      };
+    };
+    "@babel/helper-annotate-as-pure-7.8.3" = {
+      name = "_at_babel_slash_helper-annotate-as-pure";
+      packageName = "@babel/helper-annotate-as-pure";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz";
+        sha512 = "6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==";
+      };
+    };
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.8.3" = {
+      name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
+      packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz";
+        sha512 = "5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==";
+      };
+    };
+    "@babel/helper-builder-react-jsx-7.9.0" = {
+      name = "_at_babel_slash_helper-builder-react-jsx";
+      packageName = "@babel/helper-builder-react-jsx";
+      version = "7.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz";
+        sha512 = "weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==";
+      };
+    };
+    "@babel/helper-create-regexp-features-plugin-7.8.8" = {
+      name = "_at_babel_slash_helper-create-regexp-features-plugin";
+      packageName = "@babel/helper-create-regexp-features-plugin";
+      version = "7.8.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz";
+        sha512 = "LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==";
+      };
+    };
+    "@babel/helper-define-map-7.8.3" = {
+      name = "_at_babel_slash_helper-define-map";
+      packageName = "@babel/helper-define-map";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz";
+        sha512 = "PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==";
+      };
+    };
+    "@babel/helper-explode-assignable-expression-7.8.3" = {
+      name = "_at_babel_slash_helper-explode-assignable-expression";
+      packageName = "@babel/helper-explode-assignable-expression";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz";
+        sha512 = "N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==";
+      };
+    };
+    "@babel/helper-function-name-7.9.5" = {
+      name = "_at_babel_slash_helper-function-name";
+      packageName = "@babel/helper-function-name";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz";
+        sha512 = "JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==";
+      };
+    };
+    "@babel/helper-get-function-arity-7.8.3" = {
+      name = "_at_babel_slash_helper-get-function-arity";
+      packageName = "@babel/helper-get-function-arity";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz";
+        sha512 = "FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==";
+      };
+    };
+    "@babel/helper-hoist-variables-7.8.3" = {
+      name = "_at_babel_slash_helper-hoist-variables";
+      packageName = "@babel/helper-hoist-variables";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz";
+        sha512 = "ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==";
+      };
+    };
+    "@babel/helper-member-expression-to-functions-7.8.3" = {
+      name = "_at_babel_slash_helper-member-expression-to-functions";
+      packageName = "@babel/helper-member-expression-to-functions";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz";
+        sha512 = "fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==";
+      };
+    };
+    "@babel/helper-module-imports-7.8.3" = {
+      name = "_at_babel_slash_helper-module-imports";
+      packageName = "@babel/helper-module-imports";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz";
+        sha512 = "R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==";
+      };
+    };
+    "@babel/helper-module-transforms-7.9.0" = {
+      name = "_at_babel_slash_helper-module-transforms";
+      packageName = "@babel/helper-module-transforms";
+      version = "7.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz";
+        sha512 = "0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==";
+      };
+    };
+    "@babel/helper-optimise-call-expression-7.8.3" = {
+      name = "_at_babel_slash_helper-optimise-call-expression";
+      packageName = "@babel/helper-optimise-call-expression";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz";
+        sha512 = "Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==";
+      };
+    };
+    "@babel/helper-plugin-utils-7.8.3" = {
+      name = "_at_babel_slash_helper-plugin-utils";
+      packageName = "@babel/helper-plugin-utils";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz";
+        sha512 = "j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==";
+      };
+    };
+    "@babel/helper-regex-7.8.3" = {
+      name = "_at_babel_slash_helper-regex";
+      packageName = "@babel/helper-regex";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz";
+        sha512 = "BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==";
+      };
+    };
+    "@babel/helper-remap-async-to-generator-7.8.3" = {
+      name = "_at_babel_slash_helper-remap-async-to-generator";
+      packageName = "@babel/helper-remap-async-to-generator";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz";
+        sha512 = "kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==";
+      };
+    };
+    "@babel/helper-replace-supers-7.8.6" = {
+      name = "_at_babel_slash_helper-replace-supers";
+      packageName = "@babel/helper-replace-supers";
+      version = "7.8.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz";
+        sha512 = "PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==";
+      };
+    };
+    "@babel/helper-simple-access-7.8.3" = {
+      name = "_at_babel_slash_helper-simple-access";
+      packageName = "@babel/helper-simple-access";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz";
+        sha512 = "VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==";
+      };
+    };
+    "@babel/helper-split-export-declaration-7.8.3" = {
+      name = "_at_babel_slash_helper-split-export-declaration";
+      packageName = "@babel/helper-split-export-declaration";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz";
+        sha512 = "3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==";
+      };
+    };
+    "@babel/helper-validator-identifier-7.9.5" = {
+      name = "_at_babel_slash_helper-validator-identifier";
+      packageName = "@babel/helper-validator-identifier";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz";
+        sha512 = "/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==";
+      };
+    };
+    "@babel/helper-wrap-function-7.8.3" = {
+      name = "_at_babel_slash_helper-wrap-function";
+      packageName = "@babel/helper-wrap-function";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz";
+        sha512 = "LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==";
+      };
+    };
+    "@babel/helpers-7.9.2" = {
+      name = "_at_babel_slash_helpers";
+      packageName = "@babel/helpers";
+      version = "7.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz";
+        sha512 = "JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==";
+      };
+    };
+    "@babel/highlight-7.9.0" = {
+      name = "_at_babel_slash_highlight";
+      packageName = "@babel/highlight";
+      version = "7.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz";
+        sha512 = "lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==";
+      };
+    };
+    "@babel/parser-7.3.4" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz";
+        sha512 = "tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==";
+      };
+    };
+    "@babel/parser-7.9.4" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.9.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz";
+        sha512 = "bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==";
+      };
+    };
+    "@babel/plugin-proposal-async-generator-functions-7.8.3" = {
+      name = "_at_babel_slash_plugin-proposal-async-generator-functions";
+      packageName = "@babel/plugin-proposal-async-generator-functions";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz";
+        sha512 = "NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==";
+      };
+    };
+    "@babel/plugin-proposal-json-strings-7.8.3" = {
+      name = "_at_babel_slash_plugin-proposal-json-strings";
+      packageName = "@babel/plugin-proposal-json-strings";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz";
+        sha512 = "KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==";
+      };
+    };
+    "@babel/plugin-proposal-object-rest-spread-7.9.5" = {
+      name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+      packageName = "@babel/plugin-proposal-object-rest-spread";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz";
+        sha512 = "VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg==";
+      };
+    };
+    "@babel/plugin-proposal-optional-catch-binding-7.8.3" = {
+      name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
+      packageName = "@babel/plugin-proposal-optional-catch-binding";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz";
+        sha512 = "0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==";
+      };
+    };
+    "@babel/plugin-proposal-unicode-property-regex-7.8.8" = {
+      name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
+      packageName = "@babel/plugin-proposal-unicode-property-regex";
+      version = "7.8.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz";
+        sha512 = "EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==";
+      };
+    };
+    "@babel/plugin-syntax-async-generators-7.8.4" = {
+      name = "_at_babel_slash_plugin-syntax-async-generators";
+      packageName = "@babel/plugin-syntax-async-generators";
+      version = "7.8.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz";
+        sha512 = "tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==";
+      };
+    };
+    "@babel/plugin-syntax-flow-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-flow";
+      packageName = "@babel/plugin-syntax-flow";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz";
+        sha512 = "innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg==";
+      };
+    };
+    "@babel/plugin-syntax-json-strings-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-json-strings";
+      packageName = "@babel/plugin-syntax-json-strings";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz";
+        sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
+      };
+    };
+    "@babel/plugin-syntax-jsx-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-jsx";
+      packageName = "@babel/plugin-syntax-jsx";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz";
+        sha512 = "WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==";
+      };
+    };
+    "@babel/plugin-syntax-object-rest-spread-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-object-rest-spread";
+      packageName = "@babel/plugin-syntax-object-rest-spread";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
+        sha512 = "XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==";
+      };
+    };
+    "@babel/plugin-syntax-optional-catch-binding-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-optional-catch-binding";
+      packageName = "@babel/plugin-syntax-optional-catch-binding";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz";
+        sha512 = "6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==";
+      };
+    };
+    "@babel/plugin-transform-arrow-functions-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-arrow-functions";
+      packageName = "@babel/plugin-transform-arrow-functions";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz";
+        sha512 = "0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==";
+      };
+    };
+    "@babel/plugin-transform-async-to-generator-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-async-to-generator";
+      packageName = "@babel/plugin-transform-async-to-generator";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz";
+        sha512 = "imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==";
+      };
+    };
+    "@babel/plugin-transform-block-scoped-functions-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-block-scoped-functions";
+      packageName = "@babel/plugin-transform-block-scoped-functions";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz";
+        sha512 = "vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==";
+      };
+    };
+    "@babel/plugin-transform-block-scoping-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-block-scoping";
+      packageName = "@babel/plugin-transform-block-scoping";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz";
+        sha512 = "pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==";
+      };
+    };
+    "@babel/plugin-transform-classes-7.9.5" = {
+      name = "_at_babel_slash_plugin-transform-classes";
+      packageName = "@babel/plugin-transform-classes";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz";
+        sha512 = "x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==";
+      };
+    };
+    "@babel/plugin-transform-computed-properties-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-computed-properties";
+      packageName = "@babel/plugin-transform-computed-properties";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz";
+        sha512 = "O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==";
+      };
+    };
+    "@babel/plugin-transform-destructuring-7.9.5" = {
+      name = "_at_babel_slash_plugin-transform-destructuring";
+      packageName = "@babel/plugin-transform-destructuring";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz";
+        sha512 = "j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==";
+      };
+    };
+    "@babel/plugin-transform-dotall-regex-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-dotall-regex";
+      packageName = "@babel/plugin-transform-dotall-regex";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz";
+        sha512 = "kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==";
+      };
+    };
+    "@babel/plugin-transform-duplicate-keys-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-duplicate-keys";
+      packageName = "@babel/plugin-transform-duplicate-keys";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz";
+        sha512 = "s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==";
+      };
+    };
+    "@babel/plugin-transform-exponentiation-operator-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-exponentiation-operator";
+      packageName = "@babel/plugin-transform-exponentiation-operator";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz";
+        sha512 = "zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==";
+      };
+    };
+    "@babel/plugin-transform-flow-strip-types-7.3.4" = {
+      name = "_at_babel_slash_plugin-transform-flow-strip-types";
+      packageName = "@babel/plugin-transform-flow-strip-types";
+      version = "7.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.3.4.tgz";
+        sha512 = "PmQC9R7DwpBFA+7ATKMyzViz3zCaMNouzZMPZN2K5PnbBbtL3AXFYTkDk+Hey5crQq2A90UG5Uthz0mel+XZrA==";
+      };
+    };
+    "@babel/plugin-transform-for-of-7.9.0" = {
+      name = "_at_babel_slash_plugin-transform-for-of";
+      packageName = "@babel/plugin-transform-for-of";
+      version = "7.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz";
+        sha512 = "lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==";
+      };
+    };
+    "@babel/plugin-transform-function-name-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-function-name";
+      packageName = "@babel/plugin-transform-function-name";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz";
+        sha512 = "rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==";
+      };
+    };
+    "@babel/plugin-transform-literals-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-literals";
+      packageName = "@babel/plugin-transform-literals";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz";
+        sha512 = "3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==";
+      };
+    };
+    "@babel/plugin-transform-modules-amd-7.9.0" = {
+      name = "_at_babel_slash_plugin-transform-modules-amd";
+      packageName = "@babel/plugin-transform-modules-amd";
+      version = "7.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz";
+        sha512 = "vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==";
+      };
+    };
+    "@babel/plugin-transform-modules-commonjs-7.2.0" = {
+      name = "_at_babel_slash_plugin-transform-modules-commonjs";
+      packageName = "@babel/plugin-transform-modules-commonjs";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz";
+        sha512 = "V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==";
+      };
+    };
+    "@babel/plugin-transform-modules-systemjs-7.9.0" = {
+      name = "_at_babel_slash_plugin-transform-modules-systemjs";
+      packageName = "@babel/plugin-transform-modules-systemjs";
+      version = "7.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz";
+        sha512 = "FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==";
+      };
+    };
+    "@babel/plugin-transform-modules-umd-7.9.0" = {
+      name = "_at_babel_slash_plugin-transform-modules-umd";
+      packageName = "@babel/plugin-transform-modules-umd";
+      version = "7.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz";
+        sha512 = "uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==";
+      };
+    };
+    "@babel/plugin-transform-named-capturing-groups-regex-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
+      packageName = "@babel/plugin-transform-named-capturing-groups-regex";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz";
+        sha512 = "f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==";
+      };
+    };
+    "@babel/plugin-transform-new-target-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-new-target";
+      packageName = "@babel/plugin-transform-new-target";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz";
+        sha512 = "QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==";
+      };
+    };
+    "@babel/plugin-transform-object-super-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-object-super";
+      packageName = "@babel/plugin-transform-object-super";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz";
+        sha512 = "57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==";
+      };
+    };
+    "@babel/plugin-transform-parameters-7.9.5" = {
+      name = "_at_babel_slash_plugin-transform-parameters";
+      packageName = "@babel/plugin-transform-parameters";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz";
+        sha512 = "0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==";
+      };
+    };
+    "@babel/plugin-transform-react-jsx-7.3.0" = {
+      name = "_at_babel_slash_plugin-transform-react-jsx";
+      packageName = "@babel/plugin-transform-react-jsx";
+      version = "7.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz";
+        sha512 = "a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==";
+      };
+    };
+    "@babel/plugin-transform-regenerator-7.8.7" = {
+      name = "_at_babel_slash_plugin-transform-regenerator";
+      packageName = "@babel/plugin-transform-regenerator";
+      version = "7.8.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz";
+        sha512 = "TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==";
+      };
+    };
+    "@babel/plugin-transform-shorthand-properties-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-shorthand-properties";
+      packageName = "@babel/plugin-transform-shorthand-properties";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz";
+        sha512 = "I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==";
+      };
+    };
+    "@babel/plugin-transform-spread-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-spread";
+      packageName = "@babel/plugin-transform-spread";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz";
+        sha512 = "CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==";
+      };
+    };
+    "@babel/plugin-transform-sticky-regex-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-sticky-regex";
+      packageName = "@babel/plugin-transform-sticky-regex";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz";
+        sha512 = "9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==";
+      };
+    };
+    "@babel/plugin-transform-template-literals-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-template-literals";
+      packageName = "@babel/plugin-transform-template-literals";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz";
+        sha512 = "820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==";
+      };
+    };
+    "@babel/plugin-transform-typeof-symbol-7.8.4" = {
+      name = "_at_babel_slash_plugin-transform-typeof-symbol";
+      packageName = "@babel/plugin-transform-typeof-symbol";
+      version = "7.8.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz";
+        sha512 = "2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==";
+      };
+    };
+    "@babel/plugin-transform-unicode-regex-7.8.3" = {
+      name = "_at_babel_slash_plugin-transform-unicode-regex";
+      packageName = "@babel/plugin-transform-unicode-regex";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz";
+        sha512 = "+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==";
+      };
+    };
+    "@babel/preset-env-7.3.4" = {
+      name = "_at_babel_slash_preset-env";
+      packageName = "@babel/preset-env";
+      version = "7.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz";
+        sha512 = "2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==";
+      };
+    };
+    "@babel/runtime-7.3.4" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz";
+        sha512 = "IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==";
+      };
+    };
+    "@babel/runtime-7.9.2" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz";
+        sha512 = "NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==";
+      };
+    };
+    "@babel/template-7.2.2" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz";
+        sha512 = "zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==";
+      };
+    };
+    "@babel/template-7.8.6" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.8.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz";
+        sha512 = "zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==";
+      };
+    };
+    "@babel/traverse-7.3.4" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz";
+        sha512 = "TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==";
+      };
+    };
+    "@babel/traverse-7.9.5" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz";
+        sha512 = "c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==";
+      };
+    };
+    "@babel/types-7.3.4" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz";
+        sha512 = "WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==";
+      };
+    };
+    "@babel/types-7.9.5" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz";
+        sha512 = "XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==";
+      };
+    };
+    "@iarna/toml-2.2.5" = {
+      name = "_at_iarna_slash_toml";
+      packageName = "@iarna/toml";
+      version = "2.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz";
+        sha512 = "trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==";
+      };
+    };
+    "@mrmlnc/readdir-enhanced-2.2.1" = {
+      name = "_at_mrmlnc_slash_readdir-enhanced";
+      packageName = "@mrmlnc/readdir-enhanced";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz";
+        sha512 = "bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==";
+      };
+    };
+    "@nodelib/fs.stat-1.1.3" = {
+      name = "_at_nodelib_slash_fs.stat";
+      packageName = "@nodelib/fs.stat";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz";
+        sha512 = "shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==";
+      };
+    };
+    "@parcel/fs-1.11.0" = {
+      name = "_at_parcel_slash_fs";
+      packageName = "@parcel/fs";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@parcel/fs/-/fs-1.11.0.tgz";
+        sha512 = "86RyEqULbbVoeo8OLcv+LQ1Vq2PKBAvWTU9fCgALxuCTbbs5Ppcvll4Vr+Ko1AnmMzja/k++SzNAwJfeQXVlpA==";
+      };
+    };
+    "@parcel/logger-1.11.1" = {
+      name = "_at_parcel_slash_logger";
+      packageName = "@parcel/logger";
+      version = "1.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@parcel/logger/-/logger-1.11.1.tgz";
+        sha512 = "9NF3M6UVeP2udOBDILuoEHd8VrF4vQqoWHEafymO1pfSoOMfxrSJZw1MfyAAIUN/IFp9qjcpDCUbDZB+ioVevA==";
+      };
+    };
+    "@parcel/utils-1.11.0" = {
+      name = "_at_parcel_slash_utils";
+      packageName = "@parcel/utils";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@parcel/utils/-/utils-1.11.0.tgz";
+        sha512 = "cA3p4jTlaMeOtAKR/6AadanOPvKeg8VwgnHhOyfi0yClD0TZS/hi9xu12w4EzA/8NtHu0g6o4RDfcNjqN8l1AQ==";
+      };
+    };
+    "@parcel/watcher-1.12.1" = {
+      name = "_at_parcel_slash_watcher";
+      packageName = "@parcel/watcher";
+      version = "1.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@parcel/watcher/-/watcher-1.12.1.tgz";
+        sha512 = "od+uCtCxC/KoNQAIE1vWx1YTyKYY+7CTrxBJPRh3cDWw/C0tCtlBMVlrbplscGoEpt6B27KhJDCv82PBxOERNA==";
+      };
+    };
+    "@parcel/workers-1.11.0" = {
+      name = "_at_parcel_slash_workers";
+      packageName = "@parcel/workers";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@parcel/workers/-/workers-1.11.0.tgz";
+        sha512 = "USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==";
+      };
+    };
+    "@types/q-1.5.2" = {
+      name = "_at_types_slash_q";
+      packageName = "@types/q";
+      version = "1.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz";
+        sha512 = "ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==";
+      };
+    };
+    "abab-2.0.3" = {
+      name = "abab";
+      packageName = "abab";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz";
+        sha512 = "tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==";
+      };
+    };
+    "abbrev-1.1.1" = {
+      name = "abbrev";
+      packageName = "abbrev";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
+        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+      };
+    };
+    "acorn-6.4.1" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "6.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz";
+        sha512 = "ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==";
+      };
+    };
+    "acorn-7.1.1" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz";
+        sha512 = "add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==";
+      };
+    };
+    "acorn-globals-4.3.4" = {
+      name = "acorn-globals";
+      packageName = "acorn-globals";
+      version = "4.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz";
+        sha512 = "clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==";
+      };
+    };
+    "acorn-walk-6.2.0" = {
+      name = "acorn-walk";
+      packageName = "acorn-walk";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz";
+        sha512 = "7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==";
+      };
+    };
+    "ajv-6.12.2" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz";
+        sha512 = "k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==";
+      };
+    };
+    "alphanum-sort-1.0.2" = {
+      name = "alphanum-sort";
+      packageName = "alphanum-sort";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz";
+        sha1 = "97a1119649b211ad33691d9f9f486a8ec9fbe0a3";
+      };
+    };
+    "ansi-regex-2.1.1" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    };
+    "ansi-regex-3.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz";
+        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+      };
+    };
+    "ansi-regex-4.1.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
+        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+      };
+    };
+    "ansi-styles-2.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
+        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+      };
+    };
+    "ansi-styles-3.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+      };
+    };
+    "ansi-to-html-0.6.14" = {
+      name = "ansi-to-html";
+      packageName = "ansi-to-html";
+      version = "0.6.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz";
+        sha512 = "7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA==";
+      };
+    };
+    "anymatch-2.0.0" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz";
+        sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==";
+      };
+    };
+    "argparse-1.0.10" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+      };
+    };
+    "arr-diff-4.0.0" = {
+      name = "arr-diff";
+      packageName = "arr-diff";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz";
+        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+      };
+    };
+    "arr-flatten-1.1.0" = {
+      name = "arr-flatten";
+      packageName = "arr-flatten";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz";
+        sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==";
+      };
+    };
+    "arr-union-3.1.0" = {
+      name = "arr-union";
+      packageName = "arr-union";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz";
+        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+      };
+    };
+    "array-equal-1.0.0" = {
+      name = "array-equal";
+      packageName = "array-equal";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz";
+        sha1 = "8c2a5ef2472fd9ea742b04c77a75093ba2757c93";
+      };
+    };
+    "array-unique-0.3.2" = {
+      name = "array-unique";
+      packageName = "array-unique";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz";
+        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+      };
+    };
+    "asn1-0.2.4" = {
+      name = "asn1";
+      packageName = "asn1";
+      version = "0.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
+        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+      };
+    };
+    "asn1.js-4.10.1" = {
+      name = "asn1.js";
+      packageName = "asn1.js";
+      version = "4.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz";
+        sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==";
+      };
+    };
+    "assert-1.5.0" = {
+      name = "assert";
+      packageName = "assert";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz";
+        sha512 = "EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==";
+      };
+    };
+    "assert-plus-1.0.0" = {
+      name = "assert-plus";
+      packageName = "assert-plus";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+      };
+    };
+    "assign-symbols-1.0.0" = {
+      name = "assign-symbols";
+      packageName = "assign-symbols";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz";
+        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+      };
+    };
+    "async-each-1.0.3" = {
+      name = "async-each";
+      packageName = "async-each";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz";
+        sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==";
+      };
+    };
+    "async-limiter-1.0.1" = {
+      name = "async-limiter";
+      packageName = "async-limiter";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
+        sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
+      };
+    };
+    "asynckit-0.4.0" = {
+      name = "asynckit";
+      packageName = "asynckit";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    };
+    "atob-2.1.2" = {
+      name = "atob";
+      packageName = "atob";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz";
+        sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
+      };
+    };
+    "aws-sign2-0.7.0" = {
+      name = "aws-sign2";
+      packageName = "aws-sign2";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+      };
+    };
+    "aws4-1.9.1" = {
+      name = "aws4";
+      packageName = "aws4";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
+        sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
+      };
+    };
+    "babel-plugin-dynamic-import-node-2.3.3" = {
+      name = "babel-plugin-dynamic-import-node";
+      packageName = "babel-plugin-dynamic-import-node";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz";
+        sha512 = "jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==";
+      };
+    };
+    "babel-runtime-6.26.0" = {
+      name = "babel-runtime";
+      packageName = "babel-runtime";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz";
+        sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
+      };
+    };
+    "babel-types-6.26.0" = {
+      name = "babel-types";
+      packageName = "babel-types";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz";
+        sha1 = "a3b073f94ab49eb6fa55cd65227a334380632497";
+      };
+    };
+    "babylon-walk-1.0.2" = {
+      name = "babylon-walk";
+      packageName = "babylon-walk";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babylon-walk/-/babylon-walk-1.0.2.tgz";
+        sha1 = "3b15a5ddbb482a78b4ce9c01c8ba181702d9d6ce";
+      };
+    };
+    "balanced-match-1.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    };
+    "base-0.11.2" = {
+      name = "base";
+      packageName = "base";
+      version = "0.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz";
+        sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==";
+      };
+    };
+    "base64-js-1.3.1" = {
+      name = "base64-js";
+      packageName = "base64-js";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz";
+        sha512 = "mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==";
+      };
+    };
+    "bcrypt-pbkdf-1.0.2" = {
+      name = "bcrypt-pbkdf";
+      packageName = "bcrypt-pbkdf";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+      };
+    };
+    "binary-extensions-1.13.1" = {
+      name = "binary-extensions";
+      packageName = "binary-extensions";
+      version = "1.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz";
+        sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
+      };
+    };
+    "bindings-1.5.0" = {
+      name = "bindings";
+      packageName = "bindings";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
+        sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
+      };
+    };
+    "bn.js-4.11.8" = {
+      name = "bn.js";
+      packageName = "bn.js";
+      version = "4.11.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz";
+        sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==";
+      };
+    };
+    "boolbase-1.0.0" = {
+      name = "boolbase";
+      packageName = "boolbase";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz";
+        sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
+      };
+    };
+    "brace-expansion-1.1.11" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+      };
+    };
+    "braces-2.3.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz";
+        sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==";
+      };
+    };
+    "brfs-1.6.1" = {
+      name = "brfs";
+      packageName = "brfs";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz";
+        sha512 = "OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==";
+      };
+    };
+    "brorand-1.1.0" = {
+      name = "brorand";
+      packageName = "brorand";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz";
+        sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+      };
+    };
+    "browser-process-hrtime-1.0.0" = {
+      name = "browser-process-hrtime";
+      packageName = "browser-process-hrtime";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz";
+        sha512 = "9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==";
+      };
+    };
+    "browserify-aes-1.2.0" = {
+      name = "browserify-aes";
+      packageName = "browserify-aes";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz";
+        sha512 = "+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==";
+      };
+    };
+    "browserify-cipher-1.0.1" = {
+      name = "browserify-cipher";
+      packageName = "browserify-cipher";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
+        sha512 = "sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==";
+      };
+    };
+    "browserify-des-1.0.2" = {
+      name = "browserify-des";
+      packageName = "browserify-des";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz";
+        sha512 = "BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==";
+      };
+    };
+    "browserify-rsa-4.0.1" = {
+      name = "browserify-rsa";
+      packageName = "browserify-rsa";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
+        sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+      };
+    };
+    "browserify-sign-4.0.4" = {
+      name = "browserify-sign";
+      packageName = "browserify-sign";
+      version = "4.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz";
+        sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+      };
+    };
+    "browserify-zlib-0.2.0" = {
+      name = "browserify-zlib";
+      packageName = "browserify-zlib";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
+        sha512 = "Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==";
+      };
+    };
+    "browserslist-4.12.0" = {
+      name = "browserslist";
+      packageName = "browserslist";
+      version = "4.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz";
+        sha512 = "UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==";
+      };
+    };
+    "buffer-4.9.2" = {
+      name = "buffer";
+      packageName = "buffer";
+      version = "4.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz";
+        sha512 = "xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==";
+      };
+    };
+    "buffer-equal-0.0.1" = {
+      name = "buffer-equal";
+      packageName = "buffer-equal";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz";
+        sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b";
+      };
+    };
+    "buffer-from-1.1.1" = {
+      name = "buffer-from";
+      packageName = "buffer-from";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
+        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
+      };
+    };
+    "buffer-xor-1.0.3" = {
+      name = "buffer-xor";
+      packageName = "buffer-xor";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz";
+        sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
+      };
+    };
+    "builtin-status-codes-3.0.0" = {
+      name = "builtin-status-codes";
+      packageName = "builtin-status-codes";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
+        sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
+      };
+    };
+    "cache-base-1.0.1" = {
+      name = "cache-base";
+      packageName = "cache-base";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz";
+        sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==";
+      };
+    };
+    "call-me-maybe-1.0.1" = {
+      name = "call-me-maybe";
+      packageName = "call-me-maybe";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
+        sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b";
+      };
+    };
+    "caller-callsite-2.0.0" = {
+      name = "caller-callsite";
+      packageName = "caller-callsite";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz";
+        sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
+      };
+    };
+    "caller-path-2.0.0" = {
+      name = "caller-path";
+      packageName = "caller-path";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz";
+        sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
+      };
+    };
+    "callsites-2.0.0" = {
+      name = "callsites";
+      packageName = "callsites";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz";
+        sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
+      };
+    };
+    "camelcase-5.3.1" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "5.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
+        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
+      };
+    };
+    "caniuse-api-3.0.0" = {
+      name = "caniuse-api";
+      packageName = "caniuse-api";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz";
+        sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
+      };
+    };
+    "caniuse-lite-1.0.30001048" = {
+      name = "caniuse-lite";
+      packageName = "caniuse-lite";
+      version = "1.0.30001048";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001048.tgz";
+        sha512 = "g1iSHKVxornw0K8LG9LLdf+Fxnv7T1Z+mMsf0/YYLclQX4Cd522Ap0Lrw6NFqHgezit78dtyWxzlV2Xfc7vgRg==";
+      };
+    };
+    "caseless-0.12.0" = {
+      name = "caseless";
+      packageName = "caseless";
+      version = "0.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
+        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+      };
+    };
+    "chalk-1.1.3" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
+        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+      };
+    };
+    "chalk-2.4.2" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+      };
+    };
+    "chokidar-2.1.8" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "2.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz";
+        sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
+      };
+    };
+    "cipher-base-1.0.4" = {
+      name = "cipher-base";
+      packageName = "cipher-base";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz";
+        sha512 = "Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==";
+      };
+    };
+    "class-utils-0.3.6" = {
+      name = "class-utils";
+      packageName = "class-utils";
+      version = "0.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz";
+        sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
+      };
+    };
+    "cli-cursor-2.1.0" = {
+      name = "cli-cursor";
+      packageName = "cli-cursor";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz";
+        sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+      };
+    };
+    "cli-spinners-1.3.1" = {
+      name = "cli-spinners";
+      packageName = "cli-spinners";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz";
+        sha512 = "1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==";
+      };
+    };
+    "cliui-5.0.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
+        sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
+      };
+    };
+    "clone-1.0.4" = {
+      name = "clone";
+      packageName = "clone";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz";
+        sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e";
+      };
+    };
+    "clone-2.1.2" = {
+      name = "clone";
+      packageName = "clone";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz";
+        sha1 = "1b7f4b9f591f1e8f83670401600345a02887435f";
+      };
+    };
+    "clones-1.2.0" = {
+      name = "clones";
+      packageName = "clones";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clones/-/clones-1.2.0.tgz";
+        sha512 = "FXDYw4TjR8wgPZYui2LeTqWh1BLpfQ8lB6upMtlpDF6WlOOxghmTTxWyngdKTgozqBgKnHbTVwTE+hOHqAykuQ==";
+      };
+    };
+    "coa-2.0.2" = {
+      name = "coa";
+      packageName = "coa";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz";
+        sha512 = "q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==";
+      };
+    };
+    "collection-visit-1.0.0" = {
+      name = "collection-visit";
+      packageName = "collection-visit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz";
+        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+      };
+    };
+    "color-3.1.2" = {
+      name = "color";
+      packageName = "color";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color/-/color-3.1.2.tgz";
+        sha512 = "vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==";
+      };
+    };
+    "color-convert-1.9.3" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "1.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+      };
+    };
+    "color-name-1.1.3" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    };
+    "color-string-1.5.3" = {
+      name = "color-string";
+      packageName = "color-string";
+      version = "1.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz";
+        sha512 = "dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==";
+      };
+    };
+    "combined-stream-1.0.8" = {
+      name = "combined-stream";
+      packageName = "combined-stream";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
+        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+      };
+    };
+    "command-exists-1.2.9" = {
+      name = "command-exists";
+      packageName = "command-exists";
+      version = "1.2.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz";
+        sha512 = "LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==";
+      };
+    };
+    "commander-2.20.3" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.20.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
+        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+      };
+    };
+    "component-emitter-1.3.0" = {
+      name = "component-emitter";
+      packageName = "component-emitter";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz";
+        sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "concat-stream-1.6.2" = {
+      name = "concat-stream";
+      packageName = "concat-stream";
+      version = "1.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
+      };
+    };
+    "config-chain-1.1.12" = {
+      name = "config-chain";
+      packageName = "config-chain";
+      version = "1.1.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz";
+        sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==";
+      };
+    };
+    "console-browserify-1.2.0" = {
+      name = "console-browserify";
+      packageName = "console-browserify";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz";
+        sha512 = "ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==";
+      };
+    };
+    "constants-browserify-1.0.0" = {
+      name = "constants-browserify";
+      packageName = "constants-browserify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz";
+        sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
+      };
+    };
+    "convert-source-map-1.7.0" = {
+      name = "convert-source-map";
+      packageName = "convert-source-map";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
+        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+      };
+    };
+    "copy-descriptor-0.1.1" = {
+      name = "copy-descriptor";
+      packageName = "copy-descriptor";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+      };
+    };
+    "core-js-2.6.11" = {
+      name = "core-js";
+      packageName = "core-js";
+      version = "2.6.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz";
+        sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==";
+      };
+    };
+    "core-util-is-1.0.2" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    };
+    "cosmiconfig-5.2.1" = {
+      name = "cosmiconfig";
+      packageName = "cosmiconfig";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
+        sha512 = "H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==";
+      };
+    };
+    "create-ecdh-4.0.3" = {
+      name = "create-ecdh";
+      packageName = "create-ecdh";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz";
+        sha512 = "GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==";
+      };
+    };
+    "create-hash-1.2.0" = {
+      name = "create-hash";
+      packageName = "create-hash";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz";
+        sha512 = "z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==";
+      };
+    };
+    "create-hmac-1.1.7" = {
+      name = "create-hmac";
+      packageName = "create-hmac";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz";
+        sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==";
+      };
+    };
+    "cross-spawn-6.0.5" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "6.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
+        sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
+      };
+    };
+    "crypto-browserify-3.12.0" = {
+      name = "crypto-browserify";
+      packageName = "crypto-browserify";
+      version = "3.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
+        sha512 = "fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==";
+      };
+    };
+    "css-color-names-0.0.4" = {
+      name = "css-color-names";
+      packageName = "css-color-names";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz";
+        sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0";
+      };
+    };
+    "css-declaration-sorter-4.0.1" = {
+      name = "css-declaration-sorter";
+      packageName = "css-declaration-sorter";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz";
+        sha512 = "BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==";
+      };
+    };
+    "css-modules-loader-core-1.1.0" = {
+      name = "css-modules-loader-core";
+      packageName = "css-modules-loader-core";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz";
+        sha1 = "5908668294a1becd261ae0a4ce21b0b551f21d16";
+      };
+    };
+    "css-select-2.1.0" = {
+      name = "css-select";
+      packageName = "css-select";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz";
+        sha512 = "Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==";
+      };
+    };
+    "css-select-base-adapter-0.1.1" = {
+      name = "css-select-base-adapter";
+      packageName = "css-select-base-adapter";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz";
+        sha512 = "jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==";
+      };
+    };
+    "css-selector-tokenizer-0.7.2" = {
+      name = "css-selector-tokenizer";
+      packageName = "css-selector-tokenizer";
+      version = "0.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz";
+        sha512 = "yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==";
+      };
+    };
+    "css-tree-1.0.0-alpha.37" = {
+      name = "css-tree";
+      packageName = "css-tree";
+      version = "1.0.0-alpha.37";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz";
+        sha512 = "DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==";
+      };
+    };
+    "css-tree-1.0.0-alpha.39" = {
+      name = "css-tree";
+      packageName = "css-tree";
+      version = "1.0.0-alpha.39";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz";
+        sha512 = "7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==";
+      };
+    };
+    "css-what-3.2.1" = {
+      name = "css-what";
+      packageName = "css-what";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz";
+        sha512 = "WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==";
+      };
+    };
+    "cssesc-3.0.0" = {
+      name = "cssesc";
+      packageName = "cssesc";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz";
+        sha512 = "/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==";
+      };
+    };
+    "cssnano-4.1.10" = {
+      name = "cssnano";
+      packageName = "cssnano";
+      version = "4.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz";
+        sha512 = "5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==";
+      };
+    };
+    "cssnano-preset-default-4.0.7" = {
+      name = "cssnano-preset-default";
+      packageName = "cssnano-preset-default";
+      version = "4.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz";
+        sha512 = "x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==";
+      };
+    };
+    "cssnano-util-get-arguments-4.0.0" = {
+      name = "cssnano-util-get-arguments";
+      packageName = "cssnano-util-get-arguments";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz";
+        sha1 = "ed3a08299f21d75741b20f3b81f194ed49cc150f";
+      };
+    };
+    "cssnano-util-get-match-4.0.0" = {
+      name = "cssnano-util-get-match";
+      packageName = "cssnano-util-get-match";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz";
+        sha1 = "c0e4ca07f5386bb17ec5e52250b4f5961365156d";
+      };
+    };
+    "cssnano-util-raw-cache-4.0.1" = {
+      name = "cssnano-util-raw-cache";
+      packageName = "cssnano-util-raw-cache";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz";
+        sha512 = "qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==";
+      };
+    };
+    "cssnano-util-same-parent-4.0.1" = {
+      name = "cssnano-util-same-parent";
+      packageName = "cssnano-util-same-parent";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz";
+        sha512 = "WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==";
+      };
+    };
+    "csso-4.0.3" = {
+      name = "csso";
+      packageName = "csso";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz";
+        sha512 = "NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==";
+      };
+    };
+    "cssom-0.3.8" = {
+      name = "cssom";
+      packageName = "cssom";
+      version = "0.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz";
+        sha512 = "b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==";
+      };
+    };
+    "cssstyle-1.4.0" = {
+      name = "cssstyle";
+      packageName = "cssstyle";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz";
+        sha512 = "GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==";
+      };
+    };
+    "dashdash-1.14.1" = {
+      name = "dashdash";
+      packageName = "dashdash";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
+        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+      };
+    };
+    "data-urls-1.1.0" = {
+      name = "data-urls";
+      packageName = "data-urls";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz";
+        sha512 = "YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==";
+      };
+    };
+    "deasync-0.1.19" = {
+      name = "deasync";
+      packageName = "deasync";
+      version = "0.1.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deasync/-/deasync-0.1.19.tgz";
+        sha512 = "oh3MRktfnPlLysCPpBpKZZzb4cUC/p0aA3SyRGp15lN30juJBTo/CiD0d4fR+f1kBtUQoJj1NE9RPNWQ7BQ9Mg==";
+      };
+    };
+    "debug-2.6.9" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+      };
+    };
+    "debug-4.1.1" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
+        sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
+      };
+    };
+    "decamelize-1.2.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    };
+    "decode-uri-component-0.2.0" = {
+      name = "decode-uri-component";
+      packageName = "decode-uri-component";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+      };
+    };
+    "deep-is-0.1.3" = {
+      name = "deep-is";
+      packageName = "deep-is";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+      };
+    };
+    "defaults-1.0.3" = {
+      name = "defaults";
+      packageName = "defaults";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz";
+        sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d";
+      };
+    };
+    "define-properties-1.1.3" = {
+      name = "define-properties";
+      packageName = "define-properties";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
+        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+      };
+    };
+    "define-property-0.2.5" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz";
+        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+      };
+    };
+    "define-property-1.0.0" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz";
+        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+      };
+    };
+    "define-property-2.0.2" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz";
+        sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==";
+      };
+    };
+    "delayed-stream-1.0.0" = {
+      name = "delayed-stream";
+      packageName = "delayed-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    };
+    "depd-1.1.2" = {
+      name = "depd";
+      packageName = "depd";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
+        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+      };
+    };
+    "des.js-1.0.1" = {
+      name = "des.js";
+      packageName = "des.js";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz";
+        sha512 = "Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==";
+      };
+    };
+    "destroy-1.0.4" = {
+      name = "destroy";
+      packageName = "destroy";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
+        sha1 = "978857442c44749e4206613e37946205826abd80";
+      };
+    };
+    "diffie-hellman-5.0.3" = {
+      name = "diffie-hellman";
+      packageName = "diffie-hellman";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
+        sha512 = "kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==";
+      };
+    };
+    "dom-serializer-0.2.2" = {
+      name = "dom-serializer";
+      packageName = "dom-serializer";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz";
+        sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==";
+      };
+    };
+    "domain-browser-1.2.0" = {
+      name = "domain-browser";
+      packageName = "domain-browser";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz";
+        sha512 = "jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==";
+      };
+    };
+    "domelementtype-1.3.1" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz";
+        sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
+      };
+    };
+    "domelementtype-2.0.1" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz";
+        sha512 = "5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==";
+      };
+    };
+    "domexception-1.0.1" = {
+      name = "domexception";
+      packageName = "domexception";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz";
+        sha512 = "raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==";
+      };
+    };
+    "domhandler-2.4.2" = {
+      name = "domhandler";
+      packageName = "domhandler";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz";
+        sha512 = "JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==";
+      };
+    };
+    "domutils-1.7.0" = {
+      name = "domutils";
+      packageName = "domutils";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz";
+        sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
+      };
+    };
+    "dot-prop-5.2.0" = {
+      name = "dot-prop";
+      packageName = "dot-prop";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz";
+        sha512 = "uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==";
+      };
+    };
+    "dotenv-5.0.1" = {
+      name = "dotenv";
+      packageName = "dotenv";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz";
+        sha512 = "4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==";
+      };
+    };
+    "dotenv-expand-4.2.0" = {
+      name = "dotenv-expand";
+      packageName = "dotenv-expand";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz";
+        sha1 = "def1f1ca5d6059d24a766e587942c21106ce1275";
+      };
+    };
+    "duplexer2-0.1.4" = {
+      name = "duplexer2";
+      packageName = "duplexer2";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz";
+        sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1";
+      };
+    };
+    "ecc-jsbn-0.1.2" = {
+      name = "ecc-jsbn";
+      packageName = "ecc-jsbn";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+      };
+    };
+    "editorconfig-0.15.3" = {
+      name = "editorconfig";
+      packageName = "editorconfig";
+      version = "0.15.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz";
+        sha512 = "M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==";
+      };
+    };
+    "ee-first-1.1.1" = {
+      name = "ee-first";
+      packageName = "ee-first";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+      };
+    };
+    "electron-to-chromium-1.3.418" = {
+      name = "electron-to-chromium";
+      packageName = "electron-to-chromium";
+      version = "1.3.418";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.418.tgz";
+        sha512 = "i2QrQtHes5fK/F9QGG5XacM5WKEuR322fxTYF9e8O9Gu0mc0WmjjwGpV8c7Htso6Zf2Di18lc3SIPxmMeRFBug==";
+      };
+    };
+    "elliptic-6.5.2" = {
+      name = "elliptic";
+      packageName = "elliptic";
+      version = "6.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz";
+        sha512 = "f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==";
+      };
+    };
+    "elm-hot-1.1.1" = {
+      name = "elm-hot";
+      packageName = "elm-hot";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/elm-hot/-/elm-hot-1.1.1.tgz";
+        sha512 = "ZHjoHd2Ev6riNXNQirj3J+GKKXXwedAUikfFBYzlVL/+3CdGs96cpZ7nhAk4c5l//Qa9ymltrqX36mOlr0pPFA==";
+      };
+    };
+    "emoji-regex-7.0.3" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+      };
+    };
+    "encodeurl-1.0.2" = {
+      name = "encodeurl";
+      packageName = "encodeurl";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
+        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+      };
+    };
+    "entities-1.1.2" = {
+      name = "entities";
+      packageName = "entities";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz";
+        sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==";
+      };
+    };
+    "entities-2.0.0" = {
+      name = "entities";
+      packageName = "entities";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz";
+        sha512 = "D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==";
+      };
+    };
+    "error-ex-1.3.2" = {
+      name = "error-ex";
+      packageName = "error-ex";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
+        sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
+      };
+    };
+    "es-abstract-1.17.5" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.17.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz";
+        sha512 = "BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==";
+      };
+    };
+    "es-to-primitive-1.2.1" = {
+      name = "es-to-primitive";
+      packageName = "es-to-primitive";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
+      };
+    };
+    "escape-html-1.0.3" = {
+      name = "escape-html";
+      packageName = "escape-html";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    };
+    "escape-string-regexp-1.0.5" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    };
+    "escodegen-1.14.1" = {
+      name = "escodegen";
+      packageName = "escodegen";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz";
+        sha512 = "Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==";
+      };
+    };
+    "escodegen-1.9.1" = {
+      name = "escodegen";
+      packageName = "escodegen";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz";
+        sha512 = "6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==";
+      };
+    };
+    "esprima-3.1.3" = {
+      name = "esprima";
+      packageName = "esprima";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz";
+        sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633";
+      };
+    };
+    "esprima-4.0.1" = {
+      name = "esprima";
+      packageName = "esprima";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+      };
+    };
+    "estraverse-4.3.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
+        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
+      };
+    };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+      };
+    };
+    "etag-1.8.1" = {
+      name = "etag";
+      packageName = "etag";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+      };
+    };
+    "events-3.1.0" = {
+      name = "events";
+      packageName = "events";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/events/-/events-3.1.0.tgz";
+        sha512 = "Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==";
+      };
+    };
+    "evp_bytestokey-1.0.3" = {
+      name = "evp_bytestokey";
+      packageName = "evp_bytestokey";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
+        sha512 = "/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==";
+      };
+    };
+    "expand-brackets-2.1.4" = {
+      name = "expand-brackets";
+      packageName = "expand-brackets";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz";
+        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+      };
+    };
+    "extend-3.0.2" = {
+      name = "extend";
+      packageName = "extend";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
+        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+      };
+    };
+    "extend-shallow-2.0.1" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
+        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+      };
+    };
+    "extend-shallow-3.0.2" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz";
+        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+      };
+    };
+    "extglob-2.0.4" = {
+      name = "extglob";
+      packageName = "extglob";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz";
+        sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
+      };
+    };
+    "extsprintf-1.3.0" = {
+      name = "extsprintf";
+      packageName = "extsprintf";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
+        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+      };
+    };
+    "falafel-2.2.4" = {
+      name = "falafel";
+      packageName = "falafel";
+      version = "2.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz";
+        sha512 = "0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==";
+      };
+    };
+    "fast-deep-equal-3.1.1" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
+        sha512 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==";
+      };
+    };
+    "fast-glob-2.2.7" = {
+      name = "fast-glob";
+      packageName = "fast-glob";
+      version = "2.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz";
+        sha512 = "g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==";
+      };
+    };
+    "fast-json-stable-stringify-2.1.0" = {
+      name = "fast-json-stable-stringify";
+      packageName = "fast-json-stable-stringify";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+      };
+    };
+    "fast-levenshtein-2.0.6" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+      };
+    };
+    "fastparse-1.1.2" = {
+      name = "fastparse";
+      packageName = "fastparse";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz";
+        sha512 = "483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==";
+      };
+    };
+    "file-uri-to-path-1.0.0" = {
+      name = "file-uri-to-path";
+      packageName = "file-uri-to-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+        sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
+      };
+    };
+    "filesize-3.6.1" = {
+      name = "filesize";
+      packageName = "filesize";
+      version = "3.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz";
+        sha512 = "7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==";
+      };
+    };
+    "fill-range-4.0.0" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz";
+        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+      };
+    };
+    "find-elm-dependencies-2.0.2" = {
+      name = "find-elm-dependencies";
+      packageName = "find-elm-dependencies";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-elm-dependencies/-/find-elm-dependencies-2.0.2.tgz";
+        sha512 = "nM5UCbccD1G8CGK2GsM7ykG3ksOAl9E+34jiDfl07CAl2OPnLpBVWY2hlxEmIkSBfdJjSopEowWHrO0cI8RhxQ==";
+      };
+    };
+    "find-up-2.1.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz";
+        sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+      };
+    };
+    "find-up-3.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
+        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
+      };
+    };
+    "firstline-1.2.0" = {
+      name = "firstline";
+      packageName = "firstline";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/firstline/-/firstline-1.2.0.tgz";
+        sha1 = "c9f4886e7f7fbf0afc12d71941dce06b192aea05";
+      };
+    };
+    "for-in-1.0.2" = {
+      name = "for-in";
+      packageName = "for-in";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz";
+        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+      };
+    };
+    "foreach-2.0.5" = {
+      name = "foreach";
+      packageName = "foreach";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz";
+        sha1 = "0bee005018aeb260d0a3af3ae658dd0136ec1b99";
+      };
+    };
+    "forever-agent-0.6.1" = {
+      name = "forever-agent";
+      packageName = "forever-agent";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+      };
+    };
+    "form-data-2.3.3" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
+        sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
+      };
+    };
+    "fragment-cache-0.2.1" = {
+      name = "fragment-cache";
+      packageName = "fragment-cache";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz";
+        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+      };
+    };
+    "fresh-0.5.2" = {
+      name = "fresh";
+      packageName = "fresh";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
+        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+      };
+    };
+    "fs.realpath-1.0.0" = {
+      name = "fs.realpath";
+      packageName = "fs.realpath";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    };
+    "fsevents-1.2.12" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "1.2.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz";
+        sha512 = "Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==";
+      };
+    };
+    "function-bind-1.1.1" = {
+      name = "function-bind";
+      packageName = "function-bind";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+      };
+    };
+    "get-caller-file-2.0.5" = {
+      name = "get-caller-file";
+      packageName = "get-caller-file";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
+      };
+    };
+    "get-port-3.2.0" = {
+      name = "get-port";
+      packageName = "get-port";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz";
+        sha1 = "dd7ce7de187c06c8bf353796ac71e099f0980ebc";
+      };
+    };
+    "get-value-2.0.6" = {
+      name = "get-value";
+      packageName = "get-value";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz";
+        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+      };
+    };
+    "getpass-0.1.7" = {
+      name = "getpass";
+      packageName = "getpass";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
+        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+      };
+    };
+    "glob-7.1.4" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz";
+        sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==";
+      };
+    };
+    "glob-parent-3.1.0" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz";
+        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+      };
+    };
+    "glob-to-regexp-0.3.0" = {
+      name = "glob-to-regexp";
+      packageName = "glob-to-regexp";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz";
+        sha1 = "8c5a1494d2066c570cc3bfe4496175acc4d502ab";
+      };
+    };
+    "globals-11.12.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "11.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz";
+        sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
+      };
+    };
+    "graceful-fs-4.2.3" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
+        sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
+      };
+    };
+    "grapheme-breaker-0.3.2" = {
+      name = "grapheme-breaker";
+      packageName = "grapheme-breaker";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz";
+        sha1 = "5b9e6b78c3832452d2ba2bb1cb830f96276410ac";
+      };
+    };
+    "har-schema-2.0.0" = {
+      name = "har-schema";
+      packageName = "har-schema";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
+        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+      };
+    };
+    "har-validator-5.1.3" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "5.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
+        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
+      };
+    };
+    "has-1.0.3" = {
+      name = "has";
+      packageName = "has";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
+        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+      };
+    };
+    "has-ansi-2.0.0" = {
+      name = "has-ansi";
+      packageName = "has-ansi";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+      };
+    };
+    "has-flag-1.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz";
+        sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa";
+      };
+    };
+    "has-flag-3.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    };
+    "has-symbols-1.0.1" = {
+      name = "has-symbols";
+      packageName = "has-symbols";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
+        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
+      };
+    };
+    "has-value-0.3.1" = {
+      name = "has-value";
+      packageName = "has-value";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz";
+        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+      };
+    };
+    "has-value-1.0.0" = {
+      name = "has-value";
+      packageName = "has-value";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz";
+        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+      };
+    };
+    "has-values-0.1.4" = {
+      name = "has-values";
+      packageName = "has-values";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz";
+        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+      };
+    };
+    "has-values-1.0.0" = {
+      name = "has-values";
+      packageName = "has-values";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz";
+        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+      };
+    };
+    "hash-base-3.0.4" = {
+      name = "hash-base";
+      packageName = "hash-base";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz";
+        sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+      };
+    };
+    "hash.js-1.1.7" = {
+      name = "hash.js";
+      packageName = "hash.js";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz";
+        sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==";
+      };
+    };
+    "hex-color-regex-1.1.0" = {
+      name = "hex-color-regex";
+      packageName = "hex-color-regex";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz";
+        sha512 = "l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==";
+      };
+    };
+    "hmac-drbg-1.0.1" = {
+      name = "hmac-drbg";
+      packageName = "hmac-drbg";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
+        sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
+      };
+    };
+    "hsl-regex-1.0.0" = {
+      name = "hsl-regex";
+      packageName = "hsl-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz";
+        sha1 = "d49330c789ed819e276a4c0d272dffa30b18fe6e";
+      };
+    };
+    "hsla-regex-1.0.0" = {
+      name = "hsla-regex";
+      packageName = "hsla-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz";
+        sha1 = "c1ce7a3168c8c6614033a4b5f7877f3b225f9c38";
+      };
+    };
+    "html-comment-regex-1.1.2" = {
+      name = "html-comment-regex";
+      packageName = "html-comment-regex";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
+        sha512 = "P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==";
+      };
+    };
+    "html-encoding-sniffer-1.0.2" = {
+      name = "html-encoding-sniffer";
+      packageName = "html-encoding-sniffer";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz";
+        sha512 = "71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==";
+      };
+    };
+    "html-tags-1.2.0" = {
+      name = "html-tags";
+      packageName = "html-tags";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-tags/-/html-tags-1.2.0.tgz";
+        sha1 = "c78de65b5663aa597989dd2b7ab49200d7e4db98";
+      };
+    };
+    "htmlnano-0.2.5" = {
+      name = "htmlnano";
+      packageName = "htmlnano";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlnano/-/htmlnano-0.2.5.tgz";
+        sha512 = "X1iPSwXG/iF9bVs+/obt2n6F64uH0ETkA8zp7qFDmLW9/+A6ueHGeb/+qD67T21qUY22owZPMdawljN50ajkqA==";
+      };
+    };
+    "htmlparser2-3.10.1" = {
+      name = "htmlparser2";
+      packageName = "htmlparser2";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz";
+        sha512 = "IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==";
+      };
+    };
+    "http-errors-1.7.3" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz";
+        sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
+      };
+    };
+    "http-signature-1.2.0" = {
+      name = "http-signature";
+      packageName = "http-signature";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
+        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+      };
+    };
+    "https-browserify-1.0.0" = {
+      name = "https-browserify";
+      packageName = "https-browserify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz";
+        sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
+      };
+    };
+    "iconv-lite-0.4.24" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.4.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+      };
+    };
+    "icss-replace-symbols-1.1.0" = {
+      name = "icss-replace-symbols";
+      packageName = "icss-replace-symbols";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz";
+        sha1 = "06ea6f83679a7749e386cfe1fe812ae5db223ded";
+      };
+    };
+    "ieee754-1.1.13" = {
+      name = "ieee754";
+      packageName = "ieee754";
+      version = "1.1.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz";
+        sha512 = "4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==";
+      };
+    };
+    "import-fresh-2.0.0" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz";
+        sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
+      };
+    };
+    "indexes-of-1.0.1" = {
+      name = "indexes-of";
+      packageName = "indexes-of";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz";
+        sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607";
+      };
+    };
+    "inflight-1.0.6" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    };
+    "inherits-2.0.1" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
+        sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+      };
+    };
+    "inherits-2.0.3" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+      };
+    };
+    "inherits-2.0.4" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+      };
+    };
+    "ini-1.3.5" = {
+      name = "ini";
+      packageName = "ini";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
+        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+      };
+    };
+    "invariant-2.2.4" = {
+      name = "invariant";
+      packageName = "invariant";
+      version = "2.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz";
+        sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==";
+      };
+    };
+    "is-absolute-url-2.1.0" = {
+      name = "is-absolute-url";
+      packageName = "is-absolute-url";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz";
+        sha1 = "50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6";
+      };
+    };
+    "is-absolute-url-3.0.3" = {
+      name = "is-absolute-url";
+      packageName = "is-absolute-url";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz";
+        sha512 = "opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==";
+      };
+    };
+    "is-accessor-descriptor-0.1.6" = {
+      name = "is-accessor-descriptor";
+      packageName = "is-accessor-descriptor";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+      };
+    };
+    "is-accessor-descriptor-1.0.0" = {
+      name = "is-accessor-descriptor";
+      packageName = "is-accessor-descriptor";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+        sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==";
+      };
+    };
+    "is-arrayish-0.2.1" = {
+      name = "is-arrayish";
+      packageName = "is-arrayish";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz";
+        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+      };
+    };
+    "is-arrayish-0.3.2" = {
+      name = "is-arrayish";
+      packageName = "is-arrayish";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz";
+        sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
+      };
+    };
+    "is-binary-path-1.0.1" = {
+      name = "is-binary-path";
+      packageName = "is-binary-path";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz";
+        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+      };
+    };
+    "is-buffer-1.1.6" = {
+      name = "is-buffer";
+      packageName = "is-buffer";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
+        sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
+      };
+    };
+    "is-callable-1.1.5" = {
+      name = "is-callable";
+      packageName = "is-callable";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz";
+        sha512 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==";
+      };
+    };
+    "is-color-stop-1.1.0" = {
+      name = "is-color-stop";
+      packageName = "is-color-stop";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz";
+        sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345";
+      };
+    };
+    "is-data-descriptor-0.1.4" = {
+      name = "is-data-descriptor";
+      packageName = "is-data-descriptor";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+      };
+    };
+    "is-data-descriptor-1.0.0" = {
+      name = "is-data-descriptor";
+      packageName = "is-data-descriptor";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+        sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
+      };
+    };
+    "is-date-object-1.0.2" = {
+      name = "is-date-object";
+      packageName = "is-date-object";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
+        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
+      };
+    };
+    "is-descriptor-0.1.6" = {
+      name = "is-descriptor";
+      packageName = "is-descriptor";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz";
+        sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==";
+      };
+    };
+    "is-descriptor-1.0.2" = {
+      name = "is-descriptor";
+      packageName = "is-descriptor";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz";
+        sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
+      };
+    };
+    "is-directory-0.3.1" = {
+      name = "is-directory";
+      packageName = "is-directory";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz";
+        sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
+      };
+    };
+    "is-extendable-0.1.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
+        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+      };
+    };
+    "is-extendable-1.0.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz";
+        sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==";
+      };
+    };
+    "is-extglob-2.1.1" = {
+      name = "is-extglob";
+      packageName = "is-extglob";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    };
+    "is-fullwidth-code-point-2.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    };
+    "is-glob-3.1.0" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz";
+        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+      };
+    };
+    "is-glob-4.0.1" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
+        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+      };
+    };
+    "is-html-1.1.0" = {
+      name = "is-html";
+      packageName = "is-html";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-html/-/is-html-1.1.0.tgz";
+        sha1 = "e04f1c18d39485111396f9a0273eab51af218464";
+      };
+    };
+    "is-number-3.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz";
+        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+      };
+    };
+    "is-obj-2.0.0" = {
+      name = "is-obj";
+      packageName = "is-obj";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz";
+        sha512 = "drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==";
+      };
+    };
+    "is-plain-object-2.0.4" = {
+      name = "is-plain-object";
+      packageName = "is-plain-object";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz";
+        sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
+      };
+    };
+    "is-regex-1.0.5" = {
+      name = "is-regex";
+      packageName = "is-regex";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz";
+        sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
+      };
+    };
+    "is-resolvable-1.1.0" = {
+      name = "is-resolvable";
+      packageName = "is-resolvable";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz";
+        sha512 = "qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==";
+      };
+    };
+    "is-svg-3.0.0" = {
+      name = "is-svg";
+      packageName = "is-svg";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz";
+        sha512 = "gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==";
+      };
+    };
+    "is-symbol-1.0.3" = {
+      name = "is-symbol";
+      packageName = "is-symbol";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
+        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
+      };
+    };
+    "is-typedarray-1.0.0" = {
+      name = "is-typedarray";
+      packageName = "is-typedarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    };
+    "is-url-1.2.4" = {
+      name = "is-url";
+      packageName = "is-url";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz";
+        sha512 = "ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==";
+      };
+    };
+    "is-windows-1.0.2" = {
+      name = "is-windows";
+      packageName = "is-windows";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
+        sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
+      };
+    };
+    "is-wsl-1.1.0" = {
+      name = "is-wsl";
+      packageName = "is-wsl";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz";
+        sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "isarray-2.0.5" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz";
+        sha512 = "xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==";
+      };
+    };
+    "isexe-2.0.0" = {
+      name = "isexe";
+      packageName = "isexe";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    };
+    "isobject-2.1.0" = {
+      name = "isobject";
+      packageName = "isobject";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz";
+        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+      };
+    };
+    "isobject-3.0.1" = {
+      name = "isobject";
+      packageName = "isobject";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz";
+        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+      };
+    };
+    "isstream-0.1.2" = {
+      name = "isstream";
+      packageName = "isstream";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+      };
+    };
+    "js-beautify-1.11.0" = {
+      name = "js-beautify";
+      packageName = "js-beautify";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz";
+        sha512 = "a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A==";
+      };
+    };
+    "js-levenshtein-1.1.6" = {
+      name = "js-levenshtein";
+      packageName = "js-levenshtein";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz";
+        sha512 = "X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==";
+      };
+    };
+    "js-tokens-4.0.0" = {
+      name = "js-tokens";
+      packageName = "js-tokens";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
+      };
+    };
+    "js-yaml-3.13.1" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "3.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
+        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+      };
+    };
+    "jsbn-0.1.1" = {
+      name = "jsbn";
+      packageName = "jsbn";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
+        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+      };
+    };
+    "jsdom-14.1.0" = {
+      name = "jsdom";
+      packageName = "jsdom";
+      version = "14.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz";
+        sha512 = "O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==";
+      };
+    };
+    "jsesc-0.5.0" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz";
+        sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+      };
+    };
+    "jsesc-2.5.2" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
+        sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
+      };
+    };
+    "json-parse-better-errors-1.0.2" = {
+      name = "json-parse-better-errors";
+      packageName = "json-parse-better-errors";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+        sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
+      };
+    };
+    "json-schema-0.2.3" = {
+      name = "json-schema";
+      packageName = "json-schema";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
+        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+      };
+    };
+    "json-schema-traverse-0.4.1" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
+      };
+    };
+    "json-stringify-safe-5.0.1" = {
+      name = "json-stringify-safe";
+      packageName = "json-stringify-safe";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+      };
+    };
+    "json5-1.0.1" = {
+      name = "json5";
+      packageName = "json5";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz";
+        sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==";
+      };
+    };
+    "json5-2.1.3" = {
+      name = "json5";
+      packageName = "json5";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz";
+        sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==";
+      };
+    };
+    "jsprim-1.4.1" = {
+      name = "jsprim";
+      packageName = "jsprim";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
+        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+      };
+    };
+    "kind-of-3.2.2" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
+        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+      };
+    };
+    "kind-of-4.0.0" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz";
+        sha1 = "20813df3d712928b207378691a45066fae72dd57";
+      };
+    };
+    "kind-of-5.1.0" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz";
+        sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==";
+      };
+    };
+    "kind-of-6.0.3" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "6.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz";
+        sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==";
+      };
+    };
+    "levn-0.3.0" = {
+      name = "levn";
+      packageName = "levn";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
+        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+      };
+    };
+    "locate-path-2.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz";
+        sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+      };
+    };
+    "locate-path-3.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
+        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
+      };
+    };
+    "lodash-4.17.15" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
+        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
+      };
+    };
+    "lodash.clone-4.5.0" = {
+      name = "lodash.clone";
+      packageName = "lodash.clone";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz";
+        sha1 = "195870450f5a13192478df4bc3d23d2dea1907b6";
+      };
+    };
+    "lodash.memoize-4.1.2" = {
+      name = "lodash.memoize";
+      packageName = "lodash.memoize";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz";
+        sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
+      };
+    };
+    "lodash.sortby-4.7.0" = {
+      name = "lodash.sortby";
+      packageName = "lodash.sortby";
+      version = "4.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
+        sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
+      };
+    };
+    "lodash.uniq-4.5.0" = {
+      name = "lodash.uniq";
+      packageName = "lodash.uniq";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+        sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+      };
+    };
+    "log-symbols-2.2.0" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz";
+        sha512 = "VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==";
+      };
+    };
+    "loose-envify-1.4.0" = {
+      name = "loose-envify";
+      packageName = "loose-envify";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz";
+        sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==";
+      };
+    };
+    "lru-cache-4.1.5" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "4.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
+        sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
+      };
+    };
+    "magic-string-0.22.5" = {
+      name = "magic-string";
+      packageName = "magic-string";
+      version = "0.22.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz";
+        sha512 = "oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==";
+      };
+    };
+    "map-cache-0.2.2" = {
+      name = "map-cache";
+      packageName = "map-cache";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz";
+        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+      };
+    };
+    "map-visit-1.0.0" = {
+      name = "map-visit";
+      packageName = "map-visit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz";
+        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+      };
+    };
+    "md5.js-1.3.5" = {
+      name = "md5.js";
+      packageName = "md5.js";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz";
+        sha512 = "xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==";
+      };
+    };
+    "mdn-data-2.0.4" = {
+      name = "mdn-data";
+      packageName = "mdn-data";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz";
+        sha512 = "iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==";
+      };
+    };
+    "mdn-data-2.0.6" = {
+      name = "mdn-data";
+      packageName = "mdn-data";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz";
+        sha512 = "rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==";
+      };
+    };
+    "merge-source-map-1.0.4" = {
+      name = "merge-source-map";
+      packageName = "merge-source-map";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz";
+        sha1 = "a5de46538dae84d4114cc5ea02b4772a6346701f";
+      };
+    };
+    "merge2-1.3.0" = {
+      name = "merge2";
+      packageName = "merge2";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz";
+        sha512 = "2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==";
+      };
+    };
+    "micromatch-3.1.10" = {
+      name = "micromatch";
+      packageName = "micromatch";
+      version = "3.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz";
+        sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
+      };
+    };
+    "miller-rabin-4.0.1" = {
+      name = "miller-rabin";
+      packageName = "miller-rabin";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz";
+        sha512 = "115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==";
+      };
+    };
+    "mime-1.6.0" = {
+      name = "mime";
+      packageName = "mime";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
+        sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
+      };
+    };
+    "mime-db-1.44.0" = {
+      name = "mime-db";
+      packageName = "mime-db";
+      version = "1.44.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
+        sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
+      };
+    };
+    "mime-types-2.1.27" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.27";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
+      };
+    };
+    "mimic-fn-1.2.0" = {
+      name = "mimic-fn";
+      packageName = "mimic-fn";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz";
+        sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==";
+      };
+    };
+    "minimalistic-assert-1.0.1" = {
+      name = "minimalistic-assert";
+      packageName = "minimalistic-assert";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+        sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==";
+      };
+    };
+    "minimalistic-crypto-utils-1.0.1" = {
+      name = "minimalistic-crypto-utils";
+      packageName = "minimalistic-crypto-utils";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
+        sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
+      };
+    };
+    "minimatch-3.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+      };
+    };
+    "minimist-1.2.5" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+      };
+    };
+    "mixin-deep-1.3.2" = {
+      name = "mixin-deep";
+      packageName = "mixin-deep";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz";
+        sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==";
+      };
+    };
+    "mkdirp-0.5.5" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+      };
+    };
+    "mkdirp-1.0.4" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
+        sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
+      };
+    };
+    "ms-2.0.0" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    };
+    "ms-2.1.1" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+      };
+    };
+    "ms-2.1.2" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+      };
+    };
+    "nan-2.14.1" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz";
+        sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==";
+      };
+    };
+    "nanomatch-1.2.13" = {
+      name = "nanomatch";
+      packageName = "nanomatch";
+      version = "1.2.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz";
+        sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==";
+      };
+    };
+    "nice-try-1.0.5" = {
+      name = "nice-try";
+      packageName = "nice-try";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz";
+        sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==";
+      };
+    };
+    "node-addon-api-1.7.1" = {
+      name = "node-addon-api";
+      packageName = "node-addon-api";
+      version = "1.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.1.tgz";
+        sha512 = "2+DuKodWvwRTrCfKOeR24KIc5unKjOh8mz17NCzVnHWfjAdDqbfbjqh7gUT+BkXBRQM52+xCHciKWonJ3CbJMQ==";
+      };
+    };
+    "node-elm-compiler-5.0.4" = {
+      name = "node-elm-compiler";
+      packageName = "node-elm-compiler";
+      version = "5.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.4.tgz";
+        sha512 = "VQsT8QSierYGkHzRed+b4MnccQVF1+qPHunE8jBoU7jD6YpuRqCDPzEoC2zfyEJS80qVnlMZrqobLnyjzX9lJg==";
+      };
+    };
+    "node-forge-0.7.6" = {
+      name = "node-forge";
+      packageName = "node-forge";
+      version = "0.7.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz";
+        sha512 = "sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==";
+      };
+    };
+    "node-libs-browser-2.2.1" = {
+      name = "node-libs-browser";
+      packageName = "node-libs-browser";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz";
+        sha512 = "h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==";
+      };
+    };
+    "node-releases-1.1.53" = {
+      name = "node-releases";
+      packageName = "node-releases";
+      version = "1.1.53";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz";
+        sha512 = "wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==";
+      };
+    };
+    "nopt-4.0.3" = {
+      name = "nopt";
+      packageName = "nopt";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz";
+        sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
+      };
+    };
+    "normalize-html-whitespace-1.0.0" = {
+      name = "normalize-html-whitespace";
+      packageName = "normalize-html-whitespace";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz";
+        sha512 = "9ui7CGtOOlehQu0t/OhhlmDyc71mKVlv+4vF+me4iZLPrNtRL2xoquEdfZxasC/bdQi/Hr3iTrpyRKIG+ocabA==";
+      };
+    };
+    "normalize-path-2.1.1" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz";
+        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+      };
+    };
+    "normalize-path-3.0.0" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+      };
+    };
+    "normalize-url-3.3.0" = {
+      name = "normalize-url";
+      packageName = "normalize-url";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz";
+        sha512 = "U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==";
+      };
+    };
+    "nth-check-1.0.2" = {
+      name = "nth-check";
+      packageName = "nth-check";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz";
+        sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==";
+      };
+    };
+    "nwsapi-2.2.0" = {
+      name = "nwsapi";
+      packageName = "nwsapi";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz";
+        sha512 = "h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==";
+      };
+    };
+    "oauth-sign-0.9.0" = {
+      name = "oauth-sign";
+      packageName = "oauth-sign";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
+        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
+      };
+    };
+    "object-assign-4.1.1" = {
+      name = "object-assign";
+      packageName = "object-assign";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    };
+    "object-copy-0.1.0" = {
+      name = "object-copy";
+      packageName = "object-copy";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz";
+        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+      };
+    };
+    "object-inspect-1.4.1" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz";
+        sha512 = "wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==";
+      };
+    };
+    "object-inspect-1.7.0" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz";
+        sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==";
+      };
+    };
+    "object-keys-1.1.1" = {
+      name = "object-keys";
+      packageName = "object-keys";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
+        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
+      };
+    };
+    "object-visit-1.0.1" = {
+      name = "object-visit";
+      packageName = "object-visit";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz";
+        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+      };
+    };
+    "object.assign-4.1.0" = {
+      name = "object.assign";
+      packageName = "object.assign";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
+        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
+      };
+    };
+    "object.getownpropertydescriptors-2.1.0" = {
+      name = "object.getownpropertydescriptors";
+      packageName = "object.getownpropertydescriptors";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
+        sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==";
+      };
+    };
+    "object.pick-1.3.0" = {
+      name = "object.pick";
+      packageName = "object.pick";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz";
+        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+      };
+    };
+    "object.values-1.1.1" = {
+      name = "object.values";
+      packageName = "object.values";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz";
+        sha512 = "WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==";
+      };
+    };
+    "on-finished-2.3.0" = {
+      name = "on-finished";
+      packageName = "on-finished";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
+        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+      };
+    };
+    "once-1.4.0" = {
+      name = "once";
+      packageName = "once";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    };
+    "onetime-2.0.1" = {
+      name = "onetime";
+      packageName = "onetime";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz";
+        sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+      };
+    };
+    "opn-5.5.0" = {
+      name = "opn";
+      packageName = "opn";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz";
+        sha512 = "PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==";
+      };
+    };
+    "optionator-0.8.3" = {
+      name = "optionator";
+      packageName = "optionator";
+      version = "0.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz";
+        sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==";
+      };
+    };
+    "ora-2.1.0" = {
+      name = "ora";
+      packageName = "ora";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz";
+        sha512 = "hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==";
+      };
+    };
+    "os-browserify-0.3.0" = {
+      name = "os-browserify";
+      packageName = "os-browserify";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz";
+        sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
+      };
+    };
+    "os-homedir-1.0.2" = {
+      name = "os-homedir";
+      packageName = "os-homedir";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
+        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+      };
+    };
+    "os-tmpdir-1.0.2" = {
+      name = "os-tmpdir";
+      packageName = "os-tmpdir";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+      };
+    };
+    "osenv-0.1.5" = {
+      name = "osenv";
+      packageName = "osenv";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz";
+        sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
+      };
+    };
+    "p-limit-1.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz";
+        sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==";
+      };
+    };
+    "p-limit-2.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
+      };
+    };
+    "p-locate-2.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz";
+        sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+      };
+    };
+    "p-locate-3.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
+        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
+      };
+    };
+    "p-try-1.0.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz";
+        sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+      };
+    };
+    "p-try-2.2.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+      };
+    };
+    "pako-0.2.9" = {
+      name = "pako";
+      packageName = "pako";
+      version = "0.2.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz";
+        sha1 = "f3f7522f4ef782348da8161bad9ecfd51bf83a75";
+      };
+    };
+    "pako-1.0.11" = {
+      name = "pako";
+      packageName = "pako";
+      version = "1.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz";
+        sha512 = "4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==";
+      };
+    };
+    "parcel-bundler-1.12.3" = {
+      name = "parcel-bundler";
+      packageName = "parcel-bundler";
+      version = "1.12.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.3.tgz";
+        sha512 = "8bq6lj0hhQeGxD9f9xEkFMXQ3d8TIlf2+isKxoi9bciB0KVEILRGllaPkUgp++5t0anToBh9+tG6ZyInXOC1/A==";
+      };
+    };
+    "parse-asn1-5.1.5" = {
+      name = "parse-asn1";
+      packageName = "parse-asn1";
+      version = "5.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz";
+        sha512 = "jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==";
+      };
+    };
+    "parse-json-4.0.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz";
+        sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+      };
+    };
+    "parse5-5.1.0" = {
+      name = "parse5";
+      packageName = "parse5";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz";
+        sha512 = "fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==";
+      };
+    };
+    "parseurl-1.3.3" = {
+      name = "parseurl";
+      packageName = "parseurl";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
+      };
+    };
+    "pascalcase-0.1.1" = {
+      name = "pascalcase";
+      packageName = "pascalcase";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz";
+        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+      };
+    };
+    "path-browserify-0.0.1" = {
+      name = "path-browserify";
+      packageName = "path-browserify";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz";
+        sha512 = "BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==";
+      };
+    };
+    "path-dirname-1.0.2" = {
+      name = "path-dirname";
+      packageName = "path-dirname";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz";
+        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+      };
+    };
+    "path-exists-3.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
+        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "path-key-2.0.1" = {
+      name = "path-key";
+      packageName = "path-key";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz";
+        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+      };
+    };
+    "path-parse-1.0.6" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+      };
+    };
+    "pbkdf2-3.0.17" = {
+      name = "pbkdf2";
+      packageName = "pbkdf2";
+      version = "3.0.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz";
+        sha512 = "U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==";
+      };
+    };
+    "performance-now-2.1.0" = {
+      name = "performance-now";
+      packageName = "performance-now";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+      };
+    };
+    "physical-cpu-count-2.0.0" = {
+      name = "physical-cpu-count";
+      packageName = "physical-cpu-count";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz";
+        sha1 = "18de2f97e4bf7a9551ad7511942b5496f7aba660";
+      };
+    };
+    "pkg-up-2.0.0" = {
+      name = "pkg-up";
+      packageName = "pkg-up";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz";
+        sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
+      };
+    };
+    "pn-1.1.0" = {
+      name = "pn";
+      packageName = "pn";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz";
+        sha512 = "2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==";
+      };
+    };
+    "posix-character-classes-0.1.1" = {
+      name = "posix-character-classes";
+      packageName = "posix-character-classes";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+      };
+    };
+    "postcss-6.0.1" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz";
+        sha1 = "000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2";
+      };
+    };
+    "postcss-6.0.23" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "6.0.23";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz";
+        sha512 = "soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==";
+      };
+    };
+    "postcss-7.0.27" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "7.0.27";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz";
+        sha512 = "WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==";
+      };
+    };
+    "postcss-calc-7.0.2" = {
+      name = "postcss-calc";
+      packageName = "postcss-calc";
+      version = "7.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz";
+        sha512 = "rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==";
+      };
+    };
+    "postcss-colormin-4.0.3" = {
+      name = "postcss-colormin";
+      packageName = "postcss-colormin";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz";
+        sha512 = "WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==";
+      };
+    };
+    "postcss-convert-values-4.0.1" = {
+      name = "postcss-convert-values";
+      packageName = "postcss-convert-values";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz";
+        sha512 = "Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==";
+      };
+    };
+    "postcss-discard-comments-4.0.2" = {
+      name = "postcss-discard-comments";
+      packageName = "postcss-discard-comments";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz";
+        sha512 = "RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==";
+      };
+    };
+    "postcss-discard-duplicates-4.0.2" = {
+      name = "postcss-discard-duplicates";
+      packageName = "postcss-discard-duplicates";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz";
+        sha512 = "ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==";
+      };
+    };
+    "postcss-discard-empty-4.0.1" = {
+      name = "postcss-discard-empty";
+      packageName = "postcss-discard-empty";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz";
+        sha512 = "B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==";
+      };
+    };
+    "postcss-discard-overridden-4.0.1" = {
+      name = "postcss-discard-overridden";
+      packageName = "postcss-discard-overridden";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz";
+        sha512 = "IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==";
+      };
+    };
+    "postcss-merge-longhand-4.0.11" = {
+      name = "postcss-merge-longhand";
+      packageName = "postcss-merge-longhand";
+      version = "4.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz";
+        sha512 = "alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==";
+      };
+    };
+    "postcss-merge-rules-4.0.3" = {
+      name = "postcss-merge-rules";
+      packageName = "postcss-merge-rules";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz";
+        sha512 = "U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==";
+      };
+    };
+    "postcss-minify-font-values-4.0.2" = {
+      name = "postcss-minify-font-values";
+      packageName = "postcss-minify-font-values";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz";
+        sha512 = "j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==";
+      };
+    };
+    "postcss-minify-gradients-4.0.2" = {
+      name = "postcss-minify-gradients";
+      packageName = "postcss-minify-gradients";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz";
+        sha512 = "qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==";
+      };
+    };
+    "postcss-minify-params-4.0.2" = {
+      name = "postcss-minify-params";
+      packageName = "postcss-minify-params";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz";
+        sha512 = "G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==";
+      };
+    };
+    "postcss-minify-selectors-4.0.2" = {
+      name = "postcss-minify-selectors";
+      packageName = "postcss-minify-selectors";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz";
+        sha512 = "D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==";
+      };
+    };
+    "postcss-modules-extract-imports-1.1.0" = {
+      name = "postcss-modules-extract-imports";
+      packageName = "postcss-modules-extract-imports";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz";
+        sha1 = "b614c9720be6816eaee35fb3a5faa1dba6a05ddb";
+      };
+    };
+    "postcss-modules-local-by-default-1.2.0" = {
+      name = "postcss-modules-local-by-default";
+      packageName = "postcss-modules-local-by-default";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz";
+        sha1 = "f7d80c398c5a393fa7964466bd19500a7d61c069";
+      };
+    };
+    "postcss-modules-scope-1.1.0" = {
+      name = "postcss-modules-scope";
+      packageName = "postcss-modules-scope";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz";
+        sha1 = "d6ea64994c79f97b62a72b426fbe6056a194bb90";
+      };
+    };
+    "postcss-modules-values-1.3.0" = {
+      name = "postcss-modules-values";
+      packageName = "postcss-modules-values";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz";
+        sha1 = "ecffa9d7e192518389f42ad0e83f72aec456ea20";
+      };
+    };
+    "postcss-normalize-charset-4.0.1" = {
+      name = "postcss-normalize-charset";
+      packageName = "postcss-normalize-charset";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz";
+        sha512 = "gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==";
+      };
+    };
+    "postcss-normalize-display-values-4.0.2" = {
+      name = "postcss-normalize-display-values";
+      packageName = "postcss-normalize-display-values";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz";
+        sha512 = "3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==";
+      };
+    };
+    "postcss-normalize-positions-4.0.2" = {
+      name = "postcss-normalize-positions";
+      packageName = "postcss-normalize-positions";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz";
+        sha512 = "Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==";
+      };
+    };
+    "postcss-normalize-repeat-style-4.0.2" = {
+      name = "postcss-normalize-repeat-style";
+      packageName = "postcss-normalize-repeat-style";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz";
+        sha512 = "qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==";
+      };
+    };
+    "postcss-normalize-string-4.0.2" = {
+      name = "postcss-normalize-string";
+      packageName = "postcss-normalize-string";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz";
+        sha512 = "RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==";
+      };
+    };
+    "postcss-normalize-timing-functions-4.0.2" = {
+      name = "postcss-normalize-timing-functions";
+      packageName = "postcss-normalize-timing-functions";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz";
+        sha512 = "acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==";
+      };
+    };
+    "postcss-normalize-unicode-4.0.1" = {
+      name = "postcss-normalize-unicode";
+      packageName = "postcss-normalize-unicode";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz";
+        sha512 = "od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==";
+      };
+    };
+    "postcss-normalize-url-4.0.1" = {
+      name = "postcss-normalize-url";
+      packageName = "postcss-normalize-url";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz";
+        sha512 = "p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==";
+      };
+    };
+    "postcss-normalize-whitespace-4.0.2" = {
+      name = "postcss-normalize-whitespace";
+      packageName = "postcss-normalize-whitespace";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz";
+        sha512 = "tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==";
+      };
+    };
+    "postcss-ordered-values-4.1.2" = {
+      name = "postcss-ordered-values";
+      packageName = "postcss-ordered-values";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz";
+        sha512 = "2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==";
+      };
+    };
+    "postcss-reduce-initial-4.0.3" = {
+      name = "postcss-reduce-initial";
+      packageName = "postcss-reduce-initial";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz";
+        sha512 = "gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==";
+      };
+    };
+    "postcss-reduce-transforms-4.0.2" = {
+      name = "postcss-reduce-transforms";
+      packageName = "postcss-reduce-transforms";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz";
+        sha512 = "EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==";
+      };
+    };
+    "postcss-selector-parser-3.1.2" = {
+      name = "postcss-selector-parser";
+      packageName = "postcss-selector-parser";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz";
+        sha512 = "h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==";
+      };
+    };
+    "postcss-selector-parser-6.0.2" = {
+      name = "postcss-selector-parser";
+      packageName = "postcss-selector-parser";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
+        sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==";
+      };
+    };
+    "postcss-svgo-4.0.2" = {
+      name = "postcss-svgo";
+      packageName = "postcss-svgo";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz";
+        sha512 = "C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==";
+      };
+    };
+    "postcss-unique-selectors-4.0.1" = {
+      name = "postcss-unique-selectors";
+      packageName = "postcss-unique-selectors";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz";
+        sha512 = "+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==";
+      };
+    };
+    "postcss-value-parser-3.3.1" = {
+      name = "postcss-value-parser";
+      packageName = "postcss-value-parser";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz";
+        sha512 = "pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==";
+      };
+    };
+    "postcss-value-parser-4.0.3" = {
+      name = "postcss-value-parser";
+      packageName = "postcss-value-parser";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz";
+        sha512 = "N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==";
+      };
+    };
+    "posthtml-0.11.6" = {
+      name = "posthtml";
+      packageName = "posthtml";
+      version = "0.11.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/posthtml/-/posthtml-0.11.6.tgz";
+        sha512 = "C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw==";
+      };
+    };
+    "posthtml-0.12.3" = {
+      name = "posthtml";
+      packageName = "posthtml";
+      version = "0.12.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/posthtml/-/posthtml-0.12.3.tgz";
+        sha512 = "Fbpi95+JJyR0tqU7pUy1zTSQFjAsluuwB9pJ1h0jtnGk7n/O2TBtP5nDl9rV0JVACjQ1Lm5wSp4ppChr8u3MhA==";
+      };
+    };
+    "posthtml-parser-0.4.2" = {
+      name = "posthtml-parser";
+      packageName = "posthtml-parser";
+      version = "0.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.4.2.tgz";
+        sha512 = "BUIorsYJTvS9UhXxPTzupIztOMVNPa/HtAm9KHni9z6qEfiJ1bpOBL5DfUOL9XAc3XkLIEzBzpph+Zbm4AdRAg==";
+      };
+    };
+    "posthtml-render-1.2.2" = {
+      name = "posthtml-render";
+      packageName = "posthtml-render";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.2.2.tgz";
+        sha512 = "MbIXTWwAfJ9qET6Zl29UNwJcDJEEz9Zkr5oDhiujitJa7YBJwEpbkX2cmuklCDxubTMoRWpid3q8DrSyGnUUzQ==";
+      };
+    };
+    "prelude-ls-1.1.2" = {
+      name = "prelude-ls";
+      packageName = "prelude-ls";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
+        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+      };
+    };
+    "private-0.1.8" = {
+      name = "private";
+      packageName = "private";
+      version = "0.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/private/-/private-0.1.8.tgz";
+        sha512 = "VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==";
+      };
+    };
+    "process-0.11.10" = {
+      name = "process";
+      packageName = "process";
+      version = "0.11.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process/-/process-0.11.10.tgz";
+        sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
+      };
+    };
+    "process-nextick-args-2.0.1" = {
+      name = "process-nextick-args";
+      packageName = "process-nextick-args";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+      };
+    };
+    "proto-list-1.2.4" = {
+      name = "proto-list";
+      packageName = "proto-list";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz";
+        sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
+      };
+    };
+    "pseudomap-1.0.2" = {
+      name = "pseudomap";
+      packageName = "pseudomap";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
+        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+      };
+    };
+    "psl-1.8.0" = {
+      name = "psl";
+      packageName = "psl";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
+        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
+      };
+    };
+    "public-encrypt-4.0.3" = {
+      name = "public-encrypt";
+      packageName = "public-encrypt";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz";
+        sha512 = "zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==";
+      };
+    };
+    "punycode-1.3.2" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz";
+        sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
+      };
+    };
+    "punycode-1.4.1" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz";
+        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+      };
+    };
+    "punycode-2.1.1" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+      };
+    };
+    "purgecss-1.4.2" = {
+      name = "purgecss";
+      packageName = "purgecss";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/purgecss/-/purgecss-1.4.2.tgz";
+        sha512 = "hkOreFTgiyMHMmC2BxzdIw5DuC6kxAbP/gGOGd3MEsF3+5m69rIvUEPaxrnoUtfODTFKe9hcXjGwC6jcjoyhOw==";
+      };
+    };
+    "q-1.5.1" = {
+      name = "q";
+      packageName = "q";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/q/-/q-1.5.1.tgz";
+        sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7";
+      };
+    };
+    "qs-6.5.2" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
+        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+      };
+    };
+    "querystring-0.2.0" = {
+      name = "querystring";
+      packageName = "querystring";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz";
+        sha1 = "b209849203bb25df820da756e747005878521620";
+      };
+    };
+    "querystring-es3-0.2.1" = {
+      name = "querystring-es3";
+      packageName = "querystring-es3";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz";
+        sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
+      };
+    };
+    "quote-stream-1.0.2" = {
+      name = "quote-stream";
+      packageName = "quote-stream";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz";
+        sha1 = "84963f8c9c26b942e153feeb53aae74652b7e0b2";
+      };
+    };
+    "randombytes-2.1.0" = {
+      name = "randombytes";
+      packageName = "randombytes";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";
+        sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==";
+      };
+    };
+    "randomfill-1.0.4" = {
+      name = "randomfill";
+      packageName = "randomfill";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz";
+        sha512 = "87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==";
+      };
+    };
+    "range-parser-1.2.1" = {
+      name = "range-parser";
+      packageName = "range-parser";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
+        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
+      };
+    };
+    "readable-stream-2.3.7" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+      };
+    };
+    "readable-stream-3.6.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+      };
+    };
+    "readdirp-2.2.1" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz";
+        sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
+      };
+    };
+    "regenerate-1.4.0" = {
+      name = "regenerate";
+      packageName = "regenerate";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz";
+        sha512 = "1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==";
+      };
+    };
+    "regenerate-unicode-properties-8.2.0" = {
+      name = "regenerate-unicode-properties";
+      packageName = "regenerate-unicode-properties";
+      version = "8.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
+        sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
+      };
+    };
+    "regenerator-runtime-0.11.1" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
+        sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
+      };
+    };
+    "regenerator-runtime-0.12.1" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz";
+        sha512 = "odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==";
+      };
+    };
+    "regenerator-runtime-0.13.5" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.13.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
+        sha512 = "ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==";
+      };
+    };
+    "regenerator-transform-0.14.4" = {
+      name = "regenerator-transform";
+      packageName = "regenerator-transform";
+      version = "0.14.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz";
+        sha512 = "EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==";
+      };
+    };
+    "regex-not-1.0.2" = {
+      name = "regex-not";
+      packageName = "regex-not";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz";
+        sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==";
+      };
+    };
+    "regexpu-core-4.7.0" = {
+      name = "regexpu-core";
+      packageName = "regexpu-core";
+      version = "4.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz";
+        sha512 = "TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==";
+      };
+    };
+    "regjsgen-0.5.1" = {
+      name = "regjsgen";
+      packageName = "regjsgen";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz";
+        sha512 = "5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==";
+      };
+    };
+    "regjsparser-0.6.4" = {
+      name = "regjsparser";
+      packageName = "regjsparser";
+      version = "0.6.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz";
+        sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==";
+      };
+    };
+    "remove-trailing-separator-1.1.0" = {
+      name = "remove-trailing-separator";
+      packageName = "remove-trailing-separator";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+      };
+    };
+    "repeat-element-1.1.3" = {
+      name = "repeat-element";
+      packageName = "repeat-element";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz";
+        sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==";
+      };
+    };
+    "repeat-string-1.6.1" = {
+      name = "repeat-string";
+      packageName = "repeat-string";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
+        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+      };
+    };
+    "request-2.88.2" = {
+      name = "request";
+      packageName = "request";
+      version = "2.88.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
+        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
+      };
+    };
+    "request-promise-core-1.1.3" = {
+      name = "request-promise-core";
+      packageName = "request-promise-core";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz";
+        sha512 = "QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==";
+      };
+    };
+    "request-promise-native-1.0.8" = {
+      name = "request-promise-native";
+      packageName = "request-promise-native";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz";
+        sha512 = "dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==";
+      };
+    };
+    "require-directory-2.1.1" = {
+      name = "require-directory";
+      packageName = "require-directory";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    };
+    "require-main-filename-2.0.0" = {
+      name = "require-main-filename";
+      packageName = "require-main-filename";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
+        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
+      };
+    };
+    "resolve-1.17.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.17.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
+        sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
+      };
+    };
+    "resolve-from-3.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz";
+        sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+      };
+    };
+    "resolve-url-0.2.1" = {
+      name = "resolve-url";
+      packageName = "resolve-url";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz";
+        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+      };
+    };
+    "restore-cursor-2.0.0" = {
+      name = "restore-cursor";
+      packageName = "restore-cursor";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz";
+        sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+      };
+    };
+    "ret-0.1.15" = {
+      name = "ret";
+      packageName = "ret";
+      version = "0.1.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";
+        sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
+      };
+    };
+    "rgb-regex-1.0.1" = {
+      name = "rgb-regex";
+      packageName = "rgb-regex";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz";
+        sha1 = "c0e0d6882df0e23be254a475e8edd41915feaeb1";
+      };
+    };
+    "rgba-regex-1.0.0" = {
+      name = "rgba-regex";
+      packageName = "rgba-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz";
+        sha1 = "43374e2e2ca0968b0ef1523460b7d730ff22eeb3";
+      };
+    };
+    "rimraf-2.6.3" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "2.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz";
+        sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==";
+      };
+    };
+    "ripemd160-2.0.2" = {
+      name = "ripemd160";
+      packageName = "ripemd160";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz";
+        sha512 = "ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==";
+      };
+    };
+    "safe-buffer-5.1.2" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+      };
+    };
+    "safe-regex-1.1.0" = {
+      name = "safe-regex";
+      packageName = "safe-regex";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz";
+        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+      };
+    };
+    "safer-buffer-2.1.2" = {
+      name = "safer-buffer";
+      packageName = "safer-buffer";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+      };
+    };
+    "safer-eval-1.3.6" = {
+      name = "safer-eval";
+      packageName = "safer-eval";
+      version = "1.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safer-eval/-/safer-eval-1.3.6.tgz";
+        sha512 = "DN9tBsZgtUOHODzSfO1nGCLhZtxc7Qq/d8/2SNxQZ9muYXZspSh1fO7HOsrf4lcelBNviAJLCxB/ggmG+jV1aw==";
+      };
+    };
+    "sax-1.2.4" = {
+      name = "sax";
+      packageName = "sax";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
+        sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
+      };
+    };
+    "saxes-3.1.11" = {
+      name = "saxes";
+      packageName = "saxes";
+      version = "3.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz";
+        sha512 = "Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==";
+      };
+    };
+    "semver-5.7.1" = {
+      name = "semver";
+      packageName = "semver";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+      };
+    };
+    "send-0.17.1" = {
+      name = "send";
+      packageName = "send";
+      version = "0.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
+        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+      };
+    };
+    "serialize-to-js-1.2.2" = {
+      name = "serialize-to-js";
+      packageName = "serialize-to-js";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-1.2.2.tgz";
+        sha512 = "mUc8vA5iJghe+O+3s0YDGFLMJcqitVFk787YKiv8a4sf6RX5W0u81b+gcHrp15O0fFa010dRBVZvwcKXOWsL9Q==";
+      };
+    };
+    "serve-static-1.14.1" = {
+      name = "serve-static";
+      packageName = "serve-static";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
+        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+      };
+    };
+    "set-blocking-2.0.0" = {
+      name = "set-blocking";
+      packageName = "set-blocking";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+      };
+    };
+    "set-value-2.0.1" = {
+      name = "set-value";
+      packageName = "set-value";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz";
+        sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==";
+      };
+    };
+    "setimmediate-1.0.5" = {
+      name = "setimmediate";
+      packageName = "setimmediate";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz";
+        sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
+      };
+    };
+    "setprototypeof-1.1.1" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
+        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+      };
+    };
+    "sha.js-2.4.11" = {
+      name = "sha.js";
+      packageName = "sha.js";
+      version = "2.4.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz";
+        sha512 = "QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==";
+      };
+    };
+    "shallow-copy-0.0.1" = {
+      name = "shallow-copy";
+      packageName = "shallow-copy";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz";
+        sha1 = "415f42702d73d810330292cc5ee86eae1a11a170";
+      };
+    };
+    "shebang-command-1.2.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz";
+        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+      };
+    };
+    "shebang-regex-1.0.0" = {
+      name = "shebang-regex";
+      packageName = "shebang-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz";
+        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+      };
+    };
+    "sigmund-1.0.1" = {
+      name = "sigmund";
+      packageName = "sigmund";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz";
+        sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
+      };
+    };
+    "signal-exit-3.0.3" = {
+      name = "signal-exit";
+      packageName = "signal-exit";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+      };
+    };
+    "simple-swizzle-0.2.2" = {
+      name = "simple-swizzle";
+      packageName = "simple-swizzle";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+        sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+      };
+    };
+    "snapdragon-0.8.2" = {
+      name = "snapdragon";
+      packageName = "snapdragon";
+      version = "0.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz";
+        sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==";
+      };
+    };
+    "snapdragon-node-2.1.1" = {
+      name = "snapdragon-node";
+      packageName = "snapdragon-node";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+        sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==";
+      };
+    };
+    "snapdragon-util-3.0.1" = {
+      name = "snapdragon-util";
+      packageName = "snapdragon-util";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+        sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
+      };
+    };
+    "source-map-0.5.7" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    };
+    "source-map-0.6.1" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+      };
+    };
+    "source-map-resolve-0.5.3" = {
+      name = "source-map-resolve";
+      packageName = "source-map-resolve";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+        sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
+      };
+    };
+    "source-map-support-0.5.19" = {
+      name = "source-map-support";
+      packageName = "source-map-support";
+      version = "0.5.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
+      };
+    };
+    "source-map-url-0.4.0" = {
+      name = "source-map-url";
+      packageName = "source-map-url";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz";
+        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+      };
+    };
+    "split-string-3.1.0" = {
+      name = "split-string";
+      packageName = "split-string";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz";
+        sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==";
+      };
+    };
+    "sprintf-js-1.0.3" = {
+      name = "sprintf-js";
+      packageName = "sprintf-js";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    };
+    "sshpk-1.16.1" = {
+      name = "sshpk";
+      packageName = "sshpk";
+      version = "1.16.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
+        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
+      };
+    };
+    "stable-0.1.8" = {
+      name = "stable";
+      packageName = "stable";
+      version = "0.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz";
+        sha512 = "ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==";
+      };
+    };
+    "static-eval-2.0.5" = {
+      name = "static-eval";
+      packageName = "static-eval";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/static-eval/-/static-eval-2.0.5.tgz";
+        sha512 = "nNbV6LbGtMBgv7e9LFkt5JV8RVlRsyJrphfAt9tOtBBW/SfnzZDf2KnS72an8e434A+9e/BmJuTxeGPvrAK7KA==";
+      };
+    };
+    "static-extend-0.1.2" = {
+      name = "static-extend";
+      packageName = "static-extend";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz";
+        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+      };
+    };
+    "static-module-2.2.5" = {
+      name = "static-module";
+      packageName = "static-module";
+      version = "2.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz";
+        sha512 = "D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==";
+      };
+    };
+    "statuses-1.5.0" = {
+      name = "statuses";
+      packageName = "statuses";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
+        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+      };
+    };
+    "stealthy-require-1.1.1" = {
+      name = "stealthy-require";
+      packageName = "stealthy-require";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz";
+        sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
+      };
+    };
+    "stream-browserify-2.0.2" = {
+      name = "stream-browserify";
+      packageName = "stream-browserify";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz";
+        sha512 = "nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==";
+      };
+    };
+    "stream-http-2.8.3" = {
+      name = "stream-http";
+      packageName = "stream-http";
+      version = "2.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz";
+        sha512 = "+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==";
+      };
+    };
+    "string-width-3.1.0" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
+        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
+      };
+    };
+    "string.prototype.trimend-1.0.1" = {
+      name = "string.prototype.trimend";
+      packageName = "string.prototype.trimend";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+        sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
+      };
+    };
+    "string.prototype.trimleft-2.1.2" = {
+      name = "string.prototype.trimleft";
+      packageName = "string.prototype.trimleft";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz";
+        sha512 = "gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==";
+      };
+    };
+    "string.prototype.trimright-2.1.2" = {
+      name = "string.prototype.trimright";
+      packageName = "string.prototype.trimright";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz";
+        sha512 = "ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==";
+      };
+    };
+    "string.prototype.trimstart-1.0.1" = {
+      name = "string.prototype.trimstart";
+      packageName = "string.prototype.trimstart";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+        sha512 = "XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==";
+      };
+    };
+    "string_decoder-1.1.1" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+      };
+    };
+    "strip-ansi-3.0.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    };
+    "strip-ansi-4.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
+        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+      };
+    };
+    "strip-ansi-5.2.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+      };
+    };
+    "stylehacks-4.0.3" = {
+      name = "stylehacks";
+      packageName = "stylehacks";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz";
+        sha512 = "7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==";
+      };
+    };
+    "supports-color-2.0.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
+        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+      };
+    };
+    "supports-color-3.2.3" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "3.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz";
+        sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6";
+      };
+    };
+    "supports-color-5.5.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+      };
+    };
+    "supports-color-6.1.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz";
+        sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==";
+      };
+    };
+    "svgo-1.3.2" = {
+      name = "svgo";
+      packageName = "svgo";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz";
+        sha512 = "yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==";
+      };
+    };
+    "symbol-tree-3.2.4" = {
+      name = "symbol-tree";
+      packageName = "symbol-tree";
+      version = "3.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz";
+        sha512 = "9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==";
+      };
+    };
+    "temp-0.9.0" = {
+      name = "temp";
+      packageName = "temp";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/temp/-/temp-0.9.0.tgz";
+        sha512 = "YfUhPQCJoNQE5N+FJQcdPz63O3x3sdT4Xju69Gj4iZe0lBKOtnAMi0SLj9xKhGkcGhsxThvTJ/usxtFPo438zQ==";
+      };
+    };
+    "terser-3.17.0" = {
+      name = "terser";
+      packageName = "terser";
+      version = "3.17.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz";
+        sha512 = "/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==";
+      };
+    };
+    "terser-4.6.12" = {
+      name = "terser";
+      packageName = "terser";
+      version = "4.6.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser/-/terser-4.6.12.tgz";
+        sha512 = "fnIwuaKjFPANG6MAixC/k1TDtnl1YlPLUlLVIxxGZUn1gfUx2+l3/zGNB72wya+lgsb50QBi2tUV75RiODwnww==";
+      };
+    };
+    "through2-2.0.5" = {
+      name = "through2";
+      packageName = "through2";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
+        sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
+      };
+    };
+    "timers-browserify-2.0.11" = {
+      name = "timers-browserify";
+      packageName = "timers-browserify";
+      version = "2.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz";
+        sha512 = "60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==";
+      };
+    };
+    "timsort-0.3.0" = {
+      name = "timsort";
+      packageName = "timsort";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz";
+        sha1 = "405411a8e7e6339fe64db9a234de11dc31e02bd4";
+      };
+    };
+    "tiny-inflate-1.0.3" = {
+      name = "tiny-inflate";
+      packageName = "tiny-inflate";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz";
+        sha512 = "pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==";
+      };
+    };
+    "to-arraybuffer-1.0.1" = {
+      name = "to-arraybuffer";
+      packageName = "to-arraybuffer";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+        sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+      };
+    };
+    "to-fast-properties-1.0.3" = {
+      name = "to-fast-properties";
+      packageName = "to-fast-properties";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz";
+        sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47";
+      };
+    };
+    "to-fast-properties-2.0.0" = {
+      name = "to-fast-properties";
+      packageName = "to-fast-properties";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    };
+    "to-object-path-0.3.0" = {
+      name = "to-object-path";
+      packageName = "to-object-path";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz";
+        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+      };
+    };
+    "to-regex-3.0.2" = {
+      name = "to-regex";
+      packageName = "to-regex";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz";
+        sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==";
+      };
+    };
+    "to-regex-range-2.1.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz";
+        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+      };
+    };
+    "toidentifier-1.0.0" = {
+      name = "toidentifier";
+      packageName = "toidentifier";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
+        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+      };
+    };
+    "tough-cookie-2.5.0" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
+        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+      };
+    };
+    "tr46-1.0.1" = {
+      name = "tr46";
+      packageName = "tr46";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz";
+        sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09";
+      };
+    };
+    "trim-right-1.0.1" = {
+      name = "trim-right";
+      packageName = "trim-right";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz";
+        sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
+      };
+    };
+    "tty-browserify-0.0.0" = {
+      name = "tty-browserify";
+      packageName = "tty-browserify";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz";
+        sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
+      };
+    };
+    "tunnel-agent-0.6.0" = {
+      name = "tunnel-agent";
+      packageName = "tunnel-agent";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+      };
+    };
+    "tweetnacl-0.14.5" = {
+      name = "tweetnacl";
+      packageName = "tweetnacl";
+      version = "0.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
+        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+      };
+    };
+    "type-check-0.3.2" = {
+      name = "type-check";
+      packageName = "type-check";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
+        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+      };
+    };
+    "typedarray-0.0.6" = {
+      name = "typedarray";
+      packageName = "typedarray";
+      version = "0.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    };
+    "uncss-0.17.3" = {
+      name = "uncss";
+      packageName = "uncss";
+      version = "0.17.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uncss/-/uncss-0.17.3.tgz";
+        sha512 = "ksdDWl81YWvF/X14fOSw4iu8tESDHFIeyKIeDrK6GEVTQvqJc1WlOEXqostNwOCi3qAj++4EaLsdAgPmUbEyog==";
+      };
+    };
+    "unicode-canonical-property-names-ecmascript-1.0.4" = {
+      name = "unicode-canonical-property-names-ecmascript";
+      packageName = "unicode-canonical-property-names-ecmascript";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
+        sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==";
+      };
+    };
+    "unicode-match-property-ecmascript-1.0.4" = {
+      name = "unicode-match-property-ecmascript";
+      packageName = "unicode-match-property-ecmascript";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
+        sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==";
+      };
+    };
+    "unicode-match-property-value-ecmascript-1.2.0" = {
+      name = "unicode-match-property-value-ecmascript";
+      packageName = "unicode-match-property-value-ecmascript";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
+        sha512 = "wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==";
+      };
+    };
+    "unicode-property-aliases-ecmascript-1.1.0" = {
+      name = "unicode-property-aliases-ecmascript";
+      packageName = "unicode-property-aliases-ecmascript";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz";
+        sha512 = "PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==";
+      };
+    };
+    "unicode-trie-0.3.1" = {
+      name = "unicode-trie";
+      packageName = "unicode-trie";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz";
+        sha1 = "d671dddd89101a08bac37b6a5161010602052085";
+      };
+    };
+    "union-value-1.0.1" = {
+      name = "union-value";
+      packageName = "union-value";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz";
+        sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==";
+      };
+    };
+    "uniq-1.0.1" = {
+      name = "uniq";
+      packageName = "uniq";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz";
+        sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
+      };
+    };
+    "uniqs-2.0.0" = {
+      name = "uniqs";
+      packageName = "uniqs";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz";
+        sha1 = "ffede4b36b25290696e6e165d4a59edb998e6b02";
+      };
+    };
+    "unquote-1.1.1" = {
+      name = "unquote";
+      packageName = "unquote";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz";
+        sha1 = "8fded7324ec6e88a0ff8b905e7c098cdc086d544";
+      };
+    };
+    "unset-value-1.0.0" = {
+      name = "unset-value";
+      packageName = "unset-value";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz";
+        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+      };
+    };
+    "upath-1.2.0" = {
+      name = "upath";
+      packageName = "upath";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz";
+        sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==";
+      };
+    };
+    "uri-js-4.2.2" = {
+      name = "uri-js";
+      packageName = "uri-js";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
+        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+      };
+    };
+    "urix-0.1.0" = {
+      name = "urix";
+      packageName = "urix";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz";
+        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+      };
+    };
+    "url-0.11.0" = {
+      name = "url";
+      packageName = "url";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url/-/url-0.11.0.tgz";
+        sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+      };
+    };
+    "use-3.1.1" = {
+      name = "use";
+      packageName = "use";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz";
+        sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
+      };
+    };
+    "util-0.10.3" = {
+      name = "util";
+      packageName = "util";
+      version = "0.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util/-/util-0.10.3.tgz";
+        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+      };
+    };
+    "util-0.11.1" = {
+      name = "util";
+      packageName = "util";
+      version = "0.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util/-/util-0.11.1.tgz";
+        sha512 = "HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "util.promisify-1.0.1" = {
+      name = "util.promisify";
+      packageName = "util.promisify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz";
+        sha512 = "g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==";
+      };
+    };
+    "uuid-3.4.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+      };
+    };
+    "v8-compile-cache-2.1.0" = {
+      name = "v8-compile-cache";
+      packageName = "v8-compile-cache";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz";
+        sha512 = "usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==";
+      };
+    };
+    "vendors-1.0.4" = {
+      name = "vendors";
+      packageName = "vendors";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz";
+        sha512 = "/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==";
+      };
+    };
+    "verror-1.10.0" = {
+      name = "verror";
+      packageName = "verror";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
+        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+      };
+    };
+    "vlq-0.2.3" = {
+      name = "vlq";
+      packageName = "vlq";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz";
+        sha512 = "DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==";
+      };
+    };
+    "vm-browserify-1.1.2" = {
+      name = "vm-browserify";
+      packageName = "vm-browserify";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz";
+        sha512 = "2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==";
+      };
+    };
+    "w3c-hr-time-1.0.2" = {
+      name = "w3c-hr-time";
+      packageName = "w3c-hr-time";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz";
+        sha512 = "z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==";
+      };
+    };
+    "w3c-xmlserializer-1.1.2" = {
+      name = "w3c-xmlserializer";
+      packageName = "w3c-xmlserializer";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz";
+        sha512 = "p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==";
+      };
+    };
+    "wcwidth-1.0.1" = {
+      name = "wcwidth";
+      packageName = "wcwidth";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz";
+        sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8";
+      };
+    };
+    "webidl-conversions-4.0.2" = {
+      name = "webidl-conversions";
+      packageName = "webidl-conversions";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz";
+        sha512 = "YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==";
+      };
+    };
+    "whatwg-encoding-1.0.5" = {
+      name = "whatwg-encoding";
+      packageName = "whatwg-encoding";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
+        sha512 = "b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==";
+      };
+    };
+    "whatwg-mimetype-2.3.0" = {
+      name = "whatwg-mimetype";
+      packageName = "whatwg-mimetype";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
+        sha512 = "M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==";
+      };
+    };
+    "whatwg-url-7.1.0" = {
+      name = "whatwg-url";
+      packageName = "whatwg-url";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz";
+        sha512 = "WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==";
+      };
+    };
+    "which-1.3.1" = {
+      name = "which";
+      packageName = "which";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
+        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
+      };
+    };
+    "which-module-2.0.0" = {
+      name = "which-module";
+      packageName = "which-module";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
+        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+      };
+    };
+    "word-wrap-1.2.3" = {
+      name = "word-wrap";
+      packageName = "word-wrap";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+      };
+    };
+    "wrap-ansi-5.1.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
+        sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
+      };
+    };
+    "wrappy-1.0.2" = {
+      name = "wrappy";
+      packageName = "wrappy";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    };
+    "ws-5.2.2" = {
+      name = "ws";
+      packageName = "ws";
+      version = "5.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz";
+        sha512 = "jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==";
+      };
+    };
+    "ws-6.2.1" = {
+      name = "ws";
+      packageName = "ws";
+      version = "6.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz";
+        sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==";
+      };
+    };
+    "xml-name-validator-3.0.0" = {
+      name = "xml-name-validator";
+      packageName = "xml-name-validator";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
+        sha512 = "A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==";
+      };
+    };
+    "xmlchars-2.2.0" = {
+      name = "xmlchars";
+      packageName = "xmlchars";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz";
+        sha512 = "JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==";
+      };
+    };
+    "xtend-4.0.2" = {
+      name = "xtend";
+      packageName = "xtend";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+      };
+    };
+    "y18n-4.0.0" = {
+      name = "y18n";
+      packageName = "y18n";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
+        sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
+      };
+    };
+    "yallist-2.1.2" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
+        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+      };
+    };
+    "yargs-14.2.3" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "14.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz";
+        sha512 = "ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==";
+      };
+    };
+    "yargs-parser-15.0.1" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "15.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz";
+        sha512 = "0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==";
+      };
+    };
+  };
+  args = {
+    name = "codenamesgreen";
+    packageName = "codenamesgreen";
+    version = "1.0.0";
+    src = let
+      upstream = fetchFromGitHub {
+        owner = "jbowens";
+        repo = "codenamesgreen";
+        rev = "master";
+        sha256 = "0bkaf52rnjw792q0755in4k5jbcrmgq06cl03fdl6zdr8kq2mhm0";
+      };
+    in
+      runCommand "codenamesgreen-src" {} ''
+        cp -a ${upstream} $out
+        chmod -R u+w $out
+        cd $out
+        patch -p1 < ${./codenames.patch}
+      '';
+    dependencies = [
+      sources."@babel/code-frame-7.0.0"
+      (sources."@babel/core-7.3.4" // {
+        dependencies = [
+          sources."json5-2.1.3"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."@babel/generator-7.3.4" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."@babel/helper-annotate-as-pure-7.8.3" // {
+        dependencies = [
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      (sources."@babel/helper-builder-binary-assignment-operator-visitor-7.8.3" // {
+        dependencies = [
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      (sources."@babel/helper-builder-react-jsx-7.9.0" // {
+        dependencies = [
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      sources."@babel/helper-create-regexp-features-plugin-7.8.8"
+      (sources."@babel/helper-define-map-7.8.3" // {
+        dependencies = [
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      (sources."@babel/helper-explode-assignable-expression-7.8.3" // {
+        dependencies = [
+          sources."@babel/code-frame-7.8.3"
+          sources."@babel/generator-7.9.5"
+          sources."@babel/parser-7.9.4"
+          sources."@babel/traverse-7.9.5"
+          sources."@babel/types-7.9.5"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."@babel/helper-function-name-7.9.5" // {
+        dependencies = [
+          sources."@babel/code-frame-7.8.3"
+          sources."@babel/parser-7.9.4"
+          sources."@babel/template-7.8.6"
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      (sources."@babel/helper-get-function-arity-7.8.3" // {
+        dependencies = [
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      (sources."@babel/helper-hoist-variables-7.8.3" // {
+        dependencies = [
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      (sources."@babel/helper-member-expression-to-functions-7.8.3" // {
+        dependencies = [
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      (sources."@babel/helper-module-imports-7.8.3" // {
+        dependencies = [
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      (sources."@babel/helper-module-transforms-7.9.0" // {
+        dependencies = [
+          sources."@babel/code-frame-7.8.3"
+          sources."@babel/parser-7.9.4"
+          sources."@babel/template-7.8.6"
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      (sources."@babel/helper-optimise-call-expression-7.8.3" // {
+        dependencies = [
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      sources."@babel/helper-plugin-utils-7.8.3"
+      sources."@babel/helper-regex-7.8.3"
+      (sources."@babel/helper-remap-async-to-generator-7.8.3" // {
+        dependencies = [
+          sources."@babel/code-frame-7.8.3"
+          sources."@babel/generator-7.9.5"
+          sources."@babel/parser-7.9.4"
+          sources."@babel/template-7.8.6"
+          sources."@babel/traverse-7.9.5"
+          sources."@babel/types-7.9.5"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."@babel/helper-replace-supers-7.8.6" // {
+        dependencies = [
+          sources."@babel/code-frame-7.8.3"
+          sources."@babel/generator-7.9.5"
+          sources."@babel/parser-7.9.4"
+          sources."@babel/traverse-7.9.5"
+          sources."@babel/types-7.9.5"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."@babel/helper-simple-access-7.8.3" // {
+        dependencies = [
+          sources."@babel/code-frame-7.8.3"
+          sources."@babel/parser-7.9.4"
+          sources."@babel/template-7.8.6"
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      (sources."@babel/helper-split-export-declaration-7.8.3" // {
+        dependencies = [
+          sources."@babel/types-7.9.5"
+        ];
+      })
+      sources."@babel/helper-validator-identifier-7.9.5"
+      (sources."@babel/helper-wrap-function-7.8.3" // {
+        dependencies = [
+          sources."@babel/code-frame-7.8.3"
+          sources."@babel/generator-7.9.5"
+          sources."@babel/parser-7.9.4"
+          sources."@babel/template-7.8.6"
+          sources."@babel/traverse-7.9.5"
+          sources."@babel/types-7.9.5"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."@babel/helpers-7.9.2" // {
+        dependencies = [
+          sources."@babel/code-frame-7.8.3"
+          sources."@babel/generator-7.9.5"
+          sources."@babel/parser-7.9.4"
+          sources."@babel/template-7.8.6"
+          sources."@babel/traverse-7.9.5"
+          sources."@babel/types-7.9.5"
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."@babel/highlight-7.9.0"
+      sources."@babel/parser-7.3.4"
+      sources."@babel/plugin-proposal-async-generator-functions-7.8.3"
+      sources."@babel/plugin-proposal-json-strings-7.8.3"
+      sources."@babel/plugin-proposal-object-rest-spread-7.9.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.8.3"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.8.8"
+      sources."@babel/plugin-syntax-async-generators-7.8.4"
+      sources."@babel/plugin-syntax-flow-7.8.3"
+      sources."@babel/plugin-syntax-json-strings-7.8.3"
+      sources."@babel/plugin-syntax-jsx-7.8.3"
+      sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+      sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
+      sources."@babel/plugin-transform-arrow-functions-7.8.3"
+      sources."@babel/plugin-transform-async-to-generator-7.8.3"
+      sources."@babel/plugin-transform-block-scoped-functions-7.8.3"
+      sources."@babel/plugin-transform-block-scoping-7.8.3"
+      sources."@babel/plugin-transform-classes-7.9.5"
+      sources."@babel/plugin-transform-computed-properties-7.8.3"
+      sources."@babel/plugin-transform-destructuring-7.9.5"
+      sources."@babel/plugin-transform-dotall-regex-7.8.3"
+      sources."@babel/plugin-transform-duplicate-keys-7.8.3"
+      sources."@babel/plugin-transform-exponentiation-operator-7.8.3"
+      sources."@babel/plugin-transform-flow-strip-types-7.3.4"
+      sources."@babel/plugin-transform-for-of-7.9.0"
+      sources."@babel/plugin-transform-function-name-7.8.3"
+      sources."@babel/plugin-transform-literals-7.8.3"
+      sources."@babel/plugin-transform-modules-amd-7.9.0"
+      sources."@babel/plugin-transform-modules-commonjs-7.2.0"
+      sources."@babel/plugin-transform-modules-systemjs-7.9.0"
+      sources."@babel/plugin-transform-modules-umd-7.9.0"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.8.3"
+      sources."@babel/plugin-transform-new-target-7.8.3"
+      sources."@babel/plugin-transform-object-super-7.8.3"
+      sources."@babel/plugin-transform-parameters-7.9.5"
+      sources."@babel/plugin-transform-react-jsx-7.3.0"
+      sources."@babel/plugin-transform-regenerator-7.8.7"
+      sources."@babel/plugin-transform-shorthand-properties-7.8.3"
+      sources."@babel/plugin-transform-spread-7.8.3"
+      sources."@babel/plugin-transform-sticky-regex-7.8.3"
+      sources."@babel/plugin-transform-template-literals-7.8.3"
+      sources."@babel/plugin-transform-typeof-symbol-7.8.4"
+      sources."@babel/plugin-transform-unicode-regex-7.8.3"
+      sources."@babel/preset-env-7.3.4"
+      (sources."@babel/runtime-7.3.4" // {
+        dependencies = [
+          sources."regenerator-runtime-0.12.1"
+        ];
+      })
+      sources."@babel/template-7.2.2"
+      sources."@babel/traverse-7.3.4"
+      sources."@babel/types-7.3.4"
+      sources."@iarna/toml-2.2.5"
+      sources."@mrmlnc/readdir-enhanced-2.2.1"
+      sources."@nodelib/fs.stat-1.1.3"
+      sources."@parcel/fs-1.11.0"
+      sources."@parcel/logger-1.11.1"
+      sources."@parcel/utils-1.11.0"
+      sources."@parcel/watcher-1.12.1"
+      sources."@parcel/workers-1.11.0"
+      sources."@types/q-1.5.2"
+      sources."abab-2.0.3"
+      sources."abbrev-1.1.1"
+      sources."acorn-7.1.1"
+      (sources."acorn-globals-4.3.4" // {
+        dependencies = [
+          sources."acorn-6.4.1"
+        ];
+      })
+      sources."acorn-walk-6.2.0"
+      sources."ajv-6.12.2"
+      sources."alphanum-sort-1.0.2"
+      sources."ansi-regex-3.0.0"
+      sources."ansi-styles-3.2.1"
+      (sources."ansi-to-html-0.6.14" // {
+        dependencies = [
+          sources."entities-1.1.2"
+        ];
+      })
+      (sources."anymatch-2.0.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
+      sources."argparse-1.0.10"
+      sources."arr-diff-4.0.0"
+      sources."arr-flatten-1.1.0"
+      sources."arr-union-3.1.0"
+      sources."array-equal-1.0.0"
+      sources."array-unique-0.3.2"
+      sources."asn1-0.2.4"
+      sources."asn1.js-4.10.1"
+      (sources."assert-1.5.0" // {
+        dependencies = [
+          sources."inherits-2.0.1"
+          sources."util-0.10.3"
+        ];
+      })
+      sources."assert-plus-1.0.0"
+      sources."assign-symbols-1.0.0"
+      sources."async-each-1.0.3"
+      sources."async-limiter-1.0.1"
+      sources."asynckit-0.4.0"
+      sources."atob-2.1.2"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.9.1"
+      sources."babel-plugin-dynamic-import-node-2.3.3"
+      (sources."babel-runtime-6.26.0" // {
+        dependencies = [
+          sources."regenerator-runtime-0.11.1"
+        ];
+      })
+      (sources."babel-types-6.26.0" // {
+        dependencies = [
+          sources."to-fast-properties-1.0.3"
+        ];
+      })
+      sources."babylon-walk-1.0.2"
+      sources."balanced-match-1.0.0"
+      (sources."base-0.11.2" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."is-accessor-descriptor-1.0.0"
+          sources."is-data-descriptor-1.0.0"
+          sources."is-descriptor-1.0.2"
+        ];
+      })
+      sources."base64-js-1.3.1"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."binary-extensions-1.13.1"
+      sources."bindings-1.5.0"
+      sources."bn.js-4.11.8"
+      sources."boolbase-1.0.0"
+      sources."brace-expansion-1.1.11"
+      (sources."braces-2.3.2" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."brfs-1.6.1"
+      sources."brorand-1.1.0"
+      sources."browser-process-hrtime-1.0.0"
+      sources."browserify-aes-1.2.0"
+      sources."browserify-cipher-1.0.1"
+      sources."browserify-des-1.0.2"
+      sources."browserify-rsa-4.0.1"
+      sources."browserify-sign-4.0.4"
+      (sources."browserify-zlib-0.2.0" // {
+        dependencies = [
+          sources."pako-1.0.11"
+        ];
+      })
+      sources."browserslist-4.12.0"
+      sources."buffer-4.9.2"
+      sources."buffer-equal-0.0.1"
+      sources."buffer-from-1.1.1"
+      sources."buffer-xor-1.0.3"
+      sources."builtin-status-codes-3.0.0"
+      sources."cache-base-1.0.1"
+      sources."call-me-maybe-1.0.1"
+      sources."caller-callsite-2.0.0"
+      sources."caller-path-2.0.0"
+      sources."callsites-2.0.0"
+      sources."camelcase-5.3.1"
+      sources."caniuse-api-3.0.0"
+      sources."caniuse-lite-1.0.30001048"
+      sources."caseless-0.12.0"
+      (sources."chalk-2.4.2" // {
+        dependencies = [
+          sources."supports-color-5.5.0"
+        ];
+      })
+      (sources."chokidar-2.1.8" // {
+        dependencies = [
+          sources."fsevents-1.2.12"
+        ];
+      })
+      sources."cipher-base-1.0.4"
+      (sources."class-utils-0.3.6" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+        ];
+      })
+      sources."cli-cursor-2.1.0"
+      sources."cli-spinners-1.3.1"
+      (sources."cliui-5.0.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."clone-2.1.2"
+      sources."clones-1.2.0"
+      sources."coa-2.0.2"
+      sources."collection-visit-1.0.0"
+      sources."color-3.1.2"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."color-string-1.5.3"
+      sources."combined-stream-1.0.8"
+      sources."command-exists-1.2.9"
+      sources."commander-2.20.3"
+      sources."component-emitter-1.3.0"
+      sources."concat-map-0.0.1"
+      sources."concat-stream-1.6.2"
+      sources."config-chain-1.1.12"
+      sources."console-browserify-1.2.0"
+      sources."constants-browserify-1.0.0"
+      sources."convert-source-map-1.7.0"
+      sources."copy-descriptor-0.1.1"
+      sources."core-js-2.6.11"
+      sources."core-util-is-1.0.2"
+      sources."cosmiconfig-5.2.1"
+      sources."create-ecdh-4.0.3"
+      sources."create-hash-1.2.0"
+      sources."create-hmac-1.1.7"
+      sources."cross-spawn-6.0.5"
+      sources."crypto-browserify-3.12.0"
+      sources."css-color-names-0.0.4"
+      sources."css-declaration-sorter-4.0.1"
+      (sources."css-modules-loader-core-1.1.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."ansi-styles-2.2.1"
+          (sources."chalk-1.1.3" // {
+            dependencies = [
+              sources."supports-color-2.0.0"
+            ];
+          })
+          sources."has-flag-1.0.0"
+          sources."postcss-6.0.1"
+          sources."source-map-0.5.7"
+          sources."strip-ansi-3.0.1"
+          sources."supports-color-3.2.3"
+        ];
+      })
+      sources."css-select-2.1.0"
+      sources."css-select-base-adapter-0.1.1"
+      sources."css-selector-tokenizer-0.7.2"
+      sources."css-tree-1.0.0-alpha.37"
+      sources."css-what-3.2.1"
+      sources."cssesc-3.0.0"
+      sources."cssnano-4.1.10"
+      sources."cssnano-preset-default-4.0.7"
+      sources."cssnano-util-get-arguments-4.0.0"
+      sources."cssnano-util-get-match-4.0.0"
+      sources."cssnano-util-raw-cache-4.0.1"
+      sources."cssnano-util-same-parent-4.0.1"
+      (sources."csso-4.0.3" // {
+        dependencies = [
+          sources."css-tree-1.0.0-alpha.39"
+          sources."mdn-data-2.0.6"
+        ];
+      })
+      sources."cssom-0.3.8"
+      sources."cssstyle-1.4.0"
+      sources."dashdash-1.14.1"
+      sources."data-urls-1.1.0"
+      sources."deasync-0.1.19"
+      sources."debug-4.1.1"
+      sources."decamelize-1.2.0"
+      sources."decode-uri-component-0.2.0"
+      sources."deep-is-0.1.3"
+      (sources."defaults-1.0.3" // {
+        dependencies = [
+          sources."clone-1.0.4"
+        ];
+      })
+      sources."define-properties-1.1.3"
+      (sources."define-property-2.0.2" // {
+        dependencies = [
+          sources."is-accessor-descriptor-1.0.0"
+          sources."is-data-descriptor-1.0.0"
+          sources."is-descriptor-1.0.2"
+        ];
+      })
+      sources."delayed-stream-1.0.0"
+      sources."depd-1.1.2"
+      sources."des.js-1.0.1"
+      sources."destroy-1.0.4"
+      sources."diffie-hellman-5.0.3"
+      (sources."dom-serializer-0.2.2" // {
+        dependencies = [
+          sources."domelementtype-2.0.1"
+        ];
+      })
+      sources."domain-browser-1.2.0"
+      sources."domelementtype-1.3.1"
+      sources."domexception-1.0.1"
+      sources."domhandler-2.4.2"
+      sources."domutils-1.7.0"
+      sources."dot-prop-5.2.0"
+      sources."dotenv-5.0.1"
+      sources."dotenv-expand-4.2.0"
+      sources."duplexer2-0.1.4"
+      sources."ecc-jsbn-0.1.2"
+      sources."editorconfig-0.15.3"
+      sources."ee-first-1.1.1"
+      sources."electron-to-chromium-1.3.418"
+      sources."elliptic-6.5.2"
+      sources."elm-hot-1.1.1"
+      sources."emoji-regex-7.0.3"
+      sources."encodeurl-1.0.2"
+      sources."entities-2.0.0"
+      sources."error-ex-1.3.2"
+      sources."es-abstract-1.17.5"
+      sources."es-to-primitive-1.2.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      (sources."escodegen-1.9.1" // {
+        dependencies = [
+          sources."esprima-3.1.3"
+        ];
+      })
+      sources."esprima-4.0.1"
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."etag-1.8.1"
+      sources."events-3.1.0"
+      sources."evp_bytestokey-1.0.3"
+      (sources."expand-brackets-2.1.4" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."extend-3.0.2"
+      (sources."extend-shallow-3.0.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      (sources."extglob-2.0.4" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."extend-shallow-2.0.1"
+          sources."is-accessor-descriptor-1.0.0"
+          sources."is-data-descriptor-1.0.0"
+          sources."is-descriptor-1.0.2"
+        ];
+      })
+      sources."extsprintf-1.3.0"
+      (sources."falafel-2.2.4" // {
+        dependencies = [
+          sources."isarray-2.0.5"
+        ];
+      })
+      sources."fast-deep-equal-3.1.1"
+      sources."fast-glob-2.2.7"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."fastparse-1.1.2"
+      sources."file-uri-to-path-1.0.0"
+      sources."filesize-3.6.1"
+      (sources."fill-range-4.0.0" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."find-elm-dependencies-2.0.2"
+      sources."find-up-2.1.0"
+      sources."firstline-1.2.0"
+      sources."for-in-1.0.2"
+      sources."foreach-2.0.5"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.3"
+      sources."fragment-cache-0.2.1"
+      sources."fresh-0.5.2"
+      sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
+      sources."get-caller-file-2.0.5"
+      sources."get-port-3.2.0"
+      sources."get-value-2.0.6"
+      sources."getpass-0.1.7"
+      sources."glob-7.1.4"
+      (sources."glob-parent-3.1.0" // {
+        dependencies = [
+          sources."is-glob-3.1.0"
+        ];
+      })
+      sources."glob-to-regexp-0.3.0"
+      sources."globals-11.12.0"
+      sources."graceful-fs-4.2.3"
+      sources."grapheme-breaker-0.3.2"
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.3"
+      sources."has-1.0.3"
+      (sources."has-ansi-2.0.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+        ];
+      })
+      sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.1"
+      sources."has-value-1.0.0"
+      (sources."has-values-1.0.0" // {
+        dependencies = [
+          sources."kind-of-4.0.0"
+        ];
+      })
+      sources."hash-base-3.0.4"
+      sources."hash.js-1.1.7"
+      sources."hex-color-regex-1.1.0"
+      sources."hmac-drbg-1.0.1"
+      sources."hsl-regex-1.0.0"
+      sources."hsla-regex-1.0.0"
+      sources."html-comment-regex-1.1.2"
+      sources."html-encoding-sniffer-1.0.2"
+      sources."html-tags-1.2.0"
+      (sources."htmlnano-0.2.5" // {
+        dependencies = [
+          sources."posthtml-0.12.3"
+          sources."terser-4.6.12"
+        ];
+      })
+      (sources."htmlparser2-3.10.1" // {
+        dependencies = [
+          sources."entities-1.1.2"
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."http-errors-1.7.3"
+      sources."http-signature-1.2.0"
+      sources."https-browserify-1.0.0"
+      sources."iconv-lite-0.4.24"
+      sources."icss-replace-symbols-1.1.0"
+      sources."ieee754-1.1.13"
+      sources."import-fresh-2.0.0"
+      sources."indexes-of-1.0.1"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.5"
+      sources."invariant-2.2.4"
+      sources."is-absolute-url-2.1.0"
+      (sources."is-accessor-descriptor-0.1.6" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."is-arrayish-0.2.1"
+      sources."is-binary-path-1.0.1"
+      sources."is-buffer-1.1.6"
+      sources."is-callable-1.1.5"
+      sources."is-color-stop-1.1.0"
+      (sources."is-data-descriptor-0.1.4" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."is-date-object-1.0.2"
+      (sources."is-descriptor-0.1.6" // {
+        dependencies = [
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."is-directory-0.3.1"
+      sources."is-extendable-0.1.1"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-html-1.1.0"
+      (sources."is-number-3.0.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."is-obj-2.0.0"
+      sources."is-plain-object-2.0.4"
+      sources."is-regex-1.0.5"
+      sources."is-resolvable-1.1.0"
+      sources."is-svg-3.0.0"
+      sources."is-symbol-1.0.3"
+      sources."is-typedarray-1.0.0"
+      sources."is-url-1.2.4"
+      sources."is-windows-1.0.2"
+      sources."is-wsl-1.1.0"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isobject-3.0.1"
+      sources."isstream-0.1.2"
+      (sources."js-beautify-1.11.0" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+        ];
+      })
+      sources."js-levenshtein-1.1.6"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.13.1"
+      sources."jsbn-0.1.1"
+      (sources."jsdom-14.1.0" // {
+        dependencies = [
+          sources."acorn-6.4.1"
+          sources."escodegen-1.14.1"
+          sources."ws-6.2.1"
+        ];
+      })
+      sources."jsesc-2.5.2"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."json5-1.0.1"
+      sources."jsprim-1.4.1"
+      sources."kind-of-6.0.3"
+      sources."levn-0.3.0"
+      sources."locate-path-2.0.0"
+      sources."lodash-4.17.15"
+      sources."lodash.clone-4.5.0"
+      sources."lodash.memoize-4.1.2"
+      sources."lodash.sortby-4.7.0"
+      sources."lodash.uniq-4.5.0"
+      sources."log-symbols-2.2.0"
+      sources."loose-envify-1.4.0"
+      sources."lru-cache-4.1.5"
+      sources."magic-string-0.22.5"
+      sources."map-cache-0.2.2"
+      sources."map-visit-1.0.0"
+      sources."md5.js-1.3.5"
+      sources."mdn-data-2.0.4"
+      (sources."merge-source-map-1.0.4" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."merge2-1.3.0"
+      sources."micromatch-3.1.10"
+      sources."miller-rabin-4.0.1"
+      sources."mime-1.6.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."mimic-fn-1.2.0"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."mkdirp-0.5.5"
+      sources."ms-2.1.2"
+      sources."nan-2.14.1"
+      sources."nanomatch-1.2.13"
+      sources."nice-try-1.0.5"
+      sources."node-addon-api-1.7.1"
+      sources."node-elm-compiler-5.0.4"
+      sources."node-forge-0.7.6"
+      (sources."node-libs-browser-2.2.1" // {
+        dependencies = [
+          sources."punycode-1.4.1"
+        ];
+      })
+      sources."node-releases-1.1.53"
+      sources."nopt-4.0.3"
+      sources."normalize-html-whitespace-1.0.0"
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-3.3.0"
+      sources."nth-check-1.0.2"
+      sources."nwsapi-2.2.0"
+      sources."oauth-sign-0.9.0"
+      sources."object-assign-4.1.1"
+      (sources."object-copy-0.1.0" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."object-inspect-1.7.0"
+      sources."object-keys-1.1.1"
+      sources."object-visit-1.0.1"
+      sources."object.assign-4.1.0"
+      sources."object.getownpropertydescriptors-2.1.0"
+      sources."object.pick-1.3.0"
+      sources."object.values-1.1.1"
+      sources."on-finished-2.3.0"
+      sources."once-1.4.0"
+      sources."onetime-2.0.1"
+      sources."opn-5.5.0"
+      sources."optionator-0.8.3"
+      sources."ora-2.1.0"
+      sources."os-browserify-0.3.0"
+      sources."os-homedir-1.0.2"
+      sources."os-tmpdir-1.0.2"
+      sources."osenv-0.1.5"
+      sources."p-limit-1.3.0"
+      sources."p-locate-2.0.0"
+      sources."p-try-1.0.0"
+      sources."pako-0.2.9"
+      (sources."parcel-bundler-1.12.3" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."parse-asn1-5.1.5"
+      sources."parse-json-4.0.0"
+      sources."parse5-5.1.0"
+      sources."parseurl-1.3.3"
+      sources."pascalcase-0.1.1"
+      sources."path-browserify-0.0.1"
+      sources."path-dirname-1.0.2"
+      sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-2.0.1"
+      sources."path-parse-1.0.6"
+      sources."pbkdf2-3.0.17"
+      sources."performance-now-2.1.0"
+      sources."physical-cpu-count-2.0.0"
+      sources."pkg-up-2.0.0"
+      sources."pn-1.1.0"
+      sources."posix-character-classes-0.1.1"
+      sources."postcss-7.0.27"
+      sources."postcss-calc-7.0.2"
+      (sources."postcss-colormin-4.0.3" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-convert-values-4.0.1" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-discard-comments-4.0.2"
+      sources."postcss-discard-duplicates-4.0.2"
+      sources."postcss-discard-empty-4.0.1"
+      sources."postcss-discard-overridden-4.0.1"
+      (sources."postcss-merge-longhand-4.0.11" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-merge-rules-4.0.3" // {
+        dependencies = [
+          sources."postcss-selector-parser-3.1.2"
+        ];
+      })
+      (sources."postcss-minify-font-values-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-minify-gradients-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-minify-params-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-minify-selectors-4.0.2" // {
+        dependencies = [
+          sources."postcss-selector-parser-3.1.2"
+        ];
+      })
+      (sources."postcss-modules-extract-imports-1.1.0" // {
+        dependencies = [
+          sources."postcss-6.0.23"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      (sources."postcss-modules-local-by-default-1.2.0" // {
+        dependencies = [
+          sources."postcss-6.0.23"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      (sources."postcss-modules-scope-1.1.0" // {
+        dependencies = [
+          sources."postcss-6.0.23"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      (sources."postcss-modules-values-1.3.0" // {
+        dependencies = [
+          sources."postcss-6.0.23"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."postcss-normalize-charset-4.0.1"
+      (sources."postcss-normalize-display-values-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-positions-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-repeat-style-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-string-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-timing-functions-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-unicode-4.0.1" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-url-4.0.1" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-normalize-whitespace-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      (sources."postcss-ordered-values-4.1.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-reduce-initial-4.0.3"
+      (sources."postcss-reduce-transforms-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-selector-parser-6.0.2"
+      (sources."postcss-svgo-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-unique-selectors-4.0.1"
+      sources."postcss-value-parser-4.0.3"
+      sources."posthtml-0.11.6"
+      sources."posthtml-parser-0.4.2"
+      sources."posthtml-render-1.2.2"
+      sources."prelude-ls-1.1.2"
+      sources."private-0.1.8"
+      sources."process-0.11.10"
+      sources."process-nextick-args-2.0.1"
+      sources."proto-list-1.2.4"
+      sources."pseudomap-1.0.2"
+      sources."psl-1.8.0"
+      sources."public-encrypt-4.0.3"
+      sources."punycode-2.1.1"
+      sources."purgecss-1.4.2"
+      sources."q-1.5.1"
+      sources."qs-6.5.2"
+      sources."querystring-0.2.0"
+      sources."querystring-es3-0.2.1"
+      sources."quote-stream-1.0.2"
+      sources."randombytes-2.1.0"
+      sources."randomfill-1.0.4"
+      sources."range-parser-1.2.1"
+      sources."readable-stream-2.3.7"
+      sources."readdirp-2.2.1"
+      sources."regenerate-1.4.0"
+      sources."regenerate-unicode-properties-8.2.0"
+      sources."regenerator-runtime-0.13.5"
+      (sources."regenerator-transform-0.14.4" // {
+        dependencies = [
+          sources."@babel/runtime-7.9.2"
+        ];
+      })
+      sources."regex-not-1.0.2"
+      sources."regexpu-core-4.7.0"
+      sources."regjsgen-0.5.1"
+      (sources."regjsparser-0.6.4" // {
+        dependencies = [
+          sources."jsesc-0.5.0"
+        ];
+      })
+      sources."remove-trailing-separator-1.1.0"
+      sources."repeat-element-1.1.3"
+      sources."repeat-string-1.6.1"
+      sources."request-2.88.2"
+      sources."request-promise-core-1.1.3"
+      sources."request-promise-native-1.0.8"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."resolve-1.17.0"
+      sources."resolve-from-3.0.0"
+      sources."resolve-url-0.2.1"
+      sources."restore-cursor-2.0.0"
+      sources."ret-0.1.15"
+      sources."rgb-regex-1.0.1"
+      sources."rgba-regex-1.0.0"
+      sources."rimraf-2.6.3"
+      sources."ripemd160-2.0.2"
+      sources."safe-buffer-5.1.2"
+      sources."safe-regex-1.1.0"
+      sources."safer-buffer-2.1.2"
+      sources."safer-eval-1.3.6"
+      sources."sax-1.2.4"
+      sources."saxes-3.1.11"
+      sources."semver-5.7.1"
+      (sources."send-0.17.1" // {
+        dependencies = [
+          (sources."debug-2.6.9" // {
+            dependencies = [
+              sources."ms-2.0.0"
+            ];
+          })
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serialize-to-js-1.2.2"
+      sources."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
+      (sources."set-value-2.0.1" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."setimmediate-1.0.5"
+      sources."setprototypeof-1.1.1"
+      sources."sha.js-2.4.11"
+      sources."shallow-copy-0.0.1"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."sigmund-1.0.1"
+      sources."signal-exit-3.0.3"
+      (sources."simple-swizzle-0.2.2" // {
+        dependencies = [
+          sources."is-arrayish-0.3.2"
+        ];
+      })
+      (sources."snapdragon-0.8.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          sources."ms-2.0.0"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."snapdragon-node-2.1.1" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."is-accessor-descriptor-1.0.0"
+          sources."is-data-descriptor-1.0.0"
+          sources."is-descriptor-1.0.2"
+        ];
+      })
+      (sources."snapdragon-util-3.0.1" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."source-map-0.6.1"
+      sources."source-map-resolve-0.5.3"
+      sources."source-map-support-0.5.19"
+      sources."source-map-url-0.4.0"
+      sources."split-string-3.1.0"
+      sources."sprintf-js-1.0.3"
+      sources."sshpk-1.16.1"
+      sources."stable-0.1.8"
+      (sources."static-eval-2.0.5" // {
+        dependencies = [
+          sources."escodegen-1.14.1"
+        ];
+      })
+      (sources."static-extend-0.1.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+        ];
+      })
+      (sources."static-module-2.2.5" // {
+        dependencies = [
+          sources."object-inspect-1.4.1"
+        ];
+      })
+      sources."statuses-1.5.0"
+      sources."stealthy-require-1.1.1"
+      sources."stream-browserify-2.0.2"
+      sources."stream-http-2.8.3"
+      (sources."string-width-3.1.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."string.prototype.trimend-1.0.1"
+      sources."string.prototype.trimleft-2.1.2"
+      sources."string.prototype.trimright-2.1.2"
+      sources."string.prototype.trimstart-1.0.1"
+      sources."string_decoder-1.1.1"
+      sources."strip-ansi-4.0.0"
+      (sources."stylehacks-4.0.3" // {
+        dependencies = [
+          sources."postcss-selector-parser-3.1.2"
+        ];
+      })
+      sources."supports-color-6.1.0"
+      sources."svgo-1.3.2"
+      sources."symbol-tree-3.2.4"
+      sources."temp-0.9.0"
+      sources."terser-3.17.0"
+      sources."through2-2.0.5"
+      sources."timers-browserify-2.0.11"
+      sources."timsort-0.3.0"
+      sources."tiny-inflate-1.0.3"
+      sources."to-arraybuffer-1.0.1"
+      sources."to-fast-properties-2.0.0"
+      (sources."to-object-path-0.3.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."to-regex-3.0.2"
+      sources."to-regex-range-2.1.1"
+      sources."toidentifier-1.0.0"
+      sources."tough-cookie-2.5.0"
+      sources."tr46-1.0.1"
+      sources."trim-right-1.0.1"
+      sources."tty-browserify-0.0.0"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      sources."type-check-0.3.2"
+      sources."typedarray-0.0.6"
+      (sources."uncss-0.17.3" // {
+        dependencies = [
+          sources."is-absolute-url-3.0.3"
+        ];
+      })
+      sources."unicode-canonical-property-names-ecmascript-1.0.4"
+      sources."unicode-match-property-ecmascript-1.0.4"
+      sources."unicode-match-property-value-ecmascript-1.2.0"
+      sources."unicode-property-aliases-ecmascript-1.1.0"
+      sources."unicode-trie-0.3.1"
+      sources."union-value-1.0.1"
+      sources."uniq-1.0.1"
+      sources."uniqs-2.0.0"
+      sources."unquote-1.1.1"
+      (sources."unset-value-1.0.0" // {
+        dependencies = [
+          (sources."has-value-0.3.1" // {
+            dependencies = [
+              sources."isobject-2.1.0"
+            ];
+          })
+          sources."has-values-0.1.4"
+        ];
+      })
+      sources."upath-1.2.0"
+      sources."uri-js-4.2.2"
+      sources."urix-0.1.0"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      sources."use-3.1.1"
+      (sources."util-0.11.1" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."util-deprecate-1.0.2"
+      sources."util.promisify-1.0.1"
+      sources."uuid-3.4.0"
+      sources."v8-compile-cache-2.1.0"
+      sources."vendors-1.0.4"
+      sources."verror-1.10.0"
+      sources."vlq-0.2.3"
+      sources."vm-browserify-1.1.2"
+      sources."w3c-hr-time-1.0.2"
+      sources."w3c-xmlserializer-1.1.2"
+      sources."wcwidth-1.0.1"
+      sources."webidl-conversions-4.0.2"
+      sources."whatwg-encoding-1.0.5"
+      sources."whatwg-mimetype-2.3.0"
+      sources."whatwg-url-7.1.0"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      sources."word-wrap-1.2.3"
+      (sources."wrap-ansi-5.1.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."ws-5.2.2"
+      sources."xml-name-validator-3.0.0"
+      sources."xmlchars-2.2.0"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yallist-2.1.2"
+      (sources."yargs-14.2.3" // {
+        dependencies = [
+          sources."find-up-3.0.0"
+          sources."locate-path-3.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-3.0.0"
+          sources."p-try-2.2.0"
+        ];
+      })
+      sources."yargs-parser-15.0.1"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      license = "MIT";
+    };
+    production = false;
+    bypassCache = true;
+    reconstructLock = false;
+  };
+in
+{
+  args = args;
+  sources = sources;
+  tarball = nodeEnv.buildNodeSourceDist args;
+  package = nodeEnv.buildNodePackage args;
+  shell = nodeEnv.buildNodeShell args;
+}
diff --git a/modules/private/websites/tools/games/codenames/registry.dat b/modules/private/websites/tools/games/codenames/registry.dat
new file mode 100644 (file)
index 0000000..52ca989
Binary files /dev/null and b/modules/private/websites/tools/games/codenames/registry.dat differ
diff --git a/modules/private/websites/tools/games/codenames/shell.nix b/modules/private/websites/tools/games/codenames/shell.nix
new file mode 100644 (file)
index 0000000..053696b
--- /dev/null
@@ -0,0 +1,50 @@
+{ pkgs ? import <nixpkgs> {} }: with pkgs;
+let
+  greenapid = callPackage ./greenapid.nix {};
+  frontend = callPackage ./frontend.nix {};
+  nginx_conf = writeText "nginx.conf" ''
+      pid ./nginx.pid;
+      error_log stderr;
+      daemon off;
+      events {
+      }
+      http {
+        include ${mailcap}/etc/nginx/mime.types;
+        server {
+          listen 0.0.0.0:8081;
+          listen [::]:8081;
+          location /api/ {
+            proxy_set_header X-Real-IP  $remote_addr;
+            proxy_set_header Host $host;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_pass http://127.0.0.1:8080/;
+          }
+          location / {
+            root ${frontend};
+            try_files $uri $uri/ /index.html;
+          }
+        }
+      }
+  '';
+in
+pkgs.mkShell {
+  buildInputs = [
+    greenapid
+    frontend
+    python2
+    nginx
+  ];
+  shellHook = ''
+    greenapid &
+    pid=$!
+
+    finish() {
+      kill $pid;
+    }
+
+    trap finish EXIT
+
+    nginx -c ${nginx_conf} -p ./nginx/
+    exit
+  '';
+}
diff --git a/modules/private/websites/tools/games/codenames/wordlists/french.txt b/modules/private/websites/tools/games/codenames/wordlists/french.txt
new file mode 100644 (file)
index 0000000..462ddc4
--- /dev/null
@@ -0,0 +1,694 @@
+ACCIDENT
+ACHAT
+ACNÉ
+ACTION
+ADOLESCENT
+AFRIQUE
+AIGUILLE
+ALLUMER
+ALPES
+ALPHABET
+ALTITUDE
+AMÉRIQUE
+AMI
+AMOUR
+AMPOULE
+ANNIVERSAIRE
+APPÉTIT
+ARAIGNÉE
+ARBRE
+ARC
+ARC-EN-CIEL
+ARGENT
+ARME
+ARMÉE
+ASCENSEUR
+ASIE
+ASSIS
+ASTRONAUTE
+ATCHOUM
+ATHLÈTE
+ATLANTIDE
+AUBE
+AUSTRALIE
+AVEC
+AVENTURE
+AVION
+AVOCAT
+BAC
+BAGUETTE
+BAIN
+BAISER
+BALAI
+BALLE
+BALLON
+BAMBOU
+BANANE
+BANNIR
+BARBE
+BARRIÈRE
+BAS
+BASKET
+BATEAU
+BÂTON
+BATTERIE
+BÉBÉ
+BEETHOVEN
+BÊTE
+BIBERON
+BIÈRE
+BLANC
+BLÉ
+BLEU
+BOB
+BOISSON
+BOÎTE
+BOMBE
+BONBON
+BONNET
+BORD
+BORDEAUX
+BOTTE
+BOUE
+BOUGIE
+BOULE
+BOUTEILLE
+BOUTON
+BRANCHE
+BRAS
+BRAVO
+BRETAGNE
+BRISE
+BROSSE
+BRUIT
+BRUME
+BRUN
+BÛCHE
+BULLE
+BUREAU
+BUT
+CABANE
+CABINE
+CACHER
+CADEAU
+CAFARD
+CAFÉ
+CAISSE
+CALCULER
+CALME
+CAMÉRA
+CAMION
+CAMPING
+CANADA
+CANARD
+CANETTE
+CANINE
+CAP
+CAPITALISME
+CAR
+CAROTTE
+CARRÉ
+CARTE
+CARTON
+CASQUE
+CASSER
+CASSETTE
+CAUCHEMAR
+CAUSE
+CEINTURE
+CELLULE
+CERCLE
+CHAÎNE
+CHAIR
+CHAISE
+CHAMP
+CHAMPION
+CHANT
+CHAPEAU
+CHARBON
+CHARGE
+CHASSE
+CHAT
+CHÂTEAU
+CHAUD
+CHAUSSURE
+CHAUVE
+CHEF
+CHEMISE
+CHÊNE
+CHER
+CHEVAL
+CHEVALIER
+CHEVEU
+CHIEN
+CHIFFRE
+CHINE
+CHOCOLAT
+CHÔMAGE
+CIEL
+CIL
+CINÉMA
+CIRE
+CIRQUE
+CITRON
+CLÉ
+CLOU
+CLOWN
+COACH
+COCCINELLE
+CODE
+CŒUR
+COL
+COLLE
+COLLINE
+COLONNE
+CÔNE
+CONFORT
+CONTINU
+CONTRE
+CONVERSATION
+COPAIN
+COQ
+COQUILLAGE
+CORBEAU
+CORDE
+CORPS
+CÔTE
+COUDE
+COULOIR
+COUP
+COUR
+COURANT
+COURRIER
+COURS
+COURSE
+COURT
+COUTEAU
+COUVERT
+COUVERTURE
+COWBOY
+CRAC
+CRAYON
+CRÈME
+CRITIQUE
+CROCHET
+CROIX
+CROÛTE
+CUILLÈRE
+CUIR
+CUISINE
+CULOTTE
+CYCLE
+DARD
+DÉ
+DEBOUT
+DÉFAUT
+DEHORS
+DÉMOCRATIE
+DENT
+DENTISTE
+DESSIN
+DEVOIR
+DIAMANT
+DICTIONNAIRE
+DIEU
+DINOSAURE
+DISCOURS
+DISQUE
+DIX
+DOCTEUR
+DOIGT
+DOMINO
+DORMIR
+DROIT
+EAU
+ÉCHEC
+ÉCHELLE
+ÉCLAIR
+ÉCOLE
+ÉCRAN
+ÉCRASER
+ÉCRIT
+ÉGLISE
+ÉGOUT
+ÉLECTRICITÉ
+ÉLÉPHANT
+ÉLÈVE
+ELFE
+EMPREINTE
+ENCEINTE
+ÉPICE
+ÉPINE
+ERREUR
+ESPACE
+ESPION
+ESSENCE
+ÉTAT
+ÉTÉ
+ÉTOILE
+ÉTRANGER
+ÉVENTAIL
+ÉVOLUTION
+EXPLOSION
+EXTENSION
+FACE
+FAN
+FARCE
+FATIGUE
+FAUTEUIL
+FEMME
+FENÊTRE
+FER
+FÊTE
+FEU
+FEUILLE
+FIDÈLE
+FIL
+FILLE
+FLAMME
+FLÈCHE
+FLEUR
+FLEUVE
+FOND
+FOOTBALL
+FORÊT
+FORGER
+FOUDRE
+FOUET
+FOUR
+FOURMI
+FROID
+FROMAGE
+FRONT
+FRUIT
+FUIR
+FUTUR
+GARÇON
+GÂTEAU
+GAUCHE
+GAZ
+GAZON
+GEL
+GENOU
+GLACE
+GOMME
+GORGE
+GOUTTE
+GRAND
+GRÈCE
+GRENOUILLE
+GRIPPE
+GRIS
+GROS
+GROUPE
+GUITARE
+HASARD
+HAUT
+HÉLICOPTÈRE
+HERBE
+HEUREUX
+HISTOIRE
+HIVER
+HÔTEL
+HUGO
+HUILE
+HUMIDE
+HUMOUR
+INDICE
+INTERNET
+INVITER
+ITALIE
+JACQUES
+JAMBE
+JAMBON
+JARDIN
+JAUNE
+JEAN
+JEANNE
+JET
+JEU
+JOGGING
+JOUR
+JOURNAL
+JUPITER
+KILO
+KIWI
+LAINE
+LAIT
+LANGUE
+LAPIN
+LATIN
+LAVER
+LECTEUR
+LÉGER
+LENT
+LETTRE
+LIEN
+LIGNE
+LINGE
+LION
+LIT
+LIVRE
+LOI
+LONG
+LOUIS
+LOUP
+LUMIÈRE
+LUNDI
+LUNE
+LUNETTE
+MACHINE
+MACHO
+MAIN
+MAISON
+MAÎTRESSE
+MAL
+MALADIE
+MAMAN
+MAMMOUTH
+MANGER
+MARAIS
+MARC
+MARCHE
+MARIAGE
+MARIE
+MARIÉE
+MARQUE
+MARSEILLE
+MASSE
+MER
+MESSE
+MÈTRE
+MÉTRO
+MIAOU
+MICRO
+MIEUX
+MILLE
+MINE
+MIROIR
+MODERNE
+MOITIÉ
+MONDE
+MONSTRE
+MONTAGNE
+MONTRE
+MORT
+MOTEUR
+MOTO
+MOU
+MOUCHE
+MOULIN
+MOUSTACHE
+MOUTON
+MUR
+MUSCLE
+MUSIQUE
+MYSTÈRE
+NAGE
+NATURE
+NEIGE
+NEUTRE
+NEW YORK
+NEZ
+NID
+NINJA
+NIVEAU
+NOËL
+NŒUD
+NOIR
+NOUS
+NUAGE
+NUIT
+NUMÉRO
+ŒIL
+ŒUF
+OISEAU
+OLYMPIQUE
+OMBRE
+ONGLE
+OR
+ORAL
+ORANGE
+ORDINATEUR
+ORDRE
+ORDURE
+OREILLE
+ORGANE
+ORGUEIL
+OURS
+OUTIL
+OUVERT
+OVALE
+PAIN
+PALAIS
+PANNEAU
+PANTALON
+PANTIN
+PAPA
+PAPIER
+PAPILLON
+PARADIS
+PARC
+PARIS
+PAROLE
+PARTIE
+PASSE
+PÂTE
+PATIN
+PATTE
+PAUL
+PAYER
+PÊCHE
+PEINTURE
+PENDULE
+PENSER
+PERSONNE
+PETIT
+PEUR
+PHILOSOPHE
+PHOTO
+PHRASE
+PIANO
+PIÈCE
+PIED
+PIERRE
+PILE
+PILOTE
+PINCE
+PIOCHE
+PION
+PIRATE
+PIRE
+PISCINE
+PLACE
+PLAFOND
+PLAGE
+PLAIE
+PLAN
+PLANCHE
+PLANÈTE
+PLANTE
+PLASTIQUE
+PLAT
+PLOMB
+PLONGER
+PLUIE
+POCHE
+POÈTE
+POIDS
+POING
+POINT
+POIVRE
+POLICE
+POLITIQUE
+POLLEN
+POLO
+POMME
+POMPE
+PONT
+POPULATION
+PORT
+PORTE
+PORTEFEUILLE
+POSITIF
+POSTE
+POUBELLE
+POULE
+POUPÉE
+POUSSER
+POUSSIÈRE
+POUVOIR
+PRÉHISTOIRE
+PREMIER
+PRÉSENT
+PRESSE
+PRIER
+PRINCESSE
+PRISE
+PRIVÉ
+PROFESSEUR
+PSYCHOLOGIE
+PUBLIC
+PULL
+PUNK
+PUZZLE
+PYJAMA
+QUATRE
+QUINZE
+RACE
+RADIO
+RAISIN
+RAP
+RAYÉ
+RAYON
+RÉFLÉCHIR
+REINE
+REPAS
+REPTILE
+REQUIN
+RÊVE
+RICHE
+RIDEAU
+RIEN
+RIRE
+ROBINET
+ROCHE
+ROI
+ROND
+ROSE
+ROUE
+ROUGE
+ROUILLE
+ROUX
+RUSSIE
+SABLE
+SABRE
+SAC
+SAIN
+SAISON
+SALE
+SALLE
+SALUT
+SAMU
+SANDWICH
+SANG
+SAPIN
+SATELLITE
+SAUMON
+SAUT
+SAVOIR
+SCHTROUMPF
+SCIENCE
+SCOUT
+SEC
+SEINE
+SEL
+SEPT
+SERPENT
+SERRER
+SEXE
+SHAMPOOING
+SIÈCLE
+SIÈGE
+SIESTE
+SILHOUETTE
+SIRÈNE
+SKI
+SOLEIL
+SOMMEIL
+SON
+SONNER
+SORCIÈRE
+SOURD
+SOURIS
+SPORT
+STAR
+STATION
+STYLO
+SUR
+SURFACE
+SUSHI
+SWING
+TABLEAU
+TACHE
+TAILLE
+TANTE
+TAPIS
+TARD
+TAXI
+TÉLÉPHONE
+TÉLÉVISION
+TEMPLE
+TEMPS
+TENNIS
+TÊTE
+THÉ
+TIGRE
+TINTIN
+TISSU
+TITRE
+TOAST
+TOILETTE
+TOKYO
+TOMBE
+TON
+TOP
+TOUCHE
+TOUJOURS
+TOUR
+TOURNOI
+TOUT
+TRACE
+TRAIN
+TRAÎNER
+TRANSPORT
+TRAVAIL
+TRÉSOR
+TRIANGLE
+TRISTE
+TRÔNE
+TROUPEAU
+TSAR
+TUBE
+TUER
+TUPPERWARE
+TUYAU
+TWITTER
+TYPE
+UNIVERSITÉ
+VACHE
+VAGUE
+VAISSELLE
+VALEUR
+VER
+VERDICT
+VERRE
+VERS
+VERT
+VESTE
+VIANDE
+VIDE
+VIE
+VIEUX
+VILLE
+VIN
+VINGT
+VIOLON
+VIPÈRE
+VISION
+VITE
+VIVE
+VŒU
+VOILE
+VOISIN
+VOITURE
+VOL
+VOLUME
+VOTE
+VOULOIR
+VOYAGE
+ZEN
+ZÉRO
+ZODIAQUE
+ZONE
+ZOO
index f97b3f39e95a37d3791112cf80ab4dd8f1ca529c..e26df76e2aa0f73f550661e82f1ef13ce7824ffc 100644 (file)
@@ -124,6 +124,14 @@ services:
         logo: "assets/tools/mgoblin.ico"
         url: "https://mgoblin.immae.eu"
         target: '_blank'
+  - name: "Games"
+    icon: "fas fa-gamepad"
+    items:
+      - name: "Codenames"
+        logo: "assets/tools/games_codenames.png"
+        #source: https://github.com/jbowens/codenamesgreen
+        url: "https://codenames.games.immae.eu/"
+        target: '_blank'
   - name: "Development"
     icon: "fas fa-code-branch"
     items:
diff --git a/modules/private/websites/tools/tools/landing/icons/games_codenames.png b/modules/private/websites/tools/tools/landing/icons/games_codenames.png
new file mode 100644 (file)
index 0000000..0b2729e
Binary files /dev/null and b/modules/private/websites/tools/tools/landing/icons/games_codenames.png differ