diff -pruN 0.32.1+ds+~cs9.4.17-2/debian/changelog 0.32.1+repack1+~cs5.2.1-1/debian/changelog
--- 0.32.1+ds+~cs9.4.17-2/debian/changelog	2022-07-25 09:06:20.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/debian/changelog	2022-08-02 06:31:40.000000000 +0000
@@ -1,3 +1,9 @@
+node-rollup-plugin-typescript2 (0.32.1+repack1+~cs5.2.1-1) unstable; urgency=medium
+
+  * Drop component graphlib and repack (Closes: #1016501)
+
+ -- Yadd <yadd@debian.org>  Tue, 02 Aug 2022 08:31:40 +0200
+
 node-rollup-plugin-typescript2 (0.32.1+ds+~cs9.4.17-2) unstable; urgency=medium
 
   * Source-only upload
diff -pruN 0.32.1+ds+~cs9.4.17-2/debian/control 0.32.1+repack1+~cs5.2.1-1/debian/control
--- 0.32.1+ds+~cs9.4.17-2/debian/control	2022-07-25 09:06:20.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/debian/control	2022-08-02 06:25:28.000000000 +0000
@@ -11,6 +11,7 @@ Build-Depends: debhelper-compat (= 13)
  , node-colors
  , node-find-cache-dir
  , node-fs-extra
+ , node-graphlib
  , node-lodash
  , node-resolve
  , node-rollup-pluginutils
@@ -21,6 +22,7 @@ Build-Depends: debhelper-compat (= 13)
  , node-semver <!nocheck>
  , node-tslib <!nocheck>
  , node-typescript
+ , node-types-graphlib
  , node-yarn-tool-resolve-package
  , rollup
  , ts-jest <!nocheck>
@@ -36,6 +38,7 @@ Architecture: all
 Depends: ${misc:Depends}
  , node-find-cache-dir
  , node-fs-extra
+ , node-graphlib
  , node-lodash
  , node-resolve
  , node-rollup-pluginutils
diff -pruN 0.32.1+ds+~cs9.4.17-2/debian/copyright 0.32.1+repack1+~cs5.2.1-1/debian/copyright
--- 0.32.1+ds+~cs9.4.17-2/debian/copyright	2022-07-01 16:31:47.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/debian/copyright	2022-08-02 06:04:50.000000000 +0000
@@ -4,10 +4,7 @@ Upstream-Contact: https://github.com/ezo
 Source: https://github.com/ezolenko/rollup-plugin-typescript2
  https://github.com/puleos/object-hash/tags
  https://registry.npmjs.org/@types/object-hash
- https://github.com/dagrejs/graphlib/tags
- https://registry.npmjs.org/@types/graphlib
 Files-Excluded: dist
-Files-Excluded-graphlib: dist
 Files-Excluded-object-hash: dist
 
 Files: *
@@ -19,14 +16,6 @@ Copyright: 2022 Roland Mas <lolando@debi
  2022 Yadd <yadd@debian.org>
 License: Expat
 
-Files: graphlib/*
-Copyright: 2012-2014 Chris Pettitt
-License: Expat
-
-Files: graphlib/index.js
-Copyright: 2014 Chris Pettitt
-License: BSD-3-Clause
-
 Files: object-hash/*
 Copyright: 2014 object-hash contributors
 License: Expat
diff -pruN 0.32.1+ds+~cs9.4.17-2/debian/gbp.conf 0.32.1+repack1+~cs5.2.1-1/debian/gbp.conf
--- 0.32.1+ds+~cs9.4.17-2/debian/gbp.conf	2022-07-01 16:24:50.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/debian/gbp.conf	2022-08-02 06:04:27.000000000 +0000
@@ -2,4 +2,4 @@
 pristine-tar=True
 filter=[ '.gitignore', '.travis.yml', '.git*' ]
 debian-branch=debian/master
-component=['object-hash', 'types-object-hash', 'graphlib', 'types-graphlib']
+component=['object-hash', 'types-object-hash']
diff -pruN 0.32.1+ds+~cs9.4.17-2/debian/source/lintian-overrides 0.32.1+repack1+~cs5.2.1-1/debian/source/lintian-overrides
--- 0.32.1+ds+~cs9.4.17-2/debian/source/lintian-overrides	2022-07-01 16:44:30.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/debian/source/lintian-overrides	2022-08-02 06:29:50.000000000 +0000
@@ -1,5 +1,4 @@
 # Match types-*/*
-add-component-copyright types-graphlib *
 add-component-copyright types-object-hash *
 
 # Doc
diff -pruN 0.32.1+ds+~cs9.4.17-2/debian/watch 0.32.1+repack1+~cs5.2.1-1/debian/watch
--- 0.32.1+ds+~cs9.4.17-2/debian/watch	2022-07-01 16:24:50.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/debian/watch	2022-08-02 06:04:27.000000000 +0000
@@ -17,14 +17,3 @@ filenamemangle=s/.*?(\d[\d\.-]*@ARCHIVE_
 opts="searchmode=plain,component=types-object-hash,ctype=nodejs,pgpmode=none,filenamemangle=s/^.*?(\d[\d\.-]*@ARCHIVE_EXT@)/node-types-object-hash-$1/" \
  https://registry.npmjs.org/@types/object-hash https://registry.npmjs.org/@types/object-hash/-/object-hash-([\d\.]+)@ARCHIVE_EXT@ checksum
 
-opts=\
-component=graphlib,\
-ctype=nodejs,\
-dversionmangle=auto,\
-filenamemangle=s/.*?(\d[\d\.-]*@ARCHIVE_EXT@)/node-graphlib-$1/ \
- https://github.com/dagrejs/graphlib/tags .*/archive.*/v?([\d\.]+).tar.gz checksum
-
-# It is not recommended use npmregistry. Please investigate more.
-# Take a look at https://wiki.debian.org/debian/watch/
-opts="searchmode=plain,component=types-graphlib,ctype=nodejs,pgpmode=none,filenamemangle=s/^.*?(\d[\d\.-]*@ARCHIVE_EXT@)/node-types-graphlib-$1/" \
- https://registry.npmjs.org/@types/graphlib https://registry.npmjs.org/@types/graphlib/-/graphlib-([\d\.]+)@ARCHIVE_EXT@ checksum
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/bower.json 0.32.1+repack1+~cs5.2.1-1/graphlib/bower.json
--- 0.32.1+ds+~cs9.4.17-2/graphlib/bower.json	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/bower.json	1970-01-01 00:00:00.000000000 +0000
@@ -1,25 +0,0 @@
-{
-  "name": "graphlib",
-  "version": "2.1.8",
-  "main": [
-    "dist/graphlib.core.js"
-  ],
-  "ignore": [
-    ".*",
-    "README.md",
-    "CHANGELOG.md",
-    "Makefile",
-    "browser.js",
-    "dist/graphlib.js",
-    "dist/graphlib.min.js",
-    "index.js",
-    "karma*",
-    "lib/**",
-    "package.json",
-    "src/**",
-    "test/**"
-  ],
-  "dependencies": {
-    "lodash": "^4.17.15"
-  }
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/.eslintrc.json 0.32.1+repack1+~cs5.2.1-1/graphlib/.eslintrc.json
--- 0.32.1+ds+~cs9.4.17-2/graphlib/.eslintrc.json	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/.eslintrc.json	1970-01-01 00:00:00.000000000 +0000
@@ -1,13 +0,0 @@
-{
-  "env": {
-    "browser": true,
-    "node": true,
-    "mocha": true
-  },
-  "extends": "eslint:recommended",
-  "rules": {
-    "indent": [ "error", 2 ],
-    "linebreak-style": [ "error", "unix" ],
-    "semi": [ "error", "always" ]
-  }
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/.gitignore 0.32.1+repack1+~cs5.2.1-1/graphlib/.gitignore
--- 0.32.1+ds+~cs9.4.17-2/graphlib/.gitignore	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/.gitignore	1970-01-01 00:00:00.000000000 +0000
@@ -1,3 +0,0 @@
-/build
-/node_modules
-/.vscode
\ No newline at end of file
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/index.js 0.32.1+repack1+~cs5.2.1-1/graphlib/index.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/index.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/index.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,38 +0,0 @@
-/**
- * Copyright (c) 2014, Chris Pettitt
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * 3. Neither the name of the copyright holder nor the names of its contributors
- * may be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-var lib = require("./lib");
-
-module.exports = {
-  Graph: lib.Graph,
-  json: require("./lib/json"),
-  alg: require("./lib/alg"),
-  version: lib.version
-};
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/.jshintrc 0.32.1+repack1+~cs5.2.1-1/graphlib/.jshintrc
--- 0.32.1+ds+~cs9.4.17-2/graphlib/.jshintrc	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/.jshintrc	1970-01-01 00:00:00.000000000 +0000
@@ -1,25 +0,0 @@
-{
-  "camelcase": true,
-  "eqeqeq": true,
-  "expr": true,
-  "freeze": true,
-  "immed": true,
-  "newcap": true,
-  "noarg": true,
-  "quotmark": true,
-  "trailing": true,
-  "undef": true,
-  "unused": true,
-
-  "laxbreak": true,
-
-  "node": true,
-
-  "globals": {
-      "beforeEach": false,
-      "describe": false,
-      "it": false,
-      "Map": true,
-      "Set": true
-  }
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/karma.amd.conf.js 0.32.1+repack1+~cs5.2.1-1/graphlib/karma.amd.conf.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/karma.amd.conf.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/karma.amd.conf.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,71 +0,0 @@
-// Karma configuration
-// Generated on Sat Oct 18 2014 17:38:05 GMT-0700 (PDT)
-
-module.exports = function(config) {
-  config.set({
-
-    // base path that will be used to resolve all patterns (eg. files, exclude)
-    basePath: '',
-
-
-    // frameworks to use
-    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
-    frameworks: ['mocha', 'requirejs'],
-
-
-    // list of files / patterns to load in the browser
-    files: [
-      {pattern: 'node_modules/chai/chai.js', included: false},
-      {pattern: 'node_modules/lodash/lodash.js', included: false},
-      {pattern: 'build/graphlib*.js', included: false},
-      {pattern: 'test/bundle.amd-test.js', included: false},
-      'test/test-main.js'
-    ],
-
-
-    // list of files to exclude
-    exclude: [
-    ],
-
-
-    // preprocess matching files before serving them to the browser
-    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
-    preprocessors: {
-    },
-
-
-    // test results reporter to use
-    // possible values: 'dots', 'progress'
-    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
-    reporters: ['progress'],
-
-    // web server port
-    port: 9876,
-
-
-    // enable / disable colors in the output (reporters and logs)
-    colors: true,
-
-
-    // level of logging
-    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
-    logLevel: config.LOG_INFO,
-
-
-    // enable / disable watching file and executing tests whenever any file changes
-    autoWatch: true,
-
-
-    // start these browsers
-    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
-    browsers: ['Chrome', 'Firefox', 'PhantomJS'],
-
-    plugins: [
-      "karma-*"
-    ],
-
-    // Continuous Integration mode
-    // if true, Karma captures browsers, runs the tests and exits
-    singleRun: false
-  });
-};
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/karma.conf.js 0.32.1+repack1+~cs5.2.1-1/graphlib/karma.conf.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/karma.conf.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/karma.conf.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,68 +0,0 @@
-// Karma configuration
-// Generated on Sat Oct 18 2014 17:38:05 GMT-0700 (PDT)
-
-module.exports = function(config) {
-  config.set({
-
-    // base path that will be used to resolve all patterns (eg. files, exclude)
-    basePath: '',
-
-
-    // frameworks to use
-    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
-    frameworks: ['mocha'],
-
-
-    // list of files / patterns to load in the browser
-    files: [
-      'build/graphlib.js',
-
-      'node_modules/chai/chai.js',
-      'test/bundle-test.js'
-    ],
-
-
-    // list of files to exclude
-    exclude: [
-    ],
-
-
-    // preprocess matching files before serving them to the browser
-    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
-    preprocessors: {
-    },
-
-
-    // test results reporter to use
-    // possible values: 'dots', 'progress'
-    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
-    reporters: ['progress'],
-
-
-    // web server port
-    port: 9876,
-
-
-    // enable / disable colors in the output (reporters and logs)
-    colors: true,
-
-
-    // level of logging
-    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
-    logLevel: config.LOG_INFO,
-
-
-    // enable / disable watching file and executing tests whenever any file changes
-    autoWatch: true,
-
-
-    // start these browsers
-    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
-    browsers: ['Chrome', 'Firefox', 'PhantomJS'],
-
-
-    // Continuous Integration mode
-    // if true, Karma captures browsers, runs the tests and exits
-    singleRun: false
-  });
-};
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/karma.core.conf.js 0.32.1+repack1+~cs5.2.1-1/graphlib/karma.core.conf.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/karma.core.conf.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/karma.core.conf.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,69 +0,0 @@
-// Karma configuration
-// Generated on Sat Oct 18 2014 17:38:05 GMT-0700 (PDT)
-
-module.exports = function(config) {
-  config.set({
-
-    // base path that will be used to resolve all patterns (eg. files, exclude)
-    basePath: '',
-
-
-    // frameworks to use
-    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
-    frameworks: ['mocha'],
-
-
-    // list of files / patterns to load in the browser
-    files: [
-      'node_modules/lodash/lodash.js',
-      'build/graphlib.core.js',
-
-      'node_modules/chai/chai.js',
-      'test/bundle-test.js'
-    ],
-
-
-    // list of files to exclude
-    exclude: [
-    ],
-
-
-    // preprocess matching files before serving them to the browser
-    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
-    preprocessors: {
-    },
-
-
-    // test results reporter to use
-    // possible values: 'dots', 'progress'
-    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
-    reporters: ['progress'],
-
-
-    // web server port
-    port: 9876,
-
-
-    // enable / disable colors in the output (reporters and logs)
-    colors: true,
-
-
-    // level of logging
-    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
-    logLevel: config.LOG_INFO,
-
-
-    // enable / disable watching file and executing tests whenever any file changes
-    autoWatch: true,
-
-
-    // start these browsers
-    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
-    browsers: ['Chrome', 'Firefox', 'PhantomJS'],
-
-
-    // Continuous Integration mode
-    // if true, Karma captures browsers, runs the tests and exits
-    singleRun: false
-  });
-};
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/components.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/components.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/components.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/components.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,27 +0,0 @@
-var _ = require("../lodash");
-
-module.exports = components;
-
-function components(g) {
-  var visited = {};
-  var cmpts = [];
-  var cmpt;
-
-  function dfs(v) {
-    if (_.has(visited, v)) return;
-    visited[v] = true;
-    cmpt.push(v);
-    _.each(g.successors(v), dfs);
-    _.each(g.predecessors(v), dfs);
-  }
-
-  _.each(g.nodes(), function(v) {
-    cmpt = [];
-    dfs(v);
-    if (cmpt.length) {
-      cmpts.push(cmpt);
-    }
-  });
-
-  return cmpts;
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/dfs.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/dfs.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/dfs.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/dfs.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,42 +0,0 @@
-var _ = require("../lodash");
-
-module.exports = dfs;
-
-/*
- * A helper that preforms a pre- or post-order traversal on the input graph
- * and returns the nodes in the order they were visited. If the graph is
- * undirected then this algorithm will navigate using neighbors. If the graph
- * is directed then this algorithm will navigate using successors.
- *
- * Order must be one of "pre" or "post".
- */
-function dfs(g, vs, order) {
-  if (!_.isArray(vs)) {
-    vs = [vs];
-  }
-
-  var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);
-
-  var acc = [];
-  var visited = {};
-  _.each(vs, function(v) {
-    if (!g.hasNode(v)) {
-      throw new Error("Graph does not have node: " + v);
-    }
-
-    doDfs(g, v, order === "post", visited, navigation, acc);
-  });
-  return acc;
-}
-
-function doDfs(g, v, postorder, visited, navigation, acc) {
-  if (!_.has(visited, v)) {
-    visited[v] = true;
-
-    if (!postorder) { acc.push(v); }
-    _.each(navigation(v), function(w) {
-      doDfs(g, w, postorder, visited, navigation, acc);
-    });
-    if (postorder) { acc.push(v); }
-  }
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/dijkstra-all.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/dijkstra-all.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/dijkstra-all.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/dijkstra-all.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,10 +0,0 @@
-var dijkstra = require("./dijkstra");
-var _ = require("../lodash");
-
-module.exports = dijkstraAll;
-
-function dijkstraAll(g, weightFunc, edgeFunc) {
-  return _.transform(g.nodes(), function(acc, v) {
-    acc[v] = dijkstra(g, v, weightFunc, edgeFunc);
-  }, {});
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/dijkstra.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/dijkstra.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/dijkstra.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/dijkstra.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,54 +0,0 @@
-var _ = require("../lodash");
-var PriorityQueue = require("../data/priority-queue");
-
-module.exports = dijkstra;
-
-var DEFAULT_WEIGHT_FUNC = _.constant(1);
-
-function dijkstra(g, source, weightFn, edgeFn) {
-  return runDijkstra(g, String(source),
-    weightFn || DEFAULT_WEIGHT_FUNC,
-    edgeFn || function(v) { return g.outEdges(v); });
-}
-
-function runDijkstra(g, source, weightFn, edgeFn) {
-  var results = {};
-  var pq = new PriorityQueue();
-  var v, vEntry;
-
-  var updateNeighbors = function(edge) {
-    var w = edge.v !== v ? edge.v : edge.w;
-    var wEntry = results[w];
-    var weight = weightFn(edge);
-    var distance = vEntry.distance + weight;
-
-    if (weight < 0) {
-      throw new Error("dijkstra does not allow negative edge weights. " +
-                      "Bad edge: " + edge + " Weight: " + weight);
-    }
-
-    if (distance < wEntry.distance) {
-      wEntry.distance = distance;
-      wEntry.predecessor = v;
-      pq.decrease(w, distance);
-    }
-  };
-
-  g.nodes().forEach(function(v) {
-    var distance = v === source ? 0 : Number.POSITIVE_INFINITY;
-    results[v] = { distance: distance };
-    pq.add(v, distance);
-  });
-
-  while (pq.size() > 0) {
-    v = pq.removeMin();
-    vEntry = results[v];
-    if (vEntry.distance === Number.POSITIVE_INFINITY) {
-      break;
-    }
-
-    edgeFn(v).forEach(updateNeighbors);
-  }
-
-  return results;
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/find-cycles.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/find-cycles.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/find-cycles.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/find-cycles.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,10 +0,0 @@
-var _ = require("../lodash");
-var tarjan = require("./tarjan");
-
-module.exports = findCycles;
-
-function findCycles(g) {
-  return _.filter(tarjan(g), function(cmpt) {
-    return cmpt.length > 1 || (cmpt.length === 1 && g.hasEdge(cmpt[0], cmpt[0]));
-  });
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/floyd-warshall.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/floyd-warshall.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/floyd-warshall.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/floyd-warshall.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,50 +0,0 @@
-var _ = require("../lodash");
-
-module.exports = floydWarshall;
-
-var DEFAULT_WEIGHT_FUNC = _.constant(1);
-
-function floydWarshall(g, weightFn, edgeFn) {
-  return runFloydWarshall(g,
-    weightFn || DEFAULT_WEIGHT_FUNC,
-    edgeFn || function(v) { return g.outEdges(v); });
-}
-
-function runFloydWarshall(g, weightFn, edgeFn) {
-  var results = {};
-  var nodes = g.nodes();
-
-  nodes.forEach(function(v) {
-    results[v] = {};
-    results[v][v] = { distance: 0 };
-    nodes.forEach(function(w) {
-      if (v !== w) {
-        results[v][w] = { distance: Number.POSITIVE_INFINITY };
-      }
-    });
-    edgeFn(v).forEach(function(edge) {
-      var w = edge.v === v ? edge.w : edge.v;
-      var d = weightFn(edge);
-      results[v][w] = { distance: d, predecessor: v };
-    });
-  });
-
-  nodes.forEach(function(k) {
-    var rowK = results[k];
-    nodes.forEach(function(i) {
-      var rowI = results[i];
-      nodes.forEach(function(j) {
-        var ik = rowI[k];
-        var kj = rowK[j];
-        var ij = rowI[j];
-        var altDistance = ik.distance + kj.distance;
-        if (altDistance < ij.distance) {
-          ij.distance = altDistance;
-          ij.predecessor = kj.predecessor;
-        }
-      });
-    });
-  });
-
-  return results;
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/index.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/index.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/index.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/index.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,13 +0,0 @@
-module.exports = {
-  components: require("./components"),
-  dijkstra: require("./dijkstra"),
-  dijkstraAll: require("./dijkstra-all"),
-  findCycles: require("./find-cycles"),
-  floydWarshall: require("./floyd-warshall"),
-  isAcyclic: require("./is-acyclic"),
-  postorder: require("./postorder"),
-  preorder: require("./preorder"),
-  prim: require("./prim"),
-  tarjan: require("./tarjan"),
-  topsort: require("./topsort")
-};
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/is-acyclic.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/is-acyclic.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/is-acyclic.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/is-acyclic.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,15 +0,0 @@
-var topsort = require("./topsort");
-
-module.exports = isAcyclic;
-
-function isAcyclic(g) {
-  try {
-    topsort(g);
-  } catch (e) {
-    if (e instanceof topsort.CycleException) {
-      return false;
-    }
-    throw e;
-  }
-  return true;
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/postorder.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/postorder.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/postorder.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/postorder.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-var dfs = require("./dfs");
-
-module.exports = postorder;
-
-function postorder(g, vs) {
-  return dfs(g, vs, "post");
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/preorder.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/preorder.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/preorder.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/preorder.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-var dfs = require("./dfs");
-
-module.exports = preorder;
-
-function preorder(g, vs) {
-  return dfs(g, vs, "pre");
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/prim.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/prim.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/prim.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/prim.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,52 +0,0 @@
-var _ = require("../lodash");
-var Graph = require("../graph");
-var PriorityQueue = require("../data/priority-queue");
-
-module.exports = prim;
-
-function prim(g, weightFunc) {
-  var result = new Graph();
-  var parents = {};
-  var pq = new PriorityQueue();
-  var v;
-
-  function updateNeighbors(edge) {
-    var w = edge.v === v ? edge.w : edge.v;
-    var pri = pq.priority(w);
-    if (pri !== undefined) {
-      var edgeWeight = weightFunc(edge);
-      if (edgeWeight < pri) {
-        parents[w] = v;
-        pq.decrease(w, edgeWeight);
-      }
-    }
-  }
-
-  if (g.nodeCount() === 0) {
-    return result;
-  }
-
-  _.each(g.nodes(), function(v) {
-    pq.add(v, Number.POSITIVE_INFINITY);
-    result.setNode(v);
-  });
-
-  // Start from an arbitrary node
-  pq.decrease(g.nodes()[0], 0);
-
-  var init = false;
-  while (pq.size() > 0) {
-    v = pq.removeMin();
-    if (_.has(parents, v)) {
-      result.setEdge(v, parents[v]);
-    } else if (init) {
-      throw new Error("Input graph is not connected: " + g);
-    } else {
-      init = true;
-    }
-
-    g.nodeEdges(v).forEach(updateNeighbors);
-  }
-
-  return result;
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/tarjan.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/tarjan.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/tarjan.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/tarjan.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,47 +0,0 @@
-var _ = require("../lodash");
-
-module.exports = tarjan;
-
-function tarjan(g) {
-  var index = 0;
-  var stack = [];
-  var visited = {}; // node id -> { onStack, lowlink, index }
-  var results = [];
-
-  function dfs(v) {
-    var entry = visited[v] = {
-      onStack: true,
-      lowlink: index,
-      index: index++
-    };
-    stack.push(v);
-
-    g.successors(v).forEach(function(w) {
-      if (!_.has(visited, w)) {
-        dfs(w);
-        entry.lowlink = Math.min(entry.lowlink, visited[w].lowlink);
-      } else if (visited[w].onStack) {
-        entry.lowlink = Math.min(entry.lowlink, visited[w].index);
-      }
-    });
-
-    if (entry.lowlink === entry.index) {
-      var cmpt = [];
-      var w;
-      do {
-        w = stack.pop();
-        visited[w].onStack = false;
-        cmpt.push(w);
-      } while (v !== w);
-      results.push(cmpt);
-    }
-  }
-
-  g.nodes().forEach(function(v) {
-    if (!_.has(visited, v)) {
-      dfs(v);
-    }
-  });
-
-  return results;
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/topsort.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/topsort.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/alg/topsort.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/alg/topsort.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,35 +0,0 @@
-var _ = require("../lodash");
-
-module.exports = topsort;
-topsort.CycleException = CycleException;
-
-function topsort(g) {
-  var visited = {};
-  var stack = {};
-  var results = [];
-
-  function visit(node) {
-    if (_.has(stack, node)) {
-      throw new CycleException();
-    }
-
-    if (!_.has(visited, node)) {
-      stack[node] = true;
-      visited[node] = true;
-      _.each(g.predecessors(node), visit);
-      delete stack[node];
-      results.push(node);
-    }
-  }
-
-  _.each(g.sinks(), visit);
-
-  if (_.size(visited) !== g.nodeCount()) {
-    throw new CycleException();
-  }
-
-  return results;
-}
-
-function CycleException() {}
-CycleException.prototype = new Error(); // must be an instance of Error to pass testing
\ No newline at end of file
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/data/priority-queue.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/data/priority-queue.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/data/priority-queue.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/data/priority-queue.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,152 +0,0 @@
-var _ = require("../lodash");
-
-module.exports = PriorityQueue;
-
-/**
- * A min-priority queue data structure. This algorithm is derived from Cormen,
- * et al., "Introduction to Algorithms". The basic idea of a min-priority
- * queue is that you can efficiently (in O(1) time) get the smallest key in
- * the queue. Adding and removing elements takes O(log n) time. A key can
- * have its priority decreased in O(log n) time.
- */
-function PriorityQueue() {
-  this._arr = [];
-  this._keyIndices = {};
-}
-
-/**
- * Returns the number of elements in the queue. Takes `O(1)` time.
- */
-PriorityQueue.prototype.size = function() {
-  return this._arr.length;
-};
-
-/**
- * Returns the keys that are in the queue. Takes `O(n)` time.
- */
-PriorityQueue.prototype.keys = function() {
-  return this._arr.map(function(x) { return x.key; });
-};
-
-/**
- * Returns `true` if **key** is in the queue and `false` if not.
- */
-PriorityQueue.prototype.has = function(key) {
-  return _.has(this._keyIndices, key);
-};
-
-/**
- * Returns the priority for **key**. If **key** is not present in the queue
- * then this function returns `undefined`. Takes `O(1)` time.
- *
- * @param {Object} key
- */
-PriorityQueue.prototype.priority = function(key) {
-  var index = this._keyIndices[key];
-  if (index !== undefined) {
-    return this._arr[index].priority;
-  }
-};
-
-/**
- * Returns the key for the minimum element in this queue. If the queue is
- * empty this function throws an Error. Takes `O(1)` time.
- */
-PriorityQueue.prototype.min = function() {
-  if (this.size() === 0) {
-    throw new Error("Queue underflow");
-  }
-  return this._arr[0].key;
-};
-
-/**
- * Inserts a new key into the priority queue. If the key already exists in
- * the queue this function returns `false`; otherwise it will return `true`.
- * Takes `O(n)` time.
- *
- * @param {Object} key the key to add
- * @param {Number} priority the initial priority for the key
- */
-PriorityQueue.prototype.add = function(key, priority) {
-  var keyIndices = this._keyIndices;
-  key = String(key);
-  if (!_.has(keyIndices, key)) {
-    var arr = this._arr;
-    var index = arr.length;
-    keyIndices[key] = index;
-    arr.push({key: key, priority: priority});
-    this._decrease(index);
-    return true;
-  }
-  return false;
-};
-
-/**
- * Removes and returns the smallest key in the queue. Takes `O(log n)` time.
- */
-PriorityQueue.prototype.removeMin = function() {
-  this._swap(0, this._arr.length - 1);
-  var min = this._arr.pop();
-  delete this._keyIndices[min.key];
-  this._heapify(0);
-  return min.key;
-};
-
-/**
- * Decreases the priority for **key** to **priority**. If the new priority is
- * greater than the previous priority, this function will throw an Error.
- *
- * @param {Object} key the key for which to raise priority
- * @param {Number} priority the new priority for the key
- */
-PriorityQueue.prototype.decrease = function(key, priority) {
-  var index = this._keyIndices[key];
-  if (priority > this._arr[index].priority) {
-    throw new Error("New priority is greater than current priority. " +
-        "Key: " + key + " Old: " + this._arr[index].priority + " New: " + priority);
-  }
-  this._arr[index].priority = priority;
-  this._decrease(index);
-};
-
-PriorityQueue.prototype._heapify = function(i) {
-  var arr = this._arr;
-  var l = 2 * i;
-  var r = l + 1;
-  var largest = i;
-  if (l < arr.length) {
-    largest = arr[l].priority < arr[largest].priority ? l : largest;
-    if (r < arr.length) {
-      largest = arr[r].priority < arr[largest].priority ? r : largest;
-    }
-    if (largest !== i) {
-      this._swap(i, largest);
-      this._heapify(largest);
-    }
-  }
-};
-
-PriorityQueue.prototype._decrease = function(index) {
-  var arr = this._arr;
-  var priority = arr[index].priority;
-  var parent;
-  while (index !== 0) {
-    parent = index >> 1;
-    if (arr[parent].priority < priority) {
-      break;
-    }
-    this._swap(index, parent);
-    index = parent;
-  }
-};
-
-PriorityQueue.prototype._swap = function(i, j) {
-  var arr = this._arr;
-  var keyIndices = this._keyIndices;
-  var origArrI = arr[i];
-  var origArrJ = arr[j];
-  arr[i] = origArrJ;
-  arr[j] = origArrI;
-  keyIndices[origArrJ.key] = i;
-  keyIndices[origArrI.key] = j;
-};
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/graph.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/graph.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/graph.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/graph.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,532 +0,0 @@
-"use strict";
-
-var _ = require("./lodash");
-
-module.exports = Graph;
-
-var DEFAULT_EDGE_NAME = "\x00";
-var GRAPH_NODE = "\x00";
-var EDGE_KEY_DELIM = "\x01";
-
-// Implementation notes:
-//
-//  * Node id query functions should return string ids for the nodes
-//  * Edge id query functions should return an "edgeObj", edge object, that is
-//    composed of enough information to uniquely identify an edge: {v, w, name}.
-//  * Internally we use an "edgeId", a stringified form of the edgeObj, to
-//    reference edges. This is because we need a performant way to look these
-//    edges up and, object properties, which have string keys, are the closest
-//    we're going to get to a performant hashtable in JavaScript.
-
-function Graph(opts) {
-  this._isDirected = _.has(opts, "directed") ? opts.directed : true;
-  this._isMultigraph = _.has(opts, "multigraph") ? opts.multigraph : false;
-  this._isCompound = _.has(opts, "compound") ? opts.compound : false;
-
-  // Label for the graph itself
-  this._label = undefined;
-
-  // Defaults to be set when creating a new node
-  this._defaultNodeLabelFn = _.constant(undefined);
-
-  // Defaults to be set when creating a new edge
-  this._defaultEdgeLabelFn = _.constant(undefined);
-
-  // v -> label
-  this._nodes = {};
-
-  if (this._isCompound) {
-    // v -> parent
-    this._parent = {};
-
-    // v -> children
-    this._children = {};
-    this._children[GRAPH_NODE] = {};
-  }
-
-  // v -> edgeObj
-  this._in = {};
-
-  // u -> v -> Number
-  this._preds = {};
-
-  // v -> edgeObj
-  this._out = {};
-
-  // v -> w -> Number
-  this._sucs = {};
-
-  // e -> edgeObj
-  this._edgeObjs = {};
-
-  // e -> label
-  this._edgeLabels = {};
-}
-
-/* Number of nodes in the graph. Should only be changed by the implementation. */
-Graph.prototype._nodeCount = 0;
-
-/* Number of edges in the graph. Should only be changed by the implementation. */
-Graph.prototype._edgeCount = 0;
-
-
-/* === Graph functions ========= */
-
-Graph.prototype.isDirected = function() {
-  return this._isDirected;
-};
-
-Graph.prototype.isMultigraph = function() {
-  return this._isMultigraph;
-};
-
-Graph.prototype.isCompound = function() {
-  return this._isCompound;
-};
-
-Graph.prototype.setGraph = function(label) {
-  this._label = label;
-  return this;
-};
-
-Graph.prototype.graph = function() {
-  return this._label;
-};
-
-
-/* === Node functions ========== */
-
-Graph.prototype.setDefaultNodeLabel = function(newDefault) {
-  if (!_.isFunction(newDefault)) {
-    newDefault = _.constant(newDefault);
-  }
-  this._defaultNodeLabelFn = newDefault;
-  return this;
-};
-
-Graph.prototype.nodeCount = function() {
-  return this._nodeCount;
-};
-
-Graph.prototype.nodes = function() {
-  return _.keys(this._nodes);
-};
-
-Graph.prototype.sources = function() {
-  var self = this;
-  return _.filter(this.nodes(), function(v) {
-    return _.isEmpty(self._in[v]);
-  });
-};
-
-Graph.prototype.sinks = function() {
-  var self = this;
-  return _.filter(this.nodes(), function(v) {
-    return _.isEmpty(self._out[v]);
-  });
-};
-
-Graph.prototype.setNodes = function(vs, value) {
-  var args = arguments;
-  var self = this;
-  _.each(vs, function(v) {
-    if (args.length > 1) {
-      self.setNode(v, value);
-    } else {
-      self.setNode(v);
-    }
-  });
-  return this;
-};
-
-Graph.prototype.setNode = function(v, value) {
-  if (_.has(this._nodes, v)) {
-    if (arguments.length > 1) {
-      this._nodes[v] = value;
-    }
-    return this;
-  }
-
-  this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);
-  if (this._isCompound) {
-    this._parent[v] = GRAPH_NODE;
-    this._children[v] = {};
-    this._children[GRAPH_NODE][v] = true;
-  }
-  this._in[v] = {};
-  this._preds[v] = {};
-  this._out[v] = {};
-  this._sucs[v] = {};
-  ++this._nodeCount;
-  return this;
-};
-
-Graph.prototype.node = function(v) {
-  return this._nodes[v];
-};
-
-Graph.prototype.hasNode = function(v) {
-  return _.has(this._nodes, v);
-};
-
-Graph.prototype.removeNode =  function(v) {
-  var self = this;
-  if (_.has(this._nodes, v)) {
-    var removeEdge = function(e) { self.removeEdge(self._edgeObjs[e]); };
-    delete this._nodes[v];
-    if (this._isCompound) {
-      this._removeFromParentsChildList(v);
-      delete this._parent[v];
-      _.each(this.children(v), function(child) {
-        self.setParent(child);
-      });
-      delete this._children[v];
-    }
-    _.each(_.keys(this._in[v]), removeEdge);
-    delete this._in[v];
-    delete this._preds[v];
-    _.each(_.keys(this._out[v]), removeEdge);
-    delete this._out[v];
-    delete this._sucs[v];
-    --this._nodeCount;
-  }
-  return this;
-};
-
-Graph.prototype.setParent = function(v, parent) {
-  if (!this._isCompound) {
-    throw new Error("Cannot set parent in a non-compound graph");
-  }
-
-  if (_.isUndefined(parent)) {
-    parent = GRAPH_NODE;
-  } else {
-    // Coerce parent to string
-    parent += "";
-    for (var ancestor = parent;
-      !_.isUndefined(ancestor);
-      ancestor = this.parent(ancestor)) {
-      if (ancestor === v) {
-        throw new Error("Setting " + parent+ " as parent of " + v +
-                        " would create a cycle");
-      }
-    }
-
-    this.setNode(parent);
-  }
-
-  this.setNode(v);
-  this._removeFromParentsChildList(v);
-  this._parent[v] = parent;
-  this._children[parent][v] = true;
-  return this;
-};
-
-Graph.prototype._removeFromParentsChildList = function(v) {
-  delete this._children[this._parent[v]][v];
-};
-
-Graph.prototype.parent = function(v) {
-  if (this._isCompound) {
-    var parent = this._parent[v];
-    if (parent !== GRAPH_NODE) {
-      return parent;
-    }
-  }
-};
-
-Graph.prototype.children = function(v) {
-  if (_.isUndefined(v)) {
-    v = GRAPH_NODE;
-  }
-
-  if (this._isCompound) {
-    var children = this._children[v];
-    if (children) {
-      return _.keys(children);
-    }
-  } else if (v === GRAPH_NODE) {
-    return this.nodes();
-  } else if (this.hasNode(v)) {
-    return [];
-  }
-};
-
-Graph.prototype.predecessors = function(v) {
-  var predsV = this._preds[v];
-  if (predsV) {
-    return _.keys(predsV);
-  }
-};
-
-Graph.prototype.successors = function(v) {
-  var sucsV = this._sucs[v];
-  if (sucsV) {
-    return _.keys(sucsV);
-  }
-};
-
-Graph.prototype.neighbors = function(v) {
-  var preds = this.predecessors(v);
-  if (preds) {
-    return _.union(preds, this.successors(v));
-  }
-};
-
-Graph.prototype.isLeaf = function (v) {
-  var neighbors;
-  if (this.isDirected()) {
-    neighbors = this.successors(v);
-  } else {
-    neighbors = this.neighbors(v);
-  }
-  return neighbors.length === 0;
-};
-
-Graph.prototype.filterNodes = function(filter) {
-  var copy = new this.constructor({
-    directed: this._isDirected,
-    multigraph: this._isMultigraph,
-    compound: this._isCompound
-  });
-
-  copy.setGraph(this.graph());
-
-  var self = this;
-  _.each(this._nodes, function(value, v) {
-    if (filter(v)) {
-      copy.setNode(v, value);
-    }
-  });
-
-  _.each(this._edgeObjs, function(e) {
-    if (copy.hasNode(e.v) && copy.hasNode(e.w)) {
-      copy.setEdge(e, self.edge(e));
-    }
-  });
-
-  var parents = {};
-  function findParent(v) {
-    var parent = self.parent(v);
-    if (parent === undefined || copy.hasNode(parent)) {
-      parents[v] = parent;
-      return parent;
-    } else if (parent in parents) {
-      return parents[parent];
-    } else {
-      return findParent(parent);
-    }
-  }
-
-  if (this._isCompound) {
-    _.each(copy.nodes(), function(v) {
-      copy.setParent(v, findParent(v));
-    });
-  }
-
-  return copy;
-};
-
-/* === Edge functions ========== */
-
-Graph.prototype.setDefaultEdgeLabel = function(newDefault) {
-  if (!_.isFunction(newDefault)) {
-    newDefault = _.constant(newDefault);
-  }
-  this._defaultEdgeLabelFn = newDefault;
-  return this;
-};
-
-Graph.prototype.edgeCount = function() {
-  return this._edgeCount;
-};
-
-Graph.prototype.edges = function() {
-  return _.values(this._edgeObjs);
-};
-
-Graph.prototype.setPath = function(vs, value) {
-  var self = this;
-  var args = arguments;
-  _.reduce(vs, function(v, w) {
-    if (args.length > 1) {
-      self.setEdge(v, w, value);
-    } else {
-      self.setEdge(v, w);
-    }
-    return w;
-  });
-  return this;
-};
-
-/*
- * setEdge(v, w, [value, [name]])
- * setEdge({ v, w, [name] }, [value])
- */
-Graph.prototype.setEdge = function() {
-  var v, w, name, value;
-  var valueSpecified = false;
-  var arg0 = arguments[0];
-
-  if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) {
-    v = arg0.v;
-    w = arg0.w;
-    name = arg0.name;
-    if (arguments.length === 2) {
-      value = arguments[1];
-      valueSpecified = true;
-    }
-  } else {
-    v = arg0;
-    w = arguments[1];
-    name = arguments[3];
-    if (arguments.length > 2) {
-      value = arguments[2];
-      valueSpecified = true;
-    }
-  }
-
-  v = "" + v;
-  w = "" + w;
-  if (!_.isUndefined(name)) {
-    name = "" + name;
-  }
-
-  var e = edgeArgsToId(this._isDirected, v, w, name);
-  if (_.has(this._edgeLabels, e)) {
-    if (valueSpecified) {
-      this._edgeLabels[e] = value;
-    }
-    return this;
-  }
-
-  if (!_.isUndefined(name) && !this._isMultigraph) {
-    throw new Error("Cannot set a named edge when isMultigraph = false");
-  }
-
-  // It didn't exist, so we need to create it.
-  // First ensure the nodes exist.
-  this.setNode(v);
-  this.setNode(w);
-
-  this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);
-
-  var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);
-  // Ensure we add undirected edges in a consistent way.
-  v = edgeObj.v;
-  w = edgeObj.w;
-
-  Object.freeze(edgeObj);
-  this._edgeObjs[e] = edgeObj;
-  incrementOrInitEntry(this._preds[w], v);
-  incrementOrInitEntry(this._sucs[v], w);
-  this._in[w][e] = edgeObj;
-  this._out[v][e] = edgeObj;
-  this._edgeCount++;
-  return this;
-};
-
-Graph.prototype.edge = function(v, w, name) {
-  var e = (arguments.length === 1
-    ? edgeObjToId(this._isDirected, arguments[0])
-    : edgeArgsToId(this._isDirected, v, w, name));
-  return this._edgeLabels[e];
-};
-
-Graph.prototype.hasEdge = function(v, w, name) {
-  var e = (arguments.length === 1
-    ? edgeObjToId(this._isDirected, arguments[0])
-    : edgeArgsToId(this._isDirected, v, w, name));
-  return _.has(this._edgeLabels, e);
-};
-
-Graph.prototype.removeEdge = function(v, w, name) {
-  var e = (arguments.length === 1
-    ? edgeObjToId(this._isDirected, arguments[0])
-    : edgeArgsToId(this._isDirected, v, w, name));
-  var edge = this._edgeObjs[e];
-  if (edge) {
-    v = edge.v;
-    w = edge.w;
-    delete this._edgeLabels[e];
-    delete this._edgeObjs[e];
-    decrementOrRemoveEntry(this._preds[w], v);
-    decrementOrRemoveEntry(this._sucs[v], w);
-    delete this._in[w][e];
-    delete this._out[v][e];
-    this._edgeCount--;
-  }
-  return this;
-};
-
-Graph.prototype.inEdges = function(v, u) {
-  var inV = this._in[v];
-  if (inV) {
-    var edges = _.values(inV);
-    if (!u) {
-      return edges;
-    }
-    return _.filter(edges, function(edge) { return edge.v === u; });
-  }
-};
-
-Graph.prototype.outEdges = function(v, w) {
-  var outV = this._out[v];
-  if (outV) {
-    var edges = _.values(outV);
-    if (!w) {
-      return edges;
-    }
-    return _.filter(edges, function(edge) { return edge.w === w; });
-  }
-};
-
-Graph.prototype.nodeEdges = function(v, w) {
-  var inEdges = this.inEdges(v, w);
-  if (inEdges) {
-    return inEdges.concat(this.outEdges(v, w));
-  }
-};
-
-function incrementOrInitEntry(map, k) {
-  if (map[k]) {
-    map[k]++;
-  } else {
-    map[k] = 1;
-  }
-}
-
-function decrementOrRemoveEntry(map, k) {
-  if (!--map[k]) { delete map[k]; }
-}
-
-function edgeArgsToId(isDirected, v_, w_, name) {
-  var v = "" + v_;
-  var w = "" + w_;
-  if (!isDirected && v > w) {
-    var tmp = v;
-    v = w;
-    w = tmp;
-  }
-  return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM +
-             (_.isUndefined(name) ? DEFAULT_EDGE_NAME : name);
-}
-
-function edgeArgsToObj(isDirected, v_, w_, name) {
-  var v = "" + v_;
-  var w = "" + w_;
-  if (!isDirected && v > w) {
-    var tmp = v;
-    v = w;
-    w = tmp;
-  }
-  var edgeObj =  { v: v, w: w };
-  if (name) {
-    edgeObj.name = name;
-  }
-  return edgeObj;
-}
-
-function edgeObjToId(isDirected, edgeObj) {
-  return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/index.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/index.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/index.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/index.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-// Includes only the "core" of graphlib
-module.exports = {
-  Graph: require("./graph"),
-  version: require("./version")
-};
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/json.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/json.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/json.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/json.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,66 +0,0 @@
-var _ = require("./lodash");
-var Graph = require("./graph");
-
-module.exports = {
-  write: write,
-  read: read
-};
-
-function write(g) {
-  var json = {
-    options: {
-      directed: g.isDirected(),
-      multigraph: g.isMultigraph(),
-      compound: g.isCompound()
-    },
-    nodes: writeNodes(g),
-    edges: writeEdges(g)
-  };
-  if (!_.isUndefined(g.graph())) {
-    json.value = _.clone(g.graph());
-  }
-  return json;
-}
-
-function writeNodes(g) {
-  return _.map(g.nodes(), function(v) {
-    var nodeValue = g.node(v);
-    var parent = g.parent(v);
-    var node = { v: v };
-    if (!_.isUndefined(nodeValue)) {
-      node.value = nodeValue;
-    }
-    if (!_.isUndefined(parent)) {
-      node.parent = parent;
-    }
-    return node;
-  });
-}
-
-function writeEdges(g) {
-  return _.map(g.edges(), function(e) {
-    var edgeValue = g.edge(e);
-    var edge = { v: e.v, w: e.w };
-    if (!_.isUndefined(e.name)) {
-      edge.name = e.name;
-    }
-    if (!_.isUndefined(edgeValue)) {
-      edge.value = edgeValue;
-    }
-    return edge;
-  });
-}
-
-function read(json) {
-  var g = new Graph(json.options).setGraph(json.value);
-  _.each(json.nodes, function(entry) {
-    g.setNode(entry.v, entry.value);
-    if (entry.parent) {
-      g.setParent(entry.v, entry.parent);
-    }
-  });
-  _.each(json.edges, function(entry) {
-    g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);
-  });
-  return g;
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/lodash.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/lodash.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/lodash.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/lodash.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,34 +0,0 @@
-/* global window */
-
-var lodash;
-
-if (typeof require === "function") {
-  try {
-    lodash = {
-      clone: require("lodash/clone"),
-      constant: require("lodash/constant"),
-      each: require("lodash/each"),
-      filter: require("lodash/filter"),
-      has:  require("lodash/has"),
-      isArray: require("lodash/isArray"),
-      isEmpty: require("lodash/isEmpty"),
-      isFunction: require("lodash/isFunction"),
-      isUndefined: require("lodash/isUndefined"),
-      keys: require("lodash/keys"),
-      map: require("lodash/map"),
-      reduce: require("lodash/reduce"),
-      size: require("lodash/size"),
-      transform: require("lodash/transform"),
-      union: require("lodash/union"),
-      values: require("lodash/values")
-    };
-  } catch (e) {
-    // continue regardless of error
-  }
-}
-
-if (!lodash) {
-  lodash = window._;
-}
-
-module.exports = lodash;
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/lib/version.js 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/version.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/lib/version.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/lib/version.js	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-module.exports = '2.1.8';
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/LICENSE 0.32.1+repack1+~cs5.2.1-1/graphlib/LICENSE
--- 0.32.1+ds+~cs9.4.17-2/graphlib/LICENSE	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/LICENSE	1970-01-01 00:00:00.000000000 +0000
@@ -1,19 +0,0 @@
-Copyright (c) 2012-2014 Chris Pettitt
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/Makefile 0.32.1+repack1+~cs5.2.1-1/graphlib/Makefile
--- 0.32.1+ds+~cs9.4.17-2/graphlib/Makefile	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/Makefile	1970-01-01 00:00:00.000000000 +0000
@@ -1,88 +0,0 @@
-MOD = graphlib
-
-NPM = npm
-BROWSERIFY = ./node_modules/browserify/bin/cmd.js
-ISTANBUL = ./node_modules/istanbul/lib/cli.js
-JSHINT = ./node_modules/jshint/bin/jshint
-ESLINT = ./node_modules/eslint/bin/eslint.js
-KARMA = ./node_modules/karma/bin/karma
-MOCHA = ./node_modules/mocha/bin/_mocha
-UGLIFY = ./node_modules/uglify-js/bin/uglifyjs
-
-ISTANBUL_OPTS = --dir $(COVERAGE_DIR) --report html
-JSHINT_OPTS = --reporter node_modules/jshint-stylish/index.js
-MOCHA_OPTS = -R dot
-
-BUILD_DIR = build
-COVERAGE_DIR = $(BUILD_DIR)/cov
-DIST_DIR = dist
-
-SRC_FILES = index.js lib/version.js $(shell find lib -type f -name '*.js')
-TEST_FILES = $(shell find test -type f -name '*.js' | grep -v 'bundle-test.js' | grep -v 'bundle.amd-test.js' | grep -v 'test-main.js')
-BUILD_FILES = $(addprefix $(BUILD_DIR)/, \
-						$(MOD).js $(MOD).min.js \
-						$(MOD).core.js $(MOD).core.min.js)
-
-DIRS = $(BUILD_DIR)
-
-.PHONY: all bench clean browser-test unit-test test dist
-
-all: unit-test lint
-
-bench: unit-test lint
-	@src/bench.js
-
-lib/version.js: package.json
-	@src/release/make-version.js > $@
-
-$(DIRS):
-	@mkdir -p $@
-
-test: unit-test browser-test browser-test-amd
-
-unit-test: $(SRC_FILES) $(TEST_FILES) node_modules | $(BUILD_DIR)
-	@$(ISTANBUL) cover $(ISTANBUL_OPTS) $(MOCHA) --dir $(COVERAGE_DIR) -- $(MOCHA_OPTS) $(TEST_FILES) || $(MOCHA) $(MOCHA_OPTS) $(TEST_FILES)
-
-browser-test: $(BUILD_DIR)/$(MOD).js $(BUILD_DIR)/$(MOD).core.js
-	$(KARMA) start --single-run $(KARMA_OPTS)
-	$(KARMA) start karma.core.conf.js --single-run $(KARMA_OPTS)
-
-browser-test-amd: $(BUILD_DIR)/$(MOD).js $(BUILD_DIR)/$(MOD).core.js
-	$(KARMA) start karma.amd.conf.js --single-run $(KARMA_OPTS)
-
-bower.json: package.json src/release/make-bower.json.js
-	@src/release/make-bower.json.js > $@
-
-lint:
-	@$(JSHINT) $(JSHINT_OPTS) $(filter-out node_modules, $?)
-	@$(ESLINT) $(SRC_FILES) $(TEST_FILES)
-
-$(BUILD_DIR)/$(MOD).js: index.js $(SRC_FILES) | unit-test
-	@$(BROWSERIFY) $< > $@ -s graphlib
-
-$(BUILD_DIR)/$(MOD).min.js: $(BUILD_DIR)/$(MOD).js
-	@$(UGLIFY) $< --comments '@license' > $@
-
-$(BUILD_DIR)/$(MOD).core.js: index.js $(SRC_FILES) | unit-test
-	@$(BROWSERIFY) $< > $@ --no-bundle-external -s graphlib
-
-$(BUILD_DIR)/$(MOD).core.min.js: $(BUILD_DIR)/$(MOD).core.js
-	@$(UGLIFY) $< --comments '@license' > $@
-
-dist: $(BUILD_FILES) | bower.json test
-	@rm -rf $@
-	@mkdir -p $@
-	@cp $^ dist
-
-release: dist
-	@echo
-	@echo Starting release...
-	@echo
-	@src/release/release.sh $(MOD) dist
-
-clean:
-	rm -rf $(BUILD_DIR)
-
-node_modules: package.json
-	@$(NPM) install
-	@touch $@
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/.npmignore 0.32.1+repack1+~cs5.2.1-1/graphlib/.npmignore
--- 0.32.1+ds+~cs9.4.17-2/graphlib/.npmignore	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/.npmignore	1970-01-01 00:00:00.000000000 +0000
@@ -1,8 +0,0 @@
-/browser.js
-/bench
-/build
-/doc
-/Makefile
-/node_modules
-/src
-/test
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/package.json 0.32.1+repack1+~cs5.2.1-1/graphlib/package.json
--- 0.32.1+ds+~cs9.4.17-2/graphlib/package.json	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/package.json	1970-01-01 00:00:00.000000000 +0000
@@ -1,47 +0,0 @@
-{
-  "name": "graphlib",
-  "version": "2.1.8",
-  "description": "A directed and undirected multi-graph library",
-  "author": "Chris Pettitt <cpettitt@gmail.com>",
-  "license": "MIT",
-  "main": "index.js",
-  "files": [
-    "index.js",
-    "dist/",
-    "lib/"
-  ],
-  "keywords": [
-    "graph",
-    "algorithms"
-  ],
-  "dependencies": {
-    "lodash": "^4.17.15"
-  },
-  "devDependencies": {
-    "benchmark": "^2.1.4",
-    "browserify": "^16.2.3",
-    "chai": "^4.1.2",
-    "eslint": "^5.13.0",
-    "istanbul": "^0.4.5",
-    "jshint": "^2.9.6",
-    "jshint-stylish": "^2.2.1",
-    "karma": "^4.1.0",
-    "karma-chrome-launcher": "^2.2.0",
-    "karma-firefox-launcher": "^1.1.0",
-    "karma-mocha": "^1.3.0",
-    "karma-phantomjs-launcher": "^1.0.4",
-    "karma-requirejs": "^1.1.0",
-    "karma-safari-launcher": "^1.0.0",
-    "mocha": "^6.1.4",
-    "phantomjs-prebuilt": "^2.1.16",
-    "requirejs": "^2.3.5",
-    "seedrandom": "^2.4.3",
-    "semver": "^5.5.0",
-    "sprintf": "^0.1.5",
-    "uglify-js": "^3.3.10"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/dagrejs/graphlib.git"
-  }
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/package-lock.json 0.32.1+repack1+~cs5.2.1-1/graphlib/package-lock.json
--- 0.32.1+ds+~cs9.4.17-2/graphlib/package-lock.json	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/package-lock.json	1970-01-01 00:00:00.000000000 +0000
@@ -1,4994 +0,0 @@
-{
-  "name": "graphlib",
-  "version": "2.1.8",
-  "lockfileVersion": 1,
-  "requires": true,
-  "dependencies": {
-    "@babel/code-frame": {
-      "version": "7.5.5",
-      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
-      "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
-      "dev": true,
-      "requires": {
-        "@babel/highlight": "^7.0.0"
-      }
-    },
-    "@babel/highlight": {
-      "version": "7.5.0",
-      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
-      "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.0.0",
-        "esutils": "^2.0.2",
-        "js-tokens": "^4.0.0"
-      }
-    },
-    "JSONStream": {
-      "version": "1.3.5",
-      "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
-      "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
-      "dev": true,
-      "requires": {
-        "jsonparse": "^1.2.0",
-        "through": ">=2.2.7 <3"
-      }
-    },
-    "abbrev": {
-      "version": "1.0.9",
-      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
-      "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
-      "dev": true
-    },
-    "accepts": {
-      "version": "1.3.7",
-      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
-      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
-      "dev": true,
-      "requires": {
-        "mime-types": "~2.1.24",
-        "negotiator": "0.6.2"
-      }
-    },
-    "acorn": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.0.0.tgz",
-      "integrity": "sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ==",
-      "dev": true
-    },
-    "acorn-jsx": {
-      "version": "5.0.2",
-      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz",
-      "integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==",
-      "dev": true
-    },
-    "acorn-node": {
-      "version": "1.8.2",
-      "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
-      "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
-      "dev": true,
-      "requires": {
-        "acorn": "^7.0.0",
-        "acorn-walk": "^7.0.0",
-        "xtend": "^4.0.2"
-      }
-    },
-    "acorn-walk": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.0.0.tgz",
-      "integrity": "sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg==",
-      "dev": true
-    },
-    "after": {
-      "version": "0.8.2",
-      "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
-      "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
-      "dev": true
-    },
-    "ajv": {
-      "version": "6.10.2",
-      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
-      "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
-      "dev": true,
-      "requires": {
-        "fast-deep-equal": "^2.0.1",
-        "fast-json-stable-stringify": "^2.0.0",
-        "json-schema-traverse": "^0.4.1",
-        "uri-js": "^4.2.2"
-      }
-    },
-    "amdefine": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
-      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
-      "dev": true,
-      "optional": true
-    },
-    "ansi-colors": {
-      "version": "3.2.3",
-      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
-      "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
-      "dev": true
-    },
-    "ansi-escapes": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
-      "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
-      "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"
-      }
-    },
-    "anymatch": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.0.tgz",
-      "integrity": "sha512-Ozz7l4ixzI7Oxj2+cw+p0tVUt27BpaJ+1+q1TCeANWxHpvyn2+Un+YamBdfKu0uh8xLodGhoa1v7595NhKDAuA==",
-      "dev": true,
-      "requires": {
-        "normalize-path": "^3.0.0",
-        "picomatch": "^2.0.4"
-      }
-    },
-    "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"
-      }
-    },
-    "arraybuffer.slice": {
-      "version": "0.0.7",
-      "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
-      "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
-      "dev": true
-    },
-    "asn1": {
-      "version": "0.2.4",
-      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
-      "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
-      "dev": true,
-      "requires": {
-        "safer-buffer": "~2.1.0"
-      }
-    },
-    "asn1.js": {
-      "version": "4.10.1",
-      "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=",
-      "dev": true
-    },
-    "assertion-error": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
-      "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
-      "dev": true
-    },
-    "astral-regex": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
-      "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
-      "dev": true
-    },
-    "async": {
-      "version": "1.5.2",
-      "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
-      "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
-      "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=",
-      "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=",
-      "dev": true
-    },
-    "aws4": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
-      "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
-      "dev": true
-    },
-    "backo2": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
-      "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
-      "dev": true
-    },
-    "balanced-match": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
-      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
-      "dev": true
-    },
-    "base64-arraybuffer": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
-      "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
-      "dev": true
-    },
-    "base64-js": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
-      "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
-      "dev": true
-    },
-    "base64id": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
-      "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
-      "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=",
-      "dev": true,
-      "requires": {
-        "tweetnacl": "^0.14.3"
-      }
-    },
-    "beeper": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
-      "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
-      "dev": true
-    },
-    "benchmark": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz",
-      "integrity": "sha1-CfPeMckWQl1JjMLuVloOvzwqVik=",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.4",
-        "platform": "^1.3.3"
-      }
-    },
-    "better-assert": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
-      "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
-      "dev": true,
-      "requires": {
-        "callsite": "1.0.0"
-      }
-    },
-    "binary-extensions": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
-      "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
-      "dev": true
-    },
-    "blob": {
-      "version": "0.0.5",
-      "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
-      "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==",
-      "dev": true
-    },
-    "bluebird": {
-      "version": "3.5.5",
-      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
-      "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==",
-      "dev": true
-    },
-    "bn.js": {
-      "version": "4.11.8",
-      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
-      "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
-      "dev": true
-    },
-    "body-parser": {
-      "version": "1.19.0",
-      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
-      "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
-      "dev": true,
-      "requires": {
-        "bytes": "3.1.0",
-        "content-type": "~1.0.4",
-        "debug": "2.6.9",
-        "depd": "~1.1.2",
-        "http-errors": "1.7.2",
-        "iconv-lite": "0.4.24",
-        "on-finished": "~2.3.0",
-        "qs": "6.7.0",
-        "raw-body": "2.4.0",
-        "type-is": "~1.6.17"
-      },
-      "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"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "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": "3.0.2",
-      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
-      "dev": true,
-      "requires": {
-        "fill-range": "^7.0.1"
-      }
-    },
-    "brorand": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
-      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
-      "dev": true
-    },
-    "browser-pack": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz",
-      "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==",
-      "dev": true,
-      "requires": {
-        "JSONStream": "^1.0.3",
-        "combine-source-map": "~0.8.0",
-        "defined": "^1.0.0",
-        "safe-buffer": "^5.1.1",
-        "through2": "^2.0.0",
-        "umd": "^3.0.0"
-      }
-    },
-    "browser-resolve": {
-      "version": "1.11.3",
-      "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz",
-      "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==",
-      "dev": true,
-      "requires": {
-        "resolve": "1.1.7"
-      },
-      "dependencies": {
-        "resolve": {
-          "version": "1.1.7",
-          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
-          "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
-          "dev": true
-        }
-      }
-    },
-    "browser-stdout": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
-      "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
-      "dev": true
-    },
-    "browserify": {
-      "version": "16.5.0",
-      "resolved": "https://registry.npmjs.org/browserify/-/browserify-16.5.0.tgz",
-      "integrity": "sha512-6bfI3cl76YLAnCZ75AGu/XPOsqUhRyc0F/olGIJeCxtfxF2HvPKEcmjU9M8oAPxl4uBY1U7Nry33Q6koV3f2iw==",
-      "dev": true,
-      "requires": {
-        "JSONStream": "^1.0.3",
-        "assert": "^1.4.0",
-        "browser-pack": "^6.0.1",
-        "browser-resolve": "^1.11.0",
-        "browserify-zlib": "~0.2.0",
-        "buffer": "^5.0.2",
-        "cached-path-relative": "^1.0.0",
-        "concat-stream": "^1.6.0",
-        "console-browserify": "^1.1.0",
-        "constants-browserify": "~1.0.0",
-        "crypto-browserify": "^3.0.0",
-        "defined": "^1.0.0",
-        "deps-sort": "^2.0.0",
-        "domain-browser": "^1.2.0",
-        "duplexer2": "~0.1.2",
-        "events": "^2.0.0",
-        "glob": "^7.1.0",
-        "has": "^1.0.0",
-        "htmlescape": "^1.1.0",
-        "https-browserify": "^1.0.0",
-        "inherits": "~2.0.1",
-        "insert-module-globals": "^7.0.0",
-        "labeled-stream-splicer": "^2.0.0",
-        "mkdirp": "^0.5.0",
-        "module-deps": "^6.0.0",
-        "os-browserify": "~0.3.0",
-        "parents": "^1.0.1",
-        "path-browserify": "~0.0.0",
-        "process": "~0.11.0",
-        "punycode": "^1.3.2",
-        "querystring-es3": "~0.2.0",
-        "read-only-stream": "^2.0.0",
-        "readable-stream": "^2.0.2",
-        "resolve": "^1.1.4",
-        "shasum": "^1.0.0",
-        "shell-quote": "^1.6.1",
-        "stream-browserify": "^2.0.0",
-        "stream-http": "^3.0.0",
-        "string_decoder": "^1.1.1",
-        "subarg": "^1.0.0",
-        "syntax-error": "^1.1.1",
-        "through2": "^2.0.0",
-        "timers-browserify": "^1.0.1",
-        "tty-browserify": "0.0.1",
-        "url": "~0.11.0",
-        "util": "~0.10.1",
-        "vm-browserify": "^1.0.0",
-        "xtend": "^4.0.0"
-      }
-    },
-    "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"
-      }
-    },
-    "buffer": {
-      "version": "5.4.3",
-      "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz",
-      "integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==",
-      "dev": true,
-      "requires": {
-        "base64-js": "^1.0.2",
-        "ieee754": "^1.1.4"
-      }
-    },
-    "buffer-alloc": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
-      "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
-      "dev": true,
-      "requires": {
-        "buffer-alloc-unsafe": "^1.1.0",
-        "buffer-fill": "^1.0.0"
-      }
-    },
-    "buffer-alloc-unsafe": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
-      "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
-      "dev": true
-    },
-    "buffer-fill": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
-      "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
-      "dev": true
-    },
-    "buffer-from": {
-      "version": "1.1.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
-    },
-    "bytes": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
-      "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
-      "dev": true
-    },
-    "cached-path-relative": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz",
-      "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==",
-      "dev": true
-    },
-    "callsite": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
-      "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
-      "dev": true
-    },
-    "callsites": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
-      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
-      "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
-    },
-    "caseless": {
-      "version": "0.12.0",
-      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
-      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
-      "dev": true
-    },
-    "chai": {
-      "version": "4.2.0",
-      "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
-      "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
-      "dev": true,
-      "requires": {
-        "assertion-error": "^1.1.0",
-        "check-error": "^1.0.2",
-        "deep-eql": "^3.0.1",
-        "get-func-name": "^2.0.0",
-        "pathval": "^1.1.0",
-        "type-detect": "^4.0.5"
-      }
-    },
-    "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"
-      }
-    },
-    "chardet": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
-      "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
-      "dev": true
-    },
-    "check-error": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
-      "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
-      "dev": true
-    },
-    "chokidar": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.1.1.tgz",
-      "integrity": "sha512-df4o16uZmMHzVQwECZRHwfguOt5ixpuQVaZHjYMvYisgKhE+JXwcj/Tcr3+3bu/XeOJQ9ycYmzu7Mv8XrGxJDQ==",
-      "dev": true,
-      "requires": {
-        "anymatch": "^3.1.0",
-        "braces": "^3.0.2",
-        "fsevents": "^2.0.6",
-        "glob-parent": "^5.0.0",
-        "is-binary-path": "^2.1.0",
-        "is-glob": "^4.0.1",
-        "normalize-path": "^3.0.0",
-        "readdirp": "^3.1.1"
-      }
-    },
-    "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"
-      }
-    },
-    "cli": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
-      "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
-      "dev": true,
-      "requires": {
-        "exit": "0.1.2",
-        "glob": "^7.1.1"
-      }
-    },
-    "cli-cursor": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
-      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
-      "dev": true,
-      "requires": {
-        "restore-cursor": "^2.0.0"
-      }
-    },
-    "cli-width": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
-      "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
-      "dev": true
-    },
-    "cliui": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
-      "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
-      "dev": true,
-      "requires": {
-        "string-width": "^2.1.1",
-        "strip-ansi": "^4.0.0",
-        "wrap-ansi": "^2.0.0"
-      }
-    },
-    "code-point-at": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
-      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
-      "dev": true
-    },
-    "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
-    },
-    "colors": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz",
-      "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==",
-      "dev": true
-    },
-    "combine-source-map": {
-      "version": "0.8.0",
-      "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz",
-      "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=",
-      "dev": true,
-      "requires": {
-        "convert-source-map": "~1.1.0",
-        "inline-source-map": "~0.6.0",
-        "lodash.memoize": "~3.0.3",
-        "source-map": "~0.5.3"
-      }
-    },
-    "combined-stream": {
-      "version": "1.0.8",
-      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
-      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
-      "dev": true,
-      "requires": {
-        "delayed-stream": "~1.0.0"
-      }
-    },
-    "commander": {
-      "version": "2.20.0",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
-      "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
-      "dev": true
-    },
-    "component-bind": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
-      "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
-      "dev": true
-    },
-    "component-emitter": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
-      "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
-      "dev": true
-    },
-    "component-inherit": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
-      "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
-      "dev": true
-    },
-    "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"
-      }
-    },
-    "connect": {
-      "version": "3.7.0",
-      "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
-      "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "finalhandler": "1.1.2",
-        "parseurl": "~1.3.3",
-        "utils-merge": "1.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"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "console-browserify": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
-      "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
-      "dev": true,
-      "requires": {
-        "date-now": "^0.1.4"
-      }
-    },
-    "constants-browserify": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
-      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
-      "dev": true
-    },
-    "content-type": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
-      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
-      "dev": true
-    },
-    "convert-source-map": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
-      "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=",
-      "dev": true
-    },
-    "cookie": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
-      "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
-      "dev": true
-    },
-    "core-js": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz",
-      "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==",
-      "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=",
-      "dev": true
-    },
-    "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"
-      }
-    },
-    "custom-event": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
-      "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=",
-      "dev": true
-    },
-    "dash-ast": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz",
-      "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==",
-      "dev": true
-    },
-    "dashdash": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
-      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "^1.0.0"
-      }
-    },
-    "date-format": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz",
-      "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==",
-      "dev": true
-    },
-    "date-now": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
-      "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
-      "dev": true
-    },
-    "debug": {
-      "version": "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
-    },
-    "deep-eql": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
-      "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
-      "dev": true,
-      "requires": {
-        "type-detect": "^4.0.0"
-      }
-    },
-    "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
-    },
-    "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"
-      }
-    },
-    "defined": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
-      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
-      "dev": true
-    },
-    "delayed-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
-      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
-      "dev": true
-    },
-    "depd": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
-      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
-      "dev": true
-    },
-    "deps-sort": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz",
-      "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=",
-      "dev": true,
-      "requires": {
-        "JSONStream": "^1.0.3",
-        "shasum": "^1.0.0",
-        "subarg": "^1.0.0",
-        "through2": "^2.0.0"
-      }
-    },
-    "des.js": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
-      "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "minimalistic-assert": "^1.0.0"
-      }
-    },
-    "detective": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
-      "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
-      "dev": true,
-      "requires": {
-        "acorn-node": "^1.6.1",
-        "defined": "^1.0.0",
-        "minimist": "^1.1.1"
-      }
-    },
-    "di": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
-      "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
-      "dev": true
-    },
-    "diff": {
-      "version": "3.5.0",
-      "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
-      "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
-      "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"
-      }
-    },
-    "doctrine": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
-      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
-      "dev": true,
-      "requires": {
-        "esutils": "^2.0.2"
-      }
-    },
-    "dom-serialize": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
-      "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=",
-      "dev": true,
-      "requires": {
-        "custom-event": "~1.0.0",
-        "ent": "~2.2.0",
-        "extend": "^3.0.0",
-        "void-elements": "^2.0.0"
-      }
-    },
-    "dom-serializer": {
-      "version": "0.2.1",
-      "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz",
-      "integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==",
-      "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
-        },
-        "entities": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
-          "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==",
-          "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
-    },
-    "domhandler": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
-      "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "1"
-      }
-    },
-    "domutils": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
-      "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
-      "dev": true,
-      "requires": {
-        "dom-serializer": "0",
-        "domelementtype": "1"
-      }
-    },
-    "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=",
-      "dev": true,
-      "requires": {
-        "jsbn": "~0.1.0",
-        "safer-buffer": "^2.1.0"
-      }
-    },
-    "ee-first": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
-      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
-      "dev": true
-    },
-    "elliptic": {
-      "version": "6.5.1",
-      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz",
-      "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==",
-      "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"
-      }
-    },
-    "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
-    },
-    "end-of-stream": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
-      "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
-      "dev": true,
-      "requires": {
-        "once": "^1.4.0"
-      }
-    },
-    "engine.io": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz",
-      "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==",
-      "dev": true,
-      "requires": {
-        "accepts": "~1.3.4",
-        "base64id": "1.0.0",
-        "cookie": "0.3.1",
-        "debug": "~3.1.0",
-        "engine.io-parser": "~2.1.0",
-        "ws": "~3.3.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "engine.io-client": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz",
-      "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==",
-      "dev": true,
-      "requires": {
-        "component-emitter": "1.2.1",
-        "component-inherit": "0.0.3",
-        "debug": "~3.1.0",
-        "engine.io-parser": "~2.1.1",
-        "has-cors": "1.1.0",
-        "indexof": "0.0.1",
-        "parseqs": "0.0.5",
-        "parseuri": "0.0.5",
-        "ws": "~3.3.1",
-        "xmlhttprequest-ssl": "~1.5.4",
-        "yeast": "0.1.2"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "engine.io-parser": {
-      "version": "2.1.3",
-      "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
-      "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
-      "dev": true,
-      "requires": {
-        "after": "0.8.2",
-        "arraybuffer.slice": "~0.0.7",
-        "base64-arraybuffer": "0.1.5",
-        "blob": "0.0.5",
-        "has-binary2": "~1.0.2"
-      }
-    },
-    "ent": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
-      "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
-      "dev": true
-    },
-    "entities": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
-      "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
-      "dev": true
-    },
-    "es-abstract": {
-      "version": "1.14.2",
-      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz",
-      "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==",
-      "dev": true,
-      "requires": {
-        "es-to-primitive": "^1.2.0",
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.0",
-        "is-callable": "^1.1.4",
-        "is-regex": "^1.0.4",
-        "object-inspect": "^1.6.0",
-        "object-keys": "^1.1.1",
-        "string.prototype.trimleft": "^2.0.0",
-        "string.prototype.trimright": "^2.0.0"
-      }
-    },
-    "es-to-primitive": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
-      "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
-      "dev": true,
-      "requires": {
-        "is-callable": "^1.1.4",
-        "is-date-object": "^1.0.1",
-        "is-symbol": "^1.0.2"
-      }
-    },
-    "es6-promise": {
-      "version": "4.2.8",
-      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
-      "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
-      "dev": true
-    },
-    "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.8.1",
-      "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
-      "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
-      "dev": true,
-      "requires": {
-        "esprima": "^2.7.1",
-        "estraverse": "^1.9.1",
-        "esutils": "^2.0.2",
-        "optionator": "^0.8.1",
-        "source-map": "~0.2.0"
-      },
-      "dependencies": {
-        "esprima": {
-          "version": "2.7.3",
-          "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
-          "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
-          "dev": true
-        },
-        "estraverse": {
-          "version": "1.9.3",
-          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
-          "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.2.0",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
-          "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "amdefine": ">=0.0.4"
-          }
-        }
-      }
-    },
-    "eslint": {
-      "version": "5.16.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz",
-      "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.0.0",
-        "ajv": "^6.9.1",
-        "chalk": "^2.1.0",
-        "cross-spawn": "^6.0.5",
-        "debug": "^4.0.1",
-        "doctrine": "^3.0.0",
-        "eslint-scope": "^4.0.3",
-        "eslint-utils": "^1.3.1",
-        "eslint-visitor-keys": "^1.0.0",
-        "espree": "^5.0.1",
-        "esquery": "^1.0.1",
-        "esutils": "^2.0.2",
-        "file-entry-cache": "^5.0.1",
-        "functional-red-black-tree": "^1.0.1",
-        "glob": "^7.1.2",
-        "globals": "^11.7.0",
-        "ignore": "^4.0.6",
-        "import-fresh": "^3.0.0",
-        "imurmurhash": "^0.1.4",
-        "inquirer": "^6.2.2",
-        "js-yaml": "^3.13.0",
-        "json-stable-stringify-without-jsonify": "^1.0.1",
-        "levn": "^0.3.0",
-        "lodash": "^4.17.11",
-        "minimatch": "^3.0.4",
-        "mkdirp": "^0.5.1",
-        "natural-compare": "^1.4.0",
-        "optionator": "^0.8.2",
-        "path-is-inside": "^1.0.2",
-        "progress": "^2.0.0",
-        "regexpp": "^2.0.1",
-        "semver": "^5.5.1",
-        "strip-ansi": "^4.0.0",
-        "strip-json-comments": "^2.0.1",
-        "table": "^5.2.3",
-        "text-table": "^0.2.0"
-      }
-    },
-    "eslint-scope": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
-      "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
-      "dev": true,
-      "requires": {
-        "esrecurse": "^4.1.0",
-        "estraverse": "^4.1.1"
-      }
-    },
-    "eslint-utils": {
-      "version": "1.4.2",
-      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz",
-      "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==",
-      "dev": true,
-      "requires": {
-        "eslint-visitor-keys": "^1.0.0"
-      }
-    },
-    "eslint-visitor-keys": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
-      "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
-      "dev": true
-    },
-    "espree": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz",
-      "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==",
-      "dev": true,
-      "requires": {
-        "acorn": "^6.0.7",
-        "acorn-jsx": "^5.0.0",
-        "eslint-visitor-keys": "^1.0.0"
-      },
-      "dependencies": {
-        "acorn": {
-          "version": "6.3.0",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz",
-          "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==",
-          "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
-    },
-    "esquery": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
-      "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
-      "dev": true,
-      "requires": {
-        "estraverse": "^4.0.0"
-      }
-    },
-    "esrecurse": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
-      "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
-      "dev": true,
-      "requires": {
-        "estraverse": "^4.1.0"
-      }
-    },
-    "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
-    },
-    "eventemitter3": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz",
-      "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==",
-      "dev": true
-    },
-    "events": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/events/-/events-2.1.0.tgz",
-      "integrity": "sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==",
-      "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"
-      }
-    },
-    "execa": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
-      "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
-      "dev": true,
-      "requires": {
-        "cross-spawn": "^6.0.0",
-        "get-stream": "^4.0.0",
-        "is-stream": "^1.1.0",
-        "npm-run-path": "^2.0.0",
-        "p-finally": "^1.0.0",
-        "signal-exit": "^3.0.0",
-        "strip-eof": "^1.0.0"
-      }
-    },
-    "exit": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
-      "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
-      "dev": true
-    },
-    "extend": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
-      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
-      "dev": true
-    },
-    "external-editor": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
-      "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
-      "dev": true,
-      "requires": {
-        "chardet": "^0.7.0",
-        "iconv-lite": "^0.4.24",
-        "tmp": "^0.0.33"
-      }
-    },
-    "extract-zip": {
-      "version": "1.6.7",
-      "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
-      "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
-      "dev": true,
-      "requires": {
-        "concat-stream": "1.6.2",
-        "debug": "2.6.9",
-        "mkdirp": "0.5.1",
-        "yauzl": "2.4.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"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "extsprintf": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
-      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
-      "dev": true
-    },
-    "fast-deep-equal": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
-      "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
-      "dev": true
-    },
-    "fast-json-stable-stringify": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
-      "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
-      "dev": true
-    },
-    "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
-    },
-    "fd-slicer": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
-      "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
-      "dev": true,
-      "requires": {
-        "pend": "~1.2.0"
-      }
-    },
-    "figures": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
-      "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
-      "dev": true,
-      "requires": {
-        "escape-string-regexp": "^1.0.5"
-      }
-    },
-    "file-entry-cache": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
-      "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
-      "dev": true,
-      "requires": {
-        "flat-cache": "^2.0.1"
-      }
-    },
-    "fill-range": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
-      "dev": true,
-      "requires": {
-        "to-regex-range": "^5.0.1"
-      }
-    },
-    "finalhandler": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
-      "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
-      "dev": true,
-      "requires": {
-        "debug": "2.6.9",
-        "encodeurl": "~1.0.2",
-        "escape-html": "~1.0.3",
-        "on-finished": "~2.3.0",
-        "parseurl": "~1.3.3",
-        "statuses": "~1.5.0",
-        "unpipe": "~1.0.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"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "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"
-      }
-    },
-    "flat": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
-      "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
-      "dev": true,
-      "requires": {
-        "is-buffer": "~2.0.3"
-      },
-      "dependencies": {
-        "is-buffer": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
-          "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
-          "dev": true
-        }
-      }
-    },
-    "flat-cache": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
-      "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
-      "dev": true,
-      "requires": {
-        "flatted": "^2.0.0",
-        "rimraf": "2.6.3",
-        "write": "1.0.3"
-      }
-    },
-    "flatted": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
-      "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
-      "dev": true
-    },
-    "follow-redirects": {
-      "version": "1.9.0",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz",
-      "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==",
-      "dev": true,
-      "requires": {
-        "debug": "^3.0.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        }
-      }
-    },
-    "forever-agent": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
-      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
-      "dev": true
-    },
-    "form-data": {
-      "version": "2.3.3",
-      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
-      "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
-      "dev": true,
-      "requires": {
-        "asynckit": "^0.4.0",
-        "combined-stream": "^1.0.6",
-        "mime-types": "^2.1.12"
-      }
-    },
-    "fs-access": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz",
-      "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=",
-      "dev": true,
-      "requires": {
-        "null-check": "^1.0.0"
-      }
-    },
-    "fs-extra": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
-      "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.2",
-        "jsonfile": "^4.0.0",
-        "universalify": "^0.1.0"
-      }
-    },
-    "fs.realpath": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
-      "dev": true
-    },
-    "fsevents": {
-      "version": "2.0.7",
-      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz",
-      "integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==",
-      "dev": true,
-      "optional": 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
-    },
-    "functional-red-black-tree": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
-      "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
-      "dev": true
-    },
-    "get-assigned-identifiers": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz",
-      "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==",
-      "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-func-name": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
-      "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
-      "dev": true
-    },
-    "get-stream": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-      "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-      "dev": true,
-      "requires": {
-        "pump": "^3.0.0"
-      }
-    },
-    "getpass": {
-      "version": "0.1.7",
-      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
-      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "^1.0.0"
-      }
-    },
-    "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": "5.0.0",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz",
-      "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==",
-      "dev": true,
-      "requires": {
-        "is-glob": "^4.0.1"
-      }
-    },
-    "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.2",
-      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
-      "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
-      "dev": true
-    },
-    "growl": {
-      "version": "1.10.5",
-      "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
-      "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
-      "dev": true
-    },
-    "handlebars": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.2.1.tgz",
-      "integrity": "sha512-bqPIlDk06UWbVEIFoYj+LVo42WhK96J+b25l7hbFDpxrOXMphFM3fNIm+cluwg4Pk2jiLjWU5nHQY7igGE75NQ==",
-      "dev": true,
-      "requires": {
-        "neo-async": "^2.6.0",
-        "optimist": "^0.6.1",
-        "source-map": "^0.6.1",
-        "uglify-js": "^3.1.4"
-      },
-      "dependencies": {
-        "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
-        }
-      }
-    },
-    "har-schema": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
-      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
-      "dev": true
-    },
-    "har-validator": {
-      "version": "5.1.3",
-      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
-      "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
-      "dev": true,
-      "requires": {
-        "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-binary2": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
-      "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
-      "dev": true,
-      "requires": {
-        "isarray": "2.0.1"
-      },
-      "dependencies": {
-        "isarray": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
-          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
-          "dev": true
-        }
-      }
-    },
-    "has-cors": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
-      "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
-      "dev": true
-    },
-    "has-flag": {
-      "version": "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.0",
-      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
-      "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
-      "dev": true
-    },
-    "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"
-      }
-    },
-    "hasha": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
-      "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
-      "dev": true,
-      "requires": {
-        "is-stream": "^1.0.1",
-        "pinkie-promise": "^2.0.0"
-      }
-    },
-    "he": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
-      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
-      "dev": true
-    },
-    "hmac-drbg": {
-      "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"
-      }
-    },
-    "htmlescape": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
-      "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=",
-      "dev": true
-    },
-    "htmlparser2": {
-      "version": "3.8.3",
-      "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
-      "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
-      "dev": true,
-      "requires": {
-        "domelementtype": "1",
-        "domhandler": "2.3",
-        "domutils": "1.5",
-        "entities": "1.0",
-        "readable-stream": "1.1"
-      },
-      "dependencies": {
-        "isarray": {
-          "version": "0.0.1",
-          "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
-          "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
-          "dev": true
-        },
-        "readable-stream": {
-          "version": "1.1.14",
-          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
-          "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
-          "dev": true,
-          "requires": {
-            "core-util-is": "~1.0.0",
-            "inherits": "~2.0.1",
-            "isarray": "0.0.1",
-            "string_decoder": "~0.10.x"
-          }
-        },
-        "string_decoder": {
-          "version": "0.10.31",
-          "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-          "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
-          "dev": true
-        }
-      }
-    },
-    "http-errors": {
-      "version": "1.7.2",
-      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
-      "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
-      "dev": true,
-      "requires": {
-        "depd": "~1.1.2",
-        "inherits": "2.0.3",
-        "setprototypeof": "1.1.1",
-        "statuses": ">= 1.5.0 < 2",
-        "toidentifier": "1.0.0"
-      },
-      "dependencies": {
-        "inherits": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
-          "dev": true
-        }
-      }
-    },
-    "http-proxy": {
-      "version": "1.18.0",
-      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz",
-      "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==",
-      "dev": true,
-      "requires": {
-        "eventemitter3": "^4.0.0",
-        "follow-redirects": "^1.0.0",
-        "requires-port": "^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=",
-      "dev": true,
-      "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"
-      }
-    },
-    "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
-    },
-    "ignore": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
-      "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
-      "dev": true
-    },
-    "import-fresh": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
-      "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==",
-      "dev": true,
-      "requires": {
-        "parent-module": "^1.0.0",
-        "resolve-from": "^4.0.0"
-      }
-    },
-    "imurmurhash": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
-      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
-      "dev": true
-    },
-    "indexof": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
-      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
-      "dev": true
-    },
-    "inflight": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-      "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
-    },
-    "inline-source-map": {
-      "version": "0.6.2",
-      "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
-      "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=",
-      "dev": true,
-      "requires": {
-        "source-map": "~0.5.3"
-      }
-    },
-    "inquirer": {
-      "version": "6.5.2",
-      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
-      "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
-      "dev": true,
-      "requires": {
-        "ansi-escapes": "^3.2.0",
-        "chalk": "^2.4.2",
-        "cli-cursor": "^2.1.0",
-        "cli-width": "^2.0.0",
-        "external-editor": "^3.0.3",
-        "figures": "^2.0.0",
-        "lodash": "^4.17.12",
-        "mute-stream": "0.0.7",
-        "run-async": "^2.2.0",
-        "rxjs": "^6.4.0",
-        "string-width": "^2.1.0",
-        "strip-ansi": "^5.1.0",
-        "through": "^2.3.6"
-      },
-      "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"
-          }
-        }
-      }
-    },
-    "insert-module-globals": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.0.tgz",
-      "integrity": "sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw==",
-      "dev": true,
-      "requires": {
-        "JSONStream": "^1.0.3",
-        "acorn-node": "^1.5.2",
-        "combine-source-map": "^0.8.0",
-        "concat-stream": "^1.6.1",
-        "is-buffer": "^1.1.0",
-        "path-is-absolute": "^1.0.1",
-        "process": "~0.11.0",
-        "through2": "^2.0.0",
-        "undeclared-identifiers": "^1.1.2",
-        "xtend": "^4.0.0"
-      }
-    },
-    "invert-kv": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
-      "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
-      "dev": true
-    },
-    "irregular-plurals": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz",
-      "integrity": "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y=",
-      "dev": true
-    },
-    "is-binary-path": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
-      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
-      "dev": true,
-      "requires": {
-        "binary-extensions": "^2.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.4",
-      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
-      "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
-      "dev": true
-    },
-    "is-date-object": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
-      "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
-      "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-number": {
-      "version": "7.0.0",
-      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
-      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-      "dev": true
-    },
-    "is-promise": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
-      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
-      "dev": true
-    },
-    "is-regex": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
-      "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
-      "dev": true,
-      "requires": {
-        "has": "^1.0.1"
-      }
-    },
-    "is-stream": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
-      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
-      "dev": true
-    },
-    "is-symbol": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
-      "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
-      "dev": true,
-      "requires": {
-        "has-symbols": "^1.0.0"
-      }
-    },
-    "is-typedarray": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
-      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
-      "dev": true
-    },
-    "is-wsl": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.0.tgz",
-      "integrity": "sha512-pFTjpv/x5HRj8kbZ/Msxi9VrvtOMRBqaDi3OIcbwPI3OuH+r3lLxVWukLITBaOGJIbA/w2+M1eVmVa4XNQlAmQ==",
-      "dev": true
-    },
-    "isarray": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-      "dev": true
-    },
-    "isbinaryfile": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz",
-      "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==",
-      "dev": true,
-      "requires": {
-        "buffer-alloc": "^1.2.0"
-      }
-    },
-    "isexe": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
-      "dev": true
-    },
-    "isstream": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
-      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
-      "dev": true
-    },
-    "istanbul": {
-      "version": "0.4.5",
-      "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz",
-      "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
-      "dev": true,
-      "requires": {
-        "abbrev": "1.0.x",
-        "async": "1.x",
-        "escodegen": "1.8.x",
-        "esprima": "2.7.x",
-        "glob": "^5.0.15",
-        "handlebars": "^4.0.1",
-        "js-yaml": "3.x",
-        "mkdirp": "0.5.x",
-        "nopt": "3.x",
-        "once": "1.x",
-        "resolve": "1.1.x",
-        "supports-color": "^3.1.0",
-        "which": "^1.1.1",
-        "wordwrap": "^1.0.0"
-      },
-      "dependencies": {
-        "esprima": {
-          "version": "2.7.3",
-          "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
-          "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
-          "dev": true
-        },
-        "glob": {
-          "version": "5.0.15",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
-          "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
-          "dev": true,
-          "requires": {
-            "inflight": "^1.0.4",
-            "inherits": "2",
-            "minimatch": "2 || 3",
-            "once": "^1.3.0",
-            "path-is-absolute": "^1.0.0"
-          }
-        },
-        "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
-        },
-        "resolve": {
-          "version": "1.1.7",
-          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
-          "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
-          "dev": true
-        },
-        "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"
-          }
-        }
-      }
-    },
-    "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=",
-      "dev": true
-    },
-    "jshint": {
-      "version": "2.10.2",
-      "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.10.2.tgz",
-      "integrity": "sha512-e7KZgCSXMJxznE/4WULzybCMNXNAd/bf5TSrvVEq78Q/K8ZwFpmBqQeDtNiHc3l49nV4E/+YeHU/JZjSUIrLAA==",
-      "dev": true,
-      "requires": {
-        "cli": "~1.0.0",
-        "console-browserify": "1.1.x",
-        "exit": "0.1.x",
-        "htmlparser2": "3.8.x",
-        "lodash": "~4.17.11",
-        "minimatch": "~3.0.2",
-        "shelljs": "0.3.x",
-        "strip-json-comments": "1.0.x"
-      },
-      "dependencies": {
-        "strip-json-comments": {
-          "version": "1.0.4",
-          "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
-          "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
-          "dev": true
-        }
-      }
-    },
-    "jshint-stylish": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/jshint-stylish/-/jshint-stylish-2.2.1.tgz",
-      "integrity": "sha1-JCCCosA1rgP9gQROBXDMQgjPbmE=",
-      "dev": true,
-      "requires": {
-        "beeper": "^1.1.0",
-        "chalk": "^1.0.0",
-        "log-symbols": "^1.0.0",
-        "plur": "^2.1.0",
-        "string-length": "^1.0.0",
-        "text-table": "^0.2.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"
-          }
-        },
-        "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": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "json-schema": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
-      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
-      "dev": true
-    },
-    "json-schema-traverse": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-      "dev": true
-    },
-    "json-stable-stringify": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz",
-      "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=",
-      "dev": true,
-      "requires": {
-        "jsonify": "~0.0.0"
-      }
-    },
-    "json-stable-stringify-without-jsonify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
-      "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
-      "dev": true
-    },
-    "json-stringify-safe": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
-      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
-      "dev": true
-    },
-    "jsonfile": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
-      "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.6"
-      }
-    },
-    "jsonify": {
-      "version": "0.0.0",
-      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
-      "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
-      "dev": true
-    },
-    "jsonparse": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
-      "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
-      "dev": true
-    },
-    "jsprim": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
-      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "1.0.0",
-        "extsprintf": "1.3.0",
-        "json-schema": "0.2.3",
-        "verror": "1.10.0"
-      }
-    },
-    "karma": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/karma/-/karma-4.3.0.tgz",
-      "integrity": "sha512-NSPViHOt+RW38oJklvYxQC4BSQsv737oQlr/r06pCM+slDOr4myuI1ivkRmp+3dVpJDfZt2DmaPJ2wkx+ZZuMQ==",
-      "dev": true,
-      "requires": {
-        "bluebird": "^3.3.0",
-        "body-parser": "^1.16.1",
-        "braces": "^3.0.2",
-        "chokidar": "^3.0.0",
-        "colors": "^1.1.0",
-        "connect": "^3.6.0",
-        "core-js": "^3.1.3",
-        "di": "^0.0.1",
-        "dom-serialize": "^2.2.0",
-        "flatted": "^2.0.0",
-        "glob": "^7.1.1",
-        "graceful-fs": "^4.1.2",
-        "http-proxy": "^1.13.0",
-        "isbinaryfile": "^3.0.0",
-        "lodash": "^4.17.14",
-        "log4js": "^4.0.0",
-        "mime": "^2.3.1",
-        "minimatch": "^3.0.2",
-        "optimist": "^0.6.1",
-        "qjobs": "^1.1.4",
-        "range-parser": "^1.2.0",
-        "rimraf": "^2.6.0",
-        "safe-buffer": "^5.0.1",
-        "socket.io": "2.1.1",
-        "source-map": "^0.6.1",
-        "tmp": "0.0.33",
-        "useragent": "2.3.0"
-      },
-      "dependencies": {
-        "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
-        }
-      }
-    },
-    "karma-chrome-launcher": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz",
-      "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==",
-      "dev": true,
-      "requires": {
-        "fs-access": "^1.0.0",
-        "which": "^1.2.1"
-      }
-    },
-    "karma-firefox-launcher": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.2.0.tgz",
-      "integrity": "sha512-j9Zp8M8+VLq1nI/5xZGfzeaEPtGQ/vk3G+Y8vpmFWLvKLNZ2TDjD6cu2dUu7lDbu1HXNgatsAX4jgCZTkR9qhQ==",
-      "dev": true,
-      "requires": {
-        "is-wsl": "^2.1.0"
-      }
-    },
-    "karma-mocha": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.3.0.tgz",
-      "integrity": "sha1-7qrH/8DiAetjxGdEDStpx883eL8=",
-      "dev": true,
-      "requires": {
-        "minimist": "1.2.0"
-      }
-    },
-    "karma-phantomjs-launcher": {
-      "version": "1.0.4",
-      "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz",
-      "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.0.1",
-        "phantomjs-prebuilt": "^2.1.7"
-      }
-    },
-    "karma-requirejs": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/karma-requirejs/-/karma-requirejs-1.1.0.tgz",
-      "integrity": "sha1-/driy4fX68FvsCIok1ZNf+5Xh5g=",
-      "dev": true
-    },
-    "karma-safari-launcher": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz",
-      "integrity": "sha1-lpgqLMR9BmquccVTursoMZEVos4=",
-      "dev": true
-    },
-    "kew": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
-      "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
-      "dev": true
-    },
-    "klaw": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
-      "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.9"
-      }
-    },
-    "labeled-stream-splicer": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz",
-      "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "stream-splicer": "^2.0.0"
-      }
-    },
-    "lcid": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
-      "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
-      "dev": true,
-      "requires": {
-        "invert-kv": "^2.0.0"
-      }
-    },
-    "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": "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"
-      }
-    },
-    "lodash": {
-      "version": "4.17.15",
-      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
-      "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
-    },
-    "lodash.memoize": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
-      "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=",
-      "dev": true
-    },
-    "log-symbols": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
-      "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
-      "dev": true,
-      "requires": {
-        "chalk": "^1.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
-        },
-        "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"
-          }
-        },
-        "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": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        }
-      }
-    },
-    "log4js": {
-      "version": "4.5.1",
-      "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz",
-      "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==",
-      "dev": true,
-      "requires": {
-        "date-format": "^2.0.0",
-        "debug": "^4.1.1",
-        "flatted": "^2.0.0",
-        "rfdc": "^1.1.4",
-        "streamroller": "^1.0.6"
-      }
-    },
-    "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"
-      }
-    },
-    "map-age-cleaner": {
-      "version": "0.1.3",
-      "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
-      "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
-      "dev": true,
-      "requires": {
-        "p-defer": "^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"
-      }
-    },
-    "media-typer": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
-      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
-      "dev": true
-    },
-    "mem": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
-      "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
-      "dev": true,
-      "requires": {
-        "map-age-cleaner": "^0.1.1",
-        "mimic-fn": "^2.0.0",
-        "p-is-promise": "^2.0.0"
-      },
-      "dependencies": {
-        "mimic-fn": {
-          "version": "2.1.0",
-          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
-          "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
-          "dev": true
-        }
-      }
-    },
-    "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": "2.4.4",
-      "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
-      "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
-      "dev": true
-    },
-    "mime-db": {
-      "version": "1.40.0",
-      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
-      "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
-      "dev": true
-    },
-    "mime-types": {
-      "version": "2.1.24",
-      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
-      "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
-      "dev": true,
-      "requires": {
-        "mime-db": "1.40.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.0",
-      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
-      "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
-      "dev": true
-    },
-    "mkdirp": {
-      "version": "0.5.1",
-      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
-      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
-      "dev": true,
-      "requires": {
-        "minimist": "0.0.8"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "0.0.8",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
-          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
-          "dev": true
-        }
-      }
-    },
-    "mocha": {
-      "version": "6.2.0",
-      "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz",
-      "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==",
-      "dev": true,
-      "requires": {
-        "ansi-colors": "3.2.3",
-        "browser-stdout": "1.3.1",
-        "debug": "3.2.6",
-        "diff": "3.5.0",
-        "escape-string-regexp": "1.0.5",
-        "find-up": "3.0.0",
-        "glob": "7.1.3",
-        "growl": "1.10.5",
-        "he": "1.2.0",
-        "js-yaml": "3.13.1",
-        "log-symbols": "2.2.0",
-        "minimatch": "3.0.4",
-        "mkdirp": "0.5.1",
-        "ms": "2.1.1",
-        "node-environment-flags": "1.0.5",
-        "object.assign": "4.1.0",
-        "strip-json-comments": "2.0.1",
-        "supports-color": "6.0.0",
-        "which": "1.3.1",
-        "wide-align": "1.1.3",
-        "yargs": "13.2.2",
-        "yargs-parser": "13.0.0",
-        "yargs-unparser": "1.5.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "glob": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
-          "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
-          "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"
-          }
-        },
-        "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"
-          }
-        },
-        "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
-        },
-        "supports-color": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
-          "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        }
-      }
-    },
-    "module-deps": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.1.tgz",
-      "integrity": "sha512-UnEn6Ah36Tu4jFiBbJVUtt0h+iXqxpLqDvPS8nllbw5RZFmNJ1+Mz5BjYnM9ieH80zyxHkARGLnMIHlPK5bu6A==",
-      "dev": true,
-      "requires": {
-        "JSONStream": "^1.0.3",
-        "browser-resolve": "^1.7.0",
-        "cached-path-relative": "^1.0.2",
-        "concat-stream": "~1.6.0",
-        "defined": "^1.0.0",
-        "detective": "^5.0.2",
-        "duplexer2": "^0.1.2",
-        "inherits": "^2.0.1",
-        "parents": "^1.0.0",
-        "readable-stream": "^2.0.2",
-        "resolve": "^1.4.0",
-        "stream-combiner2": "^1.1.1",
-        "subarg": "^1.0.0",
-        "through2": "^2.0.0",
-        "xtend": "^4.0.0"
-      }
-    },
-    "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
-    },
-    "mute-stream": {
-      "version": "0.0.7",
-      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
-      "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
-      "dev": true
-    },
-    "natural-compare": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
-      "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
-      "dev": true
-    },
-    "negotiator": {
-      "version": "0.6.2",
-      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
-      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
-      "dev": true
-    },
-    "neo-async": {
-      "version": "2.6.1",
-      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
-      "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
-      "dev": true
-    },
-    "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-environment-flags": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
-      "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
-      "dev": true,
-      "requires": {
-        "object.getownpropertydescriptors": "^2.0.3",
-        "semver": "^5.7.0"
-      }
-    },
-    "nopt": {
-      "version": "3.0.6",
-      "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
-      "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
-      "dev": true,
-      "requires": {
-        "abbrev": "1"
-      }
-    },
-    "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
-    },
-    "npm-run-path": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
-      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
-      "dev": true,
-      "requires": {
-        "path-key": "^2.0.0"
-      }
-    },
-    "null-check": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz",
-      "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=",
-      "dev": true
-    },
-    "number-is-nan": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
-      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
-      "dev": true
-    },
-    "oauth-sign": {
-      "version": "0.9.0",
-      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
-      "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
-      "dev": true
-    },
-    "object-assign": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
-      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
-      "dev": true
-    },
-    "object-component": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
-      "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
-      "dev": true
-    },
-    "object-inspect": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
-      "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
-      "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.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.0.3",
-      "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
-      "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.2",
-        "es-abstract": "^1.5.1"
-      }
-    },
-    "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"
-      }
-    },
-    "optimist": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
-      "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
-      "dev": true,
-      "requires": {
-        "minimist": "~0.0.1",
-        "wordwrap": "~0.0.2"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "0.0.10",
-          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
-          "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
-          "dev": true
-        },
-        "wordwrap": {
-          "version": "0.0.3",
-          "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
-          "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
-          "dev": true
-        }
-      }
-    },
-    "optionator": {
-      "version": "0.8.2",
-      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
-      "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
-      "dev": true,
-      "requires": {
-        "deep-is": "~0.1.3",
-        "fast-levenshtein": "~2.0.4",
-        "levn": "~0.3.0",
-        "prelude-ls": "~1.1.2",
-        "type-check": "~0.3.2",
-        "wordwrap": "~1.0.0"
-      }
-    },
-    "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-locale": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
-      "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
-      "dev": true,
-      "requires": {
-        "execa": "^1.0.0",
-        "lcid": "^2.0.0",
-        "mem": "^4.0.0"
-      }
-    },
-    "os-tmpdir": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
-      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
-      "dev": true
-    },
-    "p-defer": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
-      "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
-      "dev": true
-    },
-    "p-finally": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
-      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
-      "dev": true
-    },
-    "p-is-promise": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
-      "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
-      "dev": true
-    },
-    "p-limit": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
-      "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
-      "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
-    },
-    "pako": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
-      "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
-      "dev": true
-    },
-    "parent-module": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
-      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
-      "dev": true,
-      "requires": {
-        "callsites": "^3.0.0"
-      }
-    },
-    "parents": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
-      "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=",
-      "dev": true,
-      "requires": {
-        "path-platform": "~0.11.15"
-      }
-    },
-    "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"
-      }
-    },
-    "parseqs": {
-      "version": "0.0.5",
-      "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
-      "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
-      "dev": true,
-      "requires": {
-        "better-assert": "~1.0.0"
-      }
-    },
-    "parseuri": {
-      "version": "0.0.5",
-      "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
-      "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
-      "dev": true,
-      "requires": {
-        "better-assert": "~1.0.0"
-      }
-    },
-    "parseurl": {
-      "version": "1.3.3",
-      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
-      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
-      "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-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-is-inside": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
-      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
-      "dev": true
-    },
-    "path-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
-    },
-    "path-platform": {
-      "version": "0.11.15",
-      "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz",
-      "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=",
-      "dev": true
-    },
-    "pathval": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
-      "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
-      "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"
-      }
-    },
-    "pend": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
-      "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
-      "dev": true
-    },
-    "performance-now": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
-      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
-      "dev": true
-    },
-    "phantomjs-prebuilt": {
-      "version": "2.1.16",
-      "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
-      "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
-      "dev": true,
-      "requires": {
-        "es6-promise": "^4.0.3",
-        "extract-zip": "^1.6.5",
-        "fs-extra": "^1.0.0",
-        "hasha": "^2.2.0",
-        "kew": "^0.7.0",
-        "progress": "^1.1.8",
-        "request": "^2.81.0",
-        "request-progress": "^2.0.1",
-        "which": "^1.2.10"
-      },
-      "dependencies": {
-        "fs-extra": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
-          "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "jsonfile": "^2.1.0",
-            "klaw": "^1.0.0"
-          }
-        },
-        "jsonfile": {
-          "version": "2.4.0",
-          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
-          "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.6"
-          }
-        },
-        "progress": {
-          "version": "1.1.8",
-          "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
-          "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
-          "dev": true
-        }
-      }
-    },
-    "picomatch": {
-      "version": "2.0.7",
-      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz",
-      "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==",
-      "dev": true
-    },
-    "pinkie": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
-      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
-      "dev": true
-    },
-    "pinkie-promise": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
-      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
-      "dev": true,
-      "requires": {
-        "pinkie": "^2.0.0"
-      }
-    },
-    "platform": {
-      "version": "1.3.5",
-      "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz",
-      "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==",
-      "dev": true
-    },
-    "plur": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz",
-      "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=",
-      "dev": true,
-      "requires": {
-        "irregular-plurals": "^1.0.0"
-      }
-    },
-    "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
-    },
-    "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
-    },
-    "progress": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
-      "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
-      "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.4.0",
-      "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz",
-      "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==",
-      "dev": true
-    },
-    "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"
-      }
-    },
-    "pump": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-      "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "^1.1.0",
-        "once": "^1.3.1"
-      }
-    },
-    "punycode": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
-      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
-      "dev": true
-    },
-    "qjobs": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
-      "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
-      "dev": true
-    },
-    "qs": {
-      "version": "6.7.0",
-      "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
-      "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
-      "dev": true
-    },
-    "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
-    },
-    "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
-    },
-    "raw-body": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
-      "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
-      "dev": true,
-      "requires": {
-        "bytes": "3.1.0",
-        "http-errors": "1.7.2",
-        "iconv-lite": "0.4.24",
-        "unpipe": "1.0.0"
-      }
-    },
-    "read-only-stream": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
-      "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=",
-      "dev": true,
-      "requires": {
-        "readable-stream": "^2.0.2"
-      }
-    },
-    "readable-stream": {
-      "version": "2.3.6",
-      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
-      "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
-      "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"
-      },
-      "dependencies": {
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true
-        },
-        "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"
-          }
-        }
-      }
-    },
-    "readdirp": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.1.2.tgz",
-      "integrity": "sha512-8rhl0xs2cxfVsqzreYCvs8EwBfn/DhVdqtoLmw19uI3SC5avYX9teCurlErfpPXGmYtMHReGaP2RsLnFvz/lnw==",
-      "dev": true,
-      "requires": {
-        "picomatch": "^2.0.4"
-      }
-    },
-    "regexpp": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
-      "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
-      "dev": true
-    },
-    "request": {
-      "version": "2.88.0",
-      "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
-      "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
-      "dev": true,
-      "requires": {
-        "aws-sign2": "~0.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.0",
-        "http-signature": "~1.2.0",
-        "is-typedarray": "~1.0.0",
-        "isstream": "~0.1.2",
-        "json-stringify-safe": "~5.0.1",
-        "mime-types": "~2.1.19",
-        "oauth-sign": "~0.9.0",
-        "performance-now": "^2.1.0",
-        "qs": "~6.5.2",
-        "safe-buffer": "^5.1.2",
-        "tough-cookie": "~2.4.3",
-        "tunnel-agent": "^0.6.0",
-        "uuid": "^3.3.2"
-      },
-      "dependencies": {
-        "qs": {
-          "version": "6.5.2",
-          "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-          "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-          "dev": true
-        }
-      }
-    },
-    "request-progress": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
-      "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
-      "dev": true,
-      "requires": {
-        "throttleit": "^1.0.0"
-      }
-    },
-    "require-directory": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
-      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
-      "dev": true
-    },
-    "require-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
-    },
-    "requirejs": {
-      "version": "2.3.6",
-      "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz",
-      "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==",
-      "dev": true
-    },
-    "requires-port": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
-      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
-      "dev": true
-    },
-    "resolve": {
-      "version": "1.12.0",
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
-      "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
-      "dev": true,
-      "requires": {
-        "path-parse": "^1.0.6"
-      }
-    },
-    "resolve-from": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
-      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
-      "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"
-      }
-    },
-    "rfdc": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz",
-      "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==",
-      "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"
-      }
-    },
-    "run-async": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
-      "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
-      "dev": true,
-      "requires": {
-        "is-promise": "^2.1.0"
-      }
-    },
-    "rxjs": {
-      "version": "6.5.3",
-      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
-      "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
-      "dev": true,
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "safe-buffer": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
-      "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
-      "dev": true
-    },
-    "safer-buffer": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
-      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
-      "dev": true
-    },
-    "seedrandom": {
-      "version": "2.4.4",
-      "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.4.tgz",
-      "integrity": "sha512-9A+PDmgm+2du77B5i0Ip2cxOqqHjgNxnBgglxLcX78A2D6c2rTo61z4jnVABpF4cKeDMDG+cmXXvdnqse2VqMA==",
-      "dev": true
-    },
-    "semver": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-      "dev": true
-    },
-    "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
-    },
-    "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"
-      }
-    },
-    "shasum": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
-      "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=",
-      "dev": true,
-      "requires": {
-        "json-stable-stringify": "~0.0.0",
-        "sha.js": "~2.4.4"
-      }
-    },
-    "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
-    },
-    "shell-quote": {
-      "version": "1.7.2",
-      "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
-      "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==",
-      "dev": true
-    },
-    "shelljs": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
-      "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
-      "dev": true
-    },
-    "signal-exit": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
-      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
-      "dev": true
-    },
-    "simple-concat": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
-      "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=",
-      "dev": true
-    },
-    "slice-ansi": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
-      "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "^3.2.0",
-        "astral-regex": "^1.0.0",
-        "is-fullwidth-code-point": "^2.0.0"
-      }
-    },
-    "socket.io": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz",
-      "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==",
-      "dev": true,
-      "requires": {
-        "debug": "~3.1.0",
-        "engine.io": "~3.2.0",
-        "has-binary2": "~1.0.2",
-        "socket.io-adapter": "~1.1.0",
-        "socket.io-client": "2.1.1",
-        "socket.io-parser": "~3.2.0"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "socket.io-adapter": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz",
-      "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=",
-      "dev": true
-    },
-    "socket.io-client": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",
-      "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",
-      "dev": true,
-      "requires": {
-        "backo2": "1.0.2",
-        "base64-arraybuffer": "0.1.5",
-        "component-bind": "1.0.0",
-        "component-emitter": "1.2.1",
-        "debug": "~3.1.0",
-        "engine.io-client": "~3.2.0",
-        "has-binary2": "~1.0.2",
-        "has-cors": "1.1.0",
-        "indexof": "0.0.1",
-        "object-component": "0.0.3",
-        "parseqs": "0.0.5",
-        "parseuri": "0.0.5",
-        "socket.io-parser": "~3.2.0",
-        "to-array": "0.1.4"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "ms": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-          "dev": true
-        }
-      }
-    },
-    "socket.io-parser": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz",
-      "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==",
-      "dev": true,
-      "requires": {
-        "component-emitter": "1.2.1",
-        "debug": "~3.1.0",
-        "isarray": "2.0.1"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-          "dev": true,
-          "requires": {
-            "ms": "2.0.0"
-          }
-        },
-        "isarray": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
-          "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
-          "dev": true
-        },
-        "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
-    },
-    "sprintf": {
-      "version": "0.1.5",
-      "resolved": "https://registry.npmjs.org/sprintf/-/sprintf-0.1.5.tgz",
-      "integrity": "sha1-j4PjmpMXwaUCy324BQ5Rxnn27c8=",
-      "dev": true
-    },
-    "sprintf-js": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
-      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
-      "dev": true
-    },
-    "sshpk": {
-      "version": "1.16.1",
-      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
-      "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
-      "dev": true,
-      "requires": {
-        "asn1": "~0.2.3",
-        "assert-plus": "^1.0.0",
-        "bcrypt-pbkdf": "^1.0.0",
-        "dashdash": "^1.12.0",
-        "ecc-jsbn": "~0.1.1",
-        "getpass": "^0.1.1",
-        "jsbn": "~0.1.0",
-        "safer-buffer": "^2.0.2",
-        "tweetnacl": "~0.14.0"
-      }
-    },
-    "statuses": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
-      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
-      "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-combiner2": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
-      "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
-      "dev": true,
-      "requires": {
-        "duplexer2": "~0.1.0",
-        "readable-stream": "^2.0.2"
-      }
-    },
-    "stream-http": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.0.tgz",
-      "integrity": "sha512-cuB6RgO7BqC4FBYzmnvhob5Do3wIdIsXAgGycHJnW+981gHqoYcYz9lqjJrk8WXRddbwPuqPYRl+bag6mYv4lw==",
-      "dev": true,
-      "requires": {
-        "builtin-status-codes": "^3.0.0",
-        "inherits": "^2.0.1",
-        "readable-stream": "^3.0.6",
-        "xtend": "^4.0.0"
-      },
-      "dependencies": {
-        "readable-stream": {
-          "version": "3.4.0",
-          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
-          "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
-          "dev": true,
-          "requires": {
-            "inherits": "^2.0.3",
-            "string_decoder": "^1.1.1",
-            "util-deprecate": "^1.0.1"
-          }
-        }
-      }
-    },
-    "stream-splicer": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz",
-      "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.1",
-        "readable-stream": "^2.0.2"
-      }
-    },
-    "streamroller": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz",
-      "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==",
-      "dev": true,
-      "requires": {
-        "async": "^2.6.2",
-        "date-format": "^2.0.0",
-        "debug": "^3.2.6",
-        "fs-extra": "^7.0.1",
-        "lodash": "^4.17.14"
-      },
-      "dependencies": {
-        "async": {
-          "version": "2.6.3",
-          "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
-          "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
-          "dev": true,
-          "requires": {
-            "lodash": "^4.17.14"
-          }
-        },
-        "debug": {
-          "version": "3.2.6",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
-          "dev": true,
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        }
-      }
-    },
-    "string-length": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
-      "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
-      "dev": true,
-      "requires": {
-        "strip-ansi": "^3.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
-        },
-        "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"
-          }
-        }
-      }
-    },
-    "string-width": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-      "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-      "dev": true,
-      "requires": {
-        "is-fullwidth-code-point": "^2.0.0",
-        "strip-ansi": "^4.0.0"
-      }
-    },
-    "string.prototype.trimleft": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
-      "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.3",
-        "function-bind": "^1.1.1"
-      }
-    },
-    "string.prototype.trimright": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
-      "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.3",
-        "function-bind": "^1.1.1"
-      }
-    },
-    "string_decoder": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
-      "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "~5.2.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"
-      }
-    },
-    "strip-eof": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
-      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
-      "dev": true
-    },
-    "strip-json-comments": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
-      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
-      "dev": true
-    },
-    "subarg": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
-      "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
-      "dev": true,
-      "requires": {
-        "minimist": "^1.1.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"
-      }
-    },
-    "syntax-error": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz",
-      "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==",
-      "dev": true,
-      "requires": {
-        "acorn-node": "^1.2.0"
-      }
-    },
-    "table": {
-      "version": "5.4.6",
-      "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
-      "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
-      "dev": true,
-      "requires": {
-        "ajv": "^6.10.2",
-        "lodash": "^4.17.14",
-        "slice-ansi": "^2.1.0",
-        "string-width": "^3.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
-        },
-        "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"
-          }
-        },
-        "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"
-          }
-        }
-      }
-    },
-    "text-table": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
-      "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
-      "dev": true
-    },
-    "throttleit": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
-      "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
-      "dev": true
-    },
-    "through": {
-      "version": "2.3.8",
-      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
-      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
-      "dev": true
-    },
-    "through2": {
-      "version": "2.0.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": "1.4.2",
-      "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
-      "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
-      "dev": true,
-      "requires": {
-        "process": "~0.11.0"
-      }
-    },
-    "tmp": {
-      "version": "0.0.33",
-      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
-      "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
-      "dev": true,
-      "requires": {
-        "os-tmpdir": "~1.0.2"
-      }
-    },
-    "to-array": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
-      "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
-      "dev": true
-    },
-    "to-regex-range": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
-      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
-      "dev": true,
-      "requires": {
-        "is-number": "^7.0.0"
-      }
-    },
-    "toidentifier": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
-      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
-      "dev": true
-    },
-    "tough-cookie": {
-      "version": "2.4.3",
-      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
-      "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
-      "dev": true,
-      "requires": {
-        "psl": "^1.1.24",
-        "punycode": "^1.4.1"
-      }
-    },
-    "tslib": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
-      "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
-      "dev": true
-    },
-    "tty-browserify": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
-      "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
-      "dev": true
-    },
-    "tunnel-agent": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
-      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "^5.0.1"
-      }
-    },
-    "tweetnacl": {
-      "version": "0.14.5",
-      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
-      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
-      "dev": true
-    },
-    "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": {
-        "prelude-ls": "~1.1.2"
-      }
-    },
-    "type-detect": {
-      "version": "4.0.8",
-      "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
-      "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
-      "dev": true
-    },
-    "type-is": {
-      "version": "1.6.18",
-      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
-      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
-      "dev": true,
-      "requires": {
-        "media-typer": "0.3.0",
-        "mime-types": "~2.1.24"
-      }
-    },
-    "typedarray": {
-      "version": "0.0.6",
-      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
-      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
-      "dev": true
-    },
-    "uglify-js": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
-      "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
-      "dev": true,
-      "requires": {
-        "commander": "~2.20.0",
-        "source-map": "~0.6.1"
-      },
-      "dependencies": {
-        "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
-        }
-      }
-    },
-    "ultron": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
-      "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
-      "dev": true
-    },
-    "umd": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz",
-      "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==",
-      "dev": true
-    },
-    "undeclared-identifiers": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz",
-      "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==",
-      "dev": true,
-      "requires": {
-        "acorn-node": "^1.3.0",
-        "dash-ast": "^1.0.0",
-        "get-assigned-identifiers": "^1.2.0",
-        "simple-concat": "^1.0.0",
-        "xtend": "^4.0.1"
-      }
-    },
-    "universalify": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
-      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
-      "dev": true
-    },
-    "unpipe": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
-      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
-      "dev": true
-    },
-    "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==",
-      "dev": true,
-      "requires": {
-        "punycode": "^2.1.0"
-      },
-      "dependencies": {
-        "punycode": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
-          "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
-          "dev": true
-        }
-      }
-    },
-    "url": {
-      "version": "0.11.0",
-      "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
-      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
-      "dev": true,
-      "requires": {
-        "punycode": "1.3.2",
-        "querystring": "0.2.0"
-      },
-      "dependencies": {
-        "punycode": {
-          "version": "1.3.2",
-          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
-          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
-          "dev": true
-        }
-      }
-    },
-    "useragent": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz",
-      "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==",
-      "dev": true,
-      "requires": {
-        "lru-cache": "4.1.x",
-        "tmp": "0.0.x"
-      }
-    },
-    "util": {
-      "version": "0.10.4",
-      "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
-      "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
-      "dev": true,
-      "requires": {
-        "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
-        }
-      }
-    },
-    "util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
-      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
-      "dev": true
-    },
-    "utils-merge": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
-      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
-      "dev": true
-    },
-    "uuid": {
-      "version": "3.3.3",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
-      "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
-      "dev": true
-    },
-    "verror": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
-      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "^1.0.0",
-        "core-util-is": "1.0.2",
-        "extsprintf": "^1.2.0"
-      }
-    },
-    "vm-browserify": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz",
-      "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==",
-      "dev": true
-    },
-    "void-elements": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
-      "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
-      "dev": true
-    },
-    "which": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-      "dev": true,
-      "requires": {
-        "isexe": "^2.0.0"
-      }
-    },
-    "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
-    },
-    "wide-align": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
-      "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
-      "dev": true,
-      "requires": {
-        "string-width": "^1.0.2 || 2"
-      }
-    },
-    "wordwrap": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
-      "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
-      "dev": true
-    },
-    "wrap-ansi": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
-      "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
-      "dev": true,
-      "requires": {
-        "string-width": "^1.0.1",
-        "strip-ansi": "^3.0.1"
-      },
-      "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
-        },
-        "is-fullwidth-code-point": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
-          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
-          "dev": true,
-          "requires": {
-            "number-is-nan": "^1.0.0"
-          }
-        },
-        "string-width": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
-          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-          "dev": true,
-          "requires": {
-            "code-point-at": "^1.0.0",
-            "is-fullwidth-code-point": "^1.0.0",
-            "strip-ansi": "^3.0.0"
-          }
-        },
-        "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"
-          }
-        }
-      }
-    },
-    "wrappy": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-      "dev": true
-    },
-    "write": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
-      "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
-      "dev": true,
-      "requires": {
-        "mkdirp": "^0.5.1"
-      }
-    },
-    "ws": {
-      "version": "3.3.3",
-      "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
-      "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
-      "dev": true,
-      "requires": {
-        "async-limiter": "~1.0.0",
-        "safe-buffer": "~5.1.0",
-        "ultron": "~1.1.0"
-      },
-      "dependencies": {
-        "safe-buffer": {
-          "version": "5.1.2",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-          "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-          "dev": true
-        }
-      }
-    },
-    "xmlhttprequest-ssl": {
-      "version": "1.5.5",
-      "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",
-      "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=",
-      "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": "13.2.2",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz",
-      "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==",
-      "dev": true,
-      "requires": {
-        "cliui": "^4.0.0",
-        "find-up": "^3.0.0",
-        "get-caller-file": "^2.0.1",
-        "os-locale": "^3.1.0",
-        "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": "^13.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
-        },
-        "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"
-          }
-        },
-        "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"
-          }
-        }
-      }
-    },
-    "yargs-parser": {
-      "version": "13.0.0",
-      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz",
-      "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==",
-      "dev": true,
-      "requires": {
-        "camelcase": "^5.0.0",
-        "decamelize": "^1.2.0"
-      }
-    },
-    "yargs-unparser": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz",
-      "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==",
-      "dev": true,
-      "requires": {
-        "flat": "^4.1.0",
-        "lodash": "^4.17.11",
-        "yargs": "^12.0.5"
-      },
-      "dependencies": {
-        "get-caller-file": {
-          "version": "1.0.3",
-          "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
-          "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
-          "dev": true
-        },
-        "require-main-filename": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
-          "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
-          "dev": true
-        },
-        "yargs": {
-          "version": "12.0.5",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
-          "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
-          "dev": true,
-          "requires": {
-            "cliui": "^4.0.0",
-            "decamelize": "^1.2.0",
-            "find-up": "^3.0.0",
-            "get-caller-file": "^1.0.1",
-            "os-locale": "^3.0.0",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^1.0.1",
-            "set-blocking": "^2.0.0",
-            "string-width": "^2.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^3.2.1 || ^4.0.0",
-            "yargs-parser": "^11.1.1"
-          }
-        },
-        "yargs-parser": {
-          "version": "11.1.1",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
-          "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
-          "dev": true,
-          "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
-          }
-        }
-      }
-    },
-    "yauzl": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
-      "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
-      "dev": true,
-      "requires": {
-        "fd-slicer": "~1.0.1"
-      }
-    },
-    "yeast": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
-      "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
-      "dev": true
-    }
-  }
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/README.md 0.32.1+repack1+~cs5.2.1-1/graphlib/README.md
--- 0.32.1+ds+~cs9.4.17-2/graphlib/README.md	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/README.md	1970-01-01 00:00:00.000000000 +0000
@@ -1,16 +0,0 @@
-# Graphlib
-
-Graphlib is a JavaScript library that provides data structures for undirected
-and directed multi-graphs along with algorithms that can be used with them.
-
-[![Build Status](https://secure.travis-ci.org/dagrejs/graphlib.svg)](http://travis-ci.org/dagrejs/graphlib)
-
-To learn more [see our Wiki](https://github.com/cpettitt/graphlib/wiki).
-
-# License
-
-Graphlib is licensed under the terms of the MIT License. See the
-[LICENSE](LICENSE) file
-for details.
-
-[npm package manager]: http://npmjs.org/
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/src/bench.js 0.32.1+repack1+~cs5.2.1-1/graphlib/src/bench.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/src/bench.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/src/bench.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,170 +0,0 @@
-#!/usr/bin/env node
-
-var Benchmark = require("benchmark"),
-    seedrandom = require("seedrandom"),
-    sprintf = require("sprintf").sprintf;
-
-var seed = process.env.SEED;
-seedrandom(seed, { global: true });
-if (seed) {
-  console.log("SEED: %s (%d)", seed, Math.random());
-}
-
-var Graph = require("..").Graph,
-    alg = require("..").alg;
-
-var NODE_SIZES = [100],
-    EDGE_DENSITY = 0.2,
-    KEY_SIZE = 10;
-
-function runBenchmark(name, fn) {
-  var options = {};
-  options.onComplete = function(bench) {
-    var target = bench.target,
-        hz = target.hz,
-        stats = target.stats,
-        rme = stats.rme,
-        samples = stats.sample.length,
-        msg = sprintf("    %25s: %13s ops/sec \xb1 %s%% (%3d run(s) sampled)",
-                      target.name,
-                      Benchmark.formatNumber(hz.toFixed(2)),
-                      rme.toFixed(2),
-                      samples);
-    console.log(msg);
-  };
-  options.onError = function(bench) {
-    console.error("    " + bench.target.error);
-  };
-  options.setup = function() {
-    this.count = Math.random() * 1000;
-    this.nextInt = function(range) {
-      return Math.floor(this.count++ % range );
-    };
-  };
-  new Benchmark(name, fn, options).run();
-}
-
-function keys(count) {
-  var ks = [],
-      k;
-  for (var i = 0; i < count; ++i) {
-    k = "";
-    for (var j = 0; j < KEY_SIZE; ++j) {
-      k += String.fromCharCode(97 + Math.floor(Math.random() * 26));
-    }
-    ks.push(k);
-  }
-  return ks;
-}
-
-function buildGraph(numNodes, edgeDensity) {
-  var g = new Graph(),
-      numEdges = numNodes * numNodes * edgeDensity,
-      ks = keys(numNodes);
-
-  ks.forEach(function(k) { g.setNode(k); });
-
-  for (var i = 0; i < numEdges; ++i) {
-    var v, w;
-    do {
-      v = ks[Math.floor(Math.random() * ks.length)];
-      w = ks[Math.floor(Math.random() * ks.length)];
-    } while (g.hasEdge(v, w));
-    g.setEdge(v, w);
-  }
-  return g;
-}
-
-NODE_SIZES.forEach(function(size) {
-  var g = buildGraph(size, EDGE_DENSITY),
-      nodes = g.nodes(),
-      edges = g.edges(),
-      nameSuffix = "(" + size + "," + EDGE_DENSITY + ")";
-
-  runBenchmark("nodes" + nameSuffix, function() {
-    g.nodes();
-  });
-
-  runBenchmark("sources" + nameSuffix, function() {
-    g.sources();
-  });
-
-  runBenchmark("sinks" + nameSuffix, function() {
-    g.sinks();
-  });
-
-  runBenchmark("filterNodes all" + nameSuffix, function() {
-    g.filterNodes(function() { return true; });
-  });
-
-  runBenchmark("filterNodes none" + nameSuffix, function() {
-    g.filterNodes(function() { return false; });
-  });
-
-  runBenchmark("setNode" + nameSuffix, function() {
-    g.setNode("key", "label");
-  });
-
-  runBenchmark("node" + nameSuffix, function() {
-    g.node(nodes[this.nextInt(nodes.length)]);
-  });
-
-  runBenchmark("set + removeNode" + nameSuffix, function() {
-    g.setNode("key");
-    g.removeNode("key");
-  });
-
-  runBenchmark("predecessors" + nameSuffix, function() {
-    g.predecessors(nodes[this.nextInt(nodes.length)]);
-  });
-
-  runBenchmark("successors" + nameSuffix, function() {
-    g.successors(nodes[this.nextInt(nodes.length)]);
-  });
-
-  runBenchmark("neighbors" + nameSuffix, function() {
-    g.neighbors(nodes[this.nextInt(nodes.length)]);
-  });
-
-  runBenchmark("edges" + nameSuffix, function() {
-    g.edges();
-  });
-
-  runBenchmark("setPath" + nameSuffix, function() {
-    g.setPath(["a", "b", "c", "d", "e"]);
-  });
-
-  runBenchmark("setEdge" + nameSuffix, function() {
-    g.setEdge("from", "to", "label");
-  });
-
-  runBenchmark("edge" + nameSuffix, function() {
-    var edge = edges[this.nextInt(edges.length)];
-    g.edge(edge);
-  });
-
-  runBenchmark("set + removeEdge" + nameSuffix, function() {
-    g.setEdge("from", "to");
-    g.removeEdge("from", "to");
-  });
-
-  runBenchmark("inEdges" + nameSuffix, function() {
-    g.inEdges(nodes[this.nextInt(nodes.length)]);
-  });
-
-  runBenchmark("outEdges" + nameSuffix, function() {
-    g.outEdges(nodes[this.nextInt(nodes.length)]);
-  });
-
-  runBenchmark("nodeEdges" + nameSuffix, function() {
-    g.nodeEdges(nodes[this.nextInt(nodes.length)]);
-  });
-
-  runBenchmark("components" + nameSuffix, function() {
-    alg.components(g);
-  });
-
-  runBenchmark("dijkstraAll" + nameSuffix, function() {
-    alg.dijkstraAll(g);
-  });
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/src/release/bump-version.js 0.32.1+repack1+~cs5.2.1-1/graphlib/src/release/bump-version.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/src/release/bump-version.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/src/release/bump-version.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,26 +0,0 @@
-#!/usr/bin/env node
-
-/*
- * Bumps the minor version and sets the prelease tag.
- */
-
-var fs = require("fs"),
-    semver = require("semver");
-
-var packageFile = fs.readFileSync("package.json");
-var packageJson = JSON.parse(packageFile);
-
-if (!("version" in packageJson)) {
-  bail("ERROR: Could not find version in package.json");
-}
-
-var ver = semver.parse(packageJson.version);
-packageJson.version = ver.inc("patch").toString() + "-pre";
-
-fs.writeFileSync("package.json", JSON.stringify(packageJson, undefined, 2));
-
-// Write an error message to stderr and then exit immediately with an error.
-function bail(msg) {
-  stderr.write(msg + "\n");
-  process.exit(1);
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/src/release/check-version.js 0.32.1+repack1+~cs5.2.1-1/graphlib/src/release/check-version.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/src/release/check-version.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/src/release/check-version.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-#!/usr/bin/env node
-
-/*
- * Prints the current version from the specified package-file to stdout or
- * fails with an error if either the version cannot be determined or it is
- * a pre-release.
- */
-
-var fs = require("fs"),
-    semver = require("semver");
-
-var packageFile = fs.readFileSync("package.json");
-var packageJson = JSON.parse(packageFile);
-
-if (!("version" in packageJson)) {
-  bail("ERROR: Could not find version in package.json");
-}
-
-var ver = semver.parse(packageJson.version),
-    preRelease = process.env.PRE_RELEASE;
-
-if (ver.prerelease.length > 0 && !preRelease) {
-  bail("ERROR: version is a pre-release: " + ver);
-}
-
-console.log(ver.toString());
-
-// Write an error message to stderr and then exit immediately with an error.
-function bail(msg) {
-  process.stderr.write(msg + "\n");
-  process.exit(1);
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/src/release/make-bower.json.js 0.32.1+repack1+~cs5.2.1-1/graphlib/src/release/make-bower.json.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/src/release/make-bower.json.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/src/release/make-bower.json.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-#!/usr/bin/env node
-
-// Renders the bower.json template and prints it to stdout
-
-var packageJson = require("../../package.json");
-var packageNameParts = packageJson.name.split("/");
-var packageName = packageNameParts[packageNameParts.length - 1];
-
-var template = {
-  name: packageName,
-  version: packageJson.version,
-  main: ["dist/" + packageName + ".core.js"],
-  ignore: [
-    ".*",
-    "README.md",
-    "CHANGELOG.md",
-    "Makefile",
-    "browser.js",
-    "dist/" + packageName + ".js",
-    "dist/" + packageName + ".min.js",
-    "index.js",
-    "karma*",
-    "lib/**",
-    "package.json",
-    "src/**",
-    "test/**"
-  ],
-  dependencies: packageJson.dependencies
-};
-
-console.log(JSON.stringify(template, null, 2));
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/src/release/make-version.js 0.32.1+repack1+~cs5.2.1-1/graphlib/src/release/make-version.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/src/release/make-version.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/src/release/make-version.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-#!/usr/bin/env node
-
-var package = require('../../package.json');
-console.log('module.exports = \'' + package.version + '\';');
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/src/release/release.sh 0.32.1+repack1+~cs5.2.1-1/graphlib/src/release/release.sh
--- 0.32.1+ds+~cs9.4.17-2/graphlib/src/release/release.sh	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/src/release/release.sh	1970-01-01 00:00:00.000000000 +0000
@@ -1,67 +0,0 @@
-# Fail on error
-set -e
-[ -n "$DEBUG"] && set -x
-
-bail() {
-    echo $1 >&2
-    exit 1
-}
-
-# Initial config
-PROJECT=$1
-PROJECT_ROOT=`pwd`
-PAGES_DIR=/tmp/$PROJECT-pages
-DIST_DIR=$2
-
-# Check version. Is this a release? If not abort
-VERSION=$(./src/release/check-version.js)
-SHORT_VERSION=$(echo $VERSION | cut -f1 -d-)
-
-echo Attemping to publish version: $VERSION
-
-# Preflight checks
-[ -n "$PROJECT" ] || bail "No project name was specified."
-[ -n "$DIST_DIR" ] || bail "No dist dir was specified."
-[ -z "`git tag -l v$VERSION`" ] || bail "Version already published. Skipping publish."
-[ "`git rev-parse HEAD`" = "`git rev-parse master`" ] || [ -n "$PRE_RELEASE" ] || bail "ERROR: You must release from the master branch"
-[ -z "`git status --porcelain`" ] || bail "ERROR: Dirty index on working tree. Use git status to check"
-
-# Publish to pages
-rm -rf $PAGES_DIR
-git clone git@github.com:dagrejs/dagrejs.github.io.git $PAGES_DIR
-
-TMP_TARGET=$PAGES_DIR/project/$PROJECT/latest
-rm -rf $TMP_TARGET
-mkdir -p $TMP_TARGET
-cp -r $DIST_DIR/*.js $TMP_TARGET
-
-TMP_TARGET=$PAGES_DIR/project/$PROJECT/v$VERSION
-rm -rf $TMP_TARGET
-mkdir -p $TMP_TARGET
-cp -r $DIST_DIR/*.js $TMP_TARGET
-
-cd $PAGES_DIR/project/$PROJECT
-git add -A
-git commit -m "Publishing $PROJECT v$VERSION"
-git push -f origin master
-cd $PROJECT_ROOT
-echo "Published $PROJECT to pages"
-
-# Publish tag
-git tag v$VERSION
-git push origin
-git push origin v$VERSION
-echo Published $PROJECT v$VERSION
-
-# Publish to npm
-npm publish --access=public
-echo Published to npm
-
-# Update patch level version + commit
-./src/release/bump-version.js
-make lib/version.js
-git commit package.json lib/version.js -m "Bump version and set as pre-release"
-git push origin
-echo Updated patch version
-
-echo Release complete!
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/all-shortest-paths-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/all-shortest-paths-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/all-shortest-paths-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/all-shortest-paths-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,126 +0,0 @@
-var expect = require("../chai").expect;
-var Graph = require("../..").Graph;
-
-exports.tests = tests;
-
-function tests(sp) {
-  describe("allShortestPaths", function() {
-    it("returns 0 for the node itself", function() {
-      var g = new Graph();
-      g.setNode("a");
-      expect(sp(g)).to.eql({ a: { a: { distance: 0 } }});
-    });
-
-    it("returns the distance and path from all nodes to other nodes", function() {
-      var g = new Graph();
-      g.setEdge("a", "b");
-      g.setEdge("b", "c");
-      expect(sp(g)).to.eql({
-        a: {
-          a: { distance: 0 },
-          b: { distance: 1, predecessor: "a" },
-          c: { distance: 2, predecessor: "b" }
-        },
-        b: {
-          a: { distance: Number.POSITIVE_INFINITY },
-          b: { distance: 0 },
-          c: { distance: 1, predecessor: "b" }
-        },
-        c: {
-          a: { distance: Number.POSITIVE_INFINITY },
-          b: { distance: Number.POSITIVE_INFINITY },
-          c: { distance: 0 }
-        }
-      });
-    });
-
-    it("uses an optionally supplied weight function", function() {
-      var g = new Graph();
-      g.setEdge("a", "b", 2);
-      g.setEdge("b", "c", 3);
-
-      expect(sp(g, weightFn(g))).to.eql({
-        a: {
-          a: { distance: 0 },
-          b: { distance: 2, predecessor: "a" },
-          c: { distance: 5, predecessor: "b" }
-        },
-        b: {
-          a: { distance: Number.POSITIVE_INFINITY },
-          b: { distance: 0 },
-          c: { distance: 3, predecessor: "b" }
-        },
-        c: {
-          a: { distance: Number.POSITIVE_INFINITY },
-          b: { distance: Number.POSITIVE_INFINITY },
-          c: { distance: 0 }
-        }
-      });
-    });
-
-    it("uses an optionally supplied incident function", function() {
-      var g = new Graph();
-      g.setEdge("a", "b");
-      g.setEdge("b", "c");
-
-      expect(sp(g, undefined, function(v) { return g.inEdges(v); })).to.eql({
-        a: {
-          a: { distance: 0 },
-          b: { distance: Number.POSITIVE_INFINITY },
-          c: { distance: Number.POSITIVE_INFINITY }
-        },
-        b: {
-          a: { distance: 1, predecessor: "b" },
-          b: { distance: 0 },
-          c: { distance: Number.POSITIVE_INFINITY }
-        },
-        c: {
-          a: { distance: 2, predecessor: "b" },
-          b: { distance: 1, predecessor: "c" },
-          c: { distance: 0 }
-        }
-      });
-    });
-
-    it("works with undirected graphs", function() {
-      var g = new Graph({ directed: false });
-      g.setEdge("a", "b", 1);
-      g.setEdge("b", "c", 2);
-      g.setEdge("c", "a", 4);
-      g.setEdge("b", "d", 6);
-
-      expect(sp(g, weightFn(g), g.nodeEdges.bind(g))).to.eql({
-        a: {
-          a: { distance: 0 },
-          b: { distance: 1, predecessor: "a" },
-          c: { distance: 3, predecessor: "b" },
-          d: { distance: 7, predecessor: "b" },
-        },
-        b: {
-          a: { distance: 1, predecessor: "b" },
-          b: { distance: 0 },
-          c: { distance: 2, predecessor: "b" },
-          d: { distance: 6, predecessor: "b" },
-        },
-        c: {
-          a: { distance: 3, predecessor: "b" },
-          b: { distance: 2, predecessor: "c" },
-          c: { distance: 0 },
-          d: { distance: 8, predecessor: "b" },
-        },
-        d: {
-          a: { distance: 7, predecessor: "b" },
-          b: { distance: 6, predecessor: "d" },
-          c: { distance: 8, predecessor: "b" },
-          d: { distance: 0 },
-        }
-      });
-    });
-  });
-}
-
-function weightFn(g) {
-  return function(e) {
-    return g.edge(e);
-  };
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/components-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/components-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/components-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/components-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,39 +0,0 @@
-var expect = require("../chai").expect;
-var _ = require("lodash");
-var Graph = require("../..").Graph;
-var components = require("../..").alg.components;
-
-describe("alg.components", function() {
-  it("returns an empty list for an empty graph", function() {
-    expect(components(new Graph({ directed: false }))).to.be.empty;
-  });
-
-  it("returns singleton lists for unconnected nodes", function() {
-    var g = new Graph({ directed: false });
-    g.setNode("a");
-    g.setNode("b");
-
-    var result = _.sortBy(components(g), function(arr) { return _.min(arr); });
-    expect(result).to.eql([["a"], ["b"]]);
-  });
-
-  it("returns a list of nodes in a component", function() {
-    var g = new Graph({ directed: false });
-    g.setEdge("a", "b");
-    g.setEdge("b", "c");
-
-    var result = _.map(components(g), function(xs) { return _.sortBy(xs); });
-    expect(result).to.eql([["a", "b", "c"]]);
-  });
-
-  it("returns nodes connected by a neighbor relationship in a digraph", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "c", "a"]);
-    g.setEdge("d", "c");
-    g.setEdge("e", "f");
-
-    var result = _.sortBy(_.map(components(g),
-      function(xs) { return _.sortBy(xs); }), "0");
-    expect(result).to.eql([["a", "b", "c", "d"], ["e", "f"]]);
-  });
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/dijkstra-all-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/dijkstra-all-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/dijkstra-all-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/dijkstra-all-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,24 +0,0 @@
-var expect = require("../chai").expect;
-var Graph = require("../..").Graph;
-var dijkstraAll = require("../..").alg.dijkstraAll;
-var allShortestPathsTest = require("./all-shortest-paths-test");
-
-describe("alg.dijkstraAll", function() {
-  allShortestPathsTest.tests(dijkstraAll);
-
-  it("throws an Error if it encounters a negative edge weight", function() {
-    var g = new Graph();
-    g.setEdge("a", "b",  1);
-    g.setEdge("a", "c", -2);
-    g.setEdge("b", "d",  3);
-    g.setEdge("c", "d",  3);
-
-    expect(function() { dijkstraAll(g, weight(g)); }).to.throw();
-  });
-});
-
-function weight(g) {
-  return function(e) {
-    return g.edge(e);
-  };
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/dijkstra-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/dijkstra-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/dijkstra-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/dijkstra-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,90 +0,0 @@
-var expect = require("../chai").expect;
-
-var Graph = require("../..").Graph;
-var dijkstra = require("../..").alg.dijkstra;
-
-describe("alg.dijkstra", function() {
-  it("assigns distance 0 for the source node", function() {
-    var g = new Graph();
-    g.setNode("source");
-    expect(dijkstra(g, "source")).to.eql({ source: { distance: 0 } });
-  });
-
-  it("returns Number.POSITIVE_INFINITY for unconnected nodes", function() {
-    var g = new Graph();
-    g.setNode("a");
-    g.setNode("b");
-    expect(dijkstra(g, "a")).to.eql({
-      a: { distance: 0 },
-      b: { distance: Number.POSITIVE_INFINITY }
-    });
-  });
-
-  it("returns the distance and path from the source node to other nodes", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "c"]);
-    g.setEdge("b", "d");
-    expect(dijkstra(g, "a")).to.eql({
-      a: { distance: 0 },
-      b: { distance: 1, predecessor: "a" },
-      c: { distance: 2, predecessor: "b" },
-      d: { distance: 2, predecessor: "b" }
-    });
-  });
-
-  it("works for undirected graphs", function() {
-    var g = new Graph({ directed: false });
-    g.setPath(["a", "b", "c"]);
-    g.setEdge("b", "d");
-    expect(dijkstra(g, "a")).to.eql({
-      a: { distance: 0 },
-      b: { distance: 1, predecessor: "a" },
-      c: { distance: 2, predecessor: "b" },
-      d: { distance: 2, predecessor: "b" }
-    });
-  });
-
-  it("uses an optionally supplied weight function", function() {
-    var g = new Graph();
-    g.setEdge("a", "b", 1);
-    g.setEdge("a", "c", 2);
-    g.setEdge("b", "d", 3);
-    g.setEdge("c", "d", 3);
-
-    expect(dijkstra(g, "a", weightFn(g))).to.eql({
-      a: { distance: 0 },
-      b: { distance: 1, predecessor: "a" },
-      c: { distance: 2, predecessor: "a" },
-      d: { distance: 4, predecessor: "b" }
-    });
-  });
-
-  it("uses an optionally supplied edge function", function() {
-    var g = new Graph();
-    g.setPath(["a", "c", "d"]);
-    g.setEdge("b", "c");
-
-    expect(dijkstra(g, "d", undefined, function(e) { return g.inEdges(e); })).to.eql({
-      a: { distance: 2, predecessor: "c" },
-      b: { distance: 2, predecessor: "c" },
-      c: { distance: 1, predecessor: "d" },
-      d: { distance: 0 }
-    });
-  });
-
-  it("throws an Error if it encounters a negative edge weight", function() {
-    var g = new Graph();
-    g.setEdge("a", "b",  1);
-    g.setEdge("a", "c", -2);
-    g.setEdge("b", "d",  3);
-    g.setEdge("c", "d",  3);
-
-    expect(function() { dijkstra(g, "a", weightFn(g)); }).to.throw();
-  });
-});
-
-function weightFn(g) {
-  return function(e) {
-    return g.edge(e);
-  };
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/find-cycles-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/find-cycles-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/find-cycles-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/find-cycles-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,50 +0,0 @@
-var _ = require("lodash");
-var expect = require("../chai").expect;
-var Graph = require("../..").Graph;
-var findCycles = require("../..").alg.findCycles;
-
-describe("alg.findCycles", function() {
-  it("returns an empty array for an empty graph", function() {
-    expect(findCycles(new Graph())).to.eql([]);
-  });
-
-  it("returns an empty array if the graph has no cycles", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "c"]);
-    expect(findCycles(g)).to.eql([]);
-  });
-
-  it("returns a single entry for a cycle of 1 node", function() {
-    var g = new Graph();
-    g.setPath(["a", "a"]);
-    expect(sort(findCycles(g))).to.eql([["a"]]);
-  });
-
-  it("returns a single entry for a cycle of 2 nodes", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "a"]);
-    expect(sort(findCycles(g))).to.eql([["a", "b"]]);
-  });
-
-  it("returns a single entry for a triangle", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "c", "a"]);
-    expect(sort(findCycles(g))).to.eql([["a", "b", "c"]]);
-  });
-
-  it("returns multiple entries for multiple cycles", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "a"]);
-    g.setPath(["c", "d", "e", "c"]);
-    g.setPath(["f", "g", "g"]);
-    g.setNode("h");
-    expect(sort(findCycles(g))).to.eql([["a", "b"], ["c", "d", "e"], ["g"]]);
-  });
-});
-
-// A helper that sorts components and their contents
-function sort(cmpts) {
-  return _.sortBy(_.map(cmpts, function(cmpt) {
-    return _.sortBy(cmpt);
-  }), function(cmpts) { return cmpts[0]; });
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/floyd-warshall-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/floyd-warshall-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/floyd-warshall-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/floyd-warshall-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,62 +0,0 @@
-var expect = require("../chai").expect;
-var Graph = require("../..").Graph;
-var floydWarshall = require("../..").alg.floydWarshall;
-var allShortestPathsTest = require("./all-shortest-paths-test");
-
-describe("alg.floydWarshall", function() {
-  allShortestPathsTest.tests(floydWarshall);
-
-  it("handles negative weights", function() {
-    var g = new Graph();
-    g.setEdge("a", "b",  1);
-    g.setEdge("a", "c", -2);
-    g.setEdge("b", "d",  3);
-    g.setEdge("c", "d",  3);
-
-    expect(floydWarshall(g, weightFn(g))).to.eql({
-      a: {
-        a: { distance:  0 },
-        b: { distance:  1, predecessor: "a" },
-        c: { distance: -2, predecessor: "a" },
-        d: { distance:  1, predecessor: "c" }
-      },
-      b: {
-        a: { distance: Number.POSITIVE_INFINITY },
-        b: { distance: 0 },
-        c: { distance: Number.POSITIVE_INFINITY },
-        d: { distance: 3, predecessor: "b" }
-      },
-      c: {
-        a: { distance: Number.POSITIVE_INFINITY },
-        b: { distance: Number.POSITIVE_INFINITY },
-        c: { distance: 0 },
-        d: { distance: 3, predecessor: "c" }
-      },
-      d: {
-        a: { distance: Number.POSITIVE_INFINITY },
-        b: { distance: Number.POSITIVE_INFINITY },
-        c: { distance: Number.POSITIVE_INFINITY },
-        d: { distance: 0 }
-      }
-    });
-  });
-
-  it("does include negative weight self edges", function() {
-    var g = new Graph();
-    g.setEdge("a", "a", -1);
-
-    // In the case of a negative cycle the distance is not well-defined beyond
-    // having a negative value along the diagonal.
-    expect(floydWarshall(g, weightFn(g))).to.eql({
-      a: {
-        a: { distance: -2, predecessor: "a" }
-      }
-    });
-  });
-});
-
-function weightFn(g) {
-  return function(edge) {
-    return g.edge(edge);
-  };
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/is-acyclic-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/is-acyclic-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/is-acyclic-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/is-acyclic-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,27 +0,0 @@
-var expect = require("../chai").expect;
-var Graph = require("../..").Graph;
-var isAcyclic = require("../..").alg.isAcyclic;
-
-describe("alg.isAcyclic", function() {
-  it("returns true if the graph has no cycles", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "c"]);
-    expect(isAcyclic(g)).to.be.true;
-  });
-
-  it("returns false if the graph has at least one cycle", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "c", "a"]);
-    expect(isAcyclic(g)).to.be.false;
-  });
-
-  it("returns false if the graph has a cycle of 1 node", function() {
-    var g = new Graph();
-    g.setPath(["a", "a"]);
-    expect(isAcyclic(g)).to.be.false;
-  });
-
-  it("rethrows non-CycleException errors", function() {
-    expect(function() { isAcyclic(undefined); }).to.throw();
-  });
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/postorder-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/postorder-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/postorder-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/postorder-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,67 +0,0 @@
-var _ = require("lodash");
-var expect = require("../chai").expect;
-var Graph = require("../..").Graph;
-var postorder = require("../..").alg.postorder;
-
-describe("alg.postorder", function() {
-  it("returns the root for a singleton graph", function() {
-    var g = new Graph();
-    g.setNode("a");
-    expect(postorder(g, "a")).to.eql(["a"]);
-  });
-
-  it("visits each node in the graph once", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "d", "e"]);
-    g.setPath(["a", "c", "d", "e"]);
-
-    var nodes = postorder(g, "a");
-    expect(_.sortBy(nodes)).to.eql(["a", "b", "c", "d", "e"]);
-  });
-
-  it("works for a tree", function() {
-    var g = new Graph();
-    g.setEdge("a", "b");
-    g.setPath(["a", "c", "d"]);
-    g.setEdge("c", "e");
-
-    var nodes = postorder(g, "a");
-    expect(_.sortBy(nodes)).to.eql(["a", "b", "c", "d", "e"]);
-    expect(nodes.indexOf("b")).to.be.lt(nodes.indexOf("a"));
-    expect(nodes.indexOf("c")).to.be.lt(nodes.indexOf("a"));
-    expect(nodes.indexOf("d")).to.be.lt(nodes.indexOf("c"));
-    expect(nodes.indexOf("e")).to.be.lt(nodes.indexOf("c"));
-  });
-
-  it("works for an array of roots", function() {
-    var g = new Graph();
-    g.setEdge("a", "b");
-    g.setEdge("c", "d");
-    g.setNode("e");
-    g.setNode("f");
-
-    var nodes = postorder(g, ["a", "b", "c", "e"]);
-    expect(_.sortBy(nodes)).to.eql(["a", "b", "c", "d", "e"]);
-    expect(nodes.indexOf("b")).to.be.lt(nodes.indexOf("a"));
-    expect(nodes.indexOf("d")).to.be.lt(nodes.indexOf("c"));
-  });
-
-  it("works for multiple connected roots", function() {
-    var g = new Graph();
-    g.setEdge("a", "b");
-    g.setEdge("a", "c");
-    g.setEdge("d", "c");
-
-    var nodes = postorder(g, ["a", "d"]);
-    expect(_.sortBy(nodes)).to.eql(["a", "b", "c", "d"]);
-    expect(nodes.indexOf("b")).to.be.lt(nodes.indexOf("a"));
-    expect(nodes.indexOf("c")).to.be.lt(nodes.indexOf("a"));
-    expect(nodes.indexOf("c")).to.be.lt(nodes.indexOf("d"));
-  });
-
-  it("fails if root is not in the graph", function() {
-    var g = new Graph();
-    g.setNode("a");
-    expect(function() { postorder(g, "b"); }).to.throw();
-  });
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/preorder-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/preorder-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/preorder-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/preorder-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,54 +0,0 @@
-var _ = require("lodash");
-var expect = require("../chai").expect;
-var Graph = require("../..").Graph;
-var preorder = require("../..").alg.preorder;
-
-describe("alg.preorder", function() {
-  it("returns the root for a singleton graph", function() {
-    var g = new Graph();
-    g.setNode("a");
-    expect(preorder(g, "a")).to.eql(["a"]);
-  });
-
-  it("visits each node in the graph once", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "d", "e"]);
-    g.setPath(["a", "c", "d", "e"]);
-
-    var nodes = preorder(g, "a");
-    expect(_.sortBy(nodes)).to.eql(["a", "b", "c", "d", "e"]);
-  });
-
-  it("works for a tree", function() {
-    var g = new Graph();
-    g.setEdge("a", "b");
-    g.setPath(["a", "c", "d"]);
-    g.setEdge("c", "e");
-
-    var nodes = preorder(g, "a");
-    expect(_.sortBy(nodes)).to.eql(["a", "b", "c", "d", "e"]);
-    expect(nodes.indexOf("b")).to.be.gt(nodes.indexOf("a"));
-    expect(nodes.indexOf("c")).to.be.gt(nodes.indexOf("a"));
-    expect(nodes.indexOf("d")).to.be.gt(nodes.indexOf("c"));
-    expect(nodes.indexOf("e")).to.be.gt(nodes.indexOf("c"));
-  });
-
-  it("works for an array of roots", function() {
-    var g = new Graph();
-    g.setEdge("a", "b");
-    g.setEdge("c", "d");
-    g.setNode("e");
-    g.setNode("f");
-
-    var nodes = preorder(g, ["a", "c", "e"]);
-    expect(_.sortBy(nodes)).to.eql(["a", "b", "c", "d", "e"]);
-    expect(nodes.indexOf("b")).to.be.gt(nodes.indexOf("a"));
-    expect(nodes.indexOf("d")).to.be.gt(nodes.indexOf("c"));
-  });
-
-  it("fails if root is not in the graph", function() {
-    var g = new Graph();
-    g.setNode("a");
-    expect(function() { preorder(g, "b"); }).to.throw();
-  });
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/prim-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/prim-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/prim-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/prim-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,56 +0,0 @@
-var _ = require("lodash");
-var expect = require("../chai").expect;
-var Graph = require("../..").Graph;
-var prim = require("../..").alg.prim;
-
-describe("alg.prim", function() {
-  it("returns an empty graph for an empty input", function() {
-    var source = new Graph();
-
-    var g = prim(source, weightFn(source));
-    expect(g.nodeCount()).to.equal(0);
-    expect(g.edgeCount()).to.equal(0);
-  });
-
-  it("returns a single node graph for a graph with a single node", function() {
-    var source = new Graph();
-    source.setNode("a");
-
-    var g = prim(source, weightFn(source));
-    expect(g.nodes()).to.eql(["a"]);
-    expect(g.edgeCount()).to.equal(0);
-  });
-
-  it("returns a deterministic result given an optimal solution", function() {
-    var source = new Graph();
-    source.setEdge("a", "b",  1);
-    source.setEdge("b", "c",  2);
-    source.setEdge("b", "d",  3);
-    // This edge should not be in the min spanning tree
-    source.setEdge("c", "d", 20);
-    // This edge should not be in the min spanning tree
-    source.setEdge("c", "e", 60);
-    source.setEdge("d", "e",  1);
-
-    var g = prim(source, weightFn(source));
-    expect(_.sortBy(g.neighbors("a"))).to.eql(["b"]);
-    expect(_.sortBy(g.neighbors("b"))).to.eql(["a", "c", "d"]);
-    expect(_.sortBy(g.neighbors("c"))).to.eql(["b"]);
-    expect(_.sortBy(g.neighbors("d"))).to.eql(["b", "e"]);
-    expect(_.sortBy(g.neighbors("e"))).to.eql(["d"]);
-  });
-
-  it("throws an Error for unconnected graphs", function() {
-    var source = new Graph();
-    source.setNode("a");
-    source.setNode("b");
-
-    expect(function() { prim(source, weightFn(source)); }).to.throw();
-  });
-});
-
-function weightFn(g) {
-  return function(edge) {
-    return g.edge(edge);
-  };
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/tarjan-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/tarjan-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/tarjan-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/tarjan-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,44 +0,0 @@
-var _ = require("lodash");
-var expect = require("../chai").expect;
-var Graph = require("../..").Graph;
-var tarjan = require("../..").alg.tarjan;
-
-describe("alg.tarjan", function() {
-  it("returns an empty array for an empty graph", function() {
-    expect(tarjan(new Graph())).to.eql([]);
-  });
-
-  it("returns singletons for nodes not in a strongly connected component", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "c"]);
-    g.setEdge("d", "c");
-    expect(sort(tarjan(g))).to.eql([["a"], ["b"], ["c"], ["d"]]);
-  });
-
-  it("returns a single component for a cycle of 1 edge", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "a"]);
-    expect(sort(tarjan(g))).to.eql([["a", "b"]]);
-  });
-
-  it("returns a single component for a triangle", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "c", "a"]);
-    expect(sort(tarjan(g))).to.eql([["a", "b", "c"]]);
-  });
-
-  it("can find multiple components", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "a"]);
-    g.setPath(["c", "d", "e", "c"]);
-    g.setNode("f");
-    expect(sort(tarjan(g))).to.eql([["a", "b"], ["c", "d", "e"], ["f"]]);
-  });
-});
-
-// A helper that sorts components and their contents
-function sort(cmpts) {
-  return _.sortBy(_.map(cmpts, function(cmpt) {
-    return _.sortBy(cmpt);
-  }), function(cmpts) { return cmpts[0]; });
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/topsort-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/topsort-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/alg/topsort-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/alg/topsort-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,48 +0,0 @@
-var expect = require("../chai").expect;
-var _ = require("lodash");
-var Graph = require("../..").Graph;
-var topsort = require("../..").alg.topsort;
-
-describe("alg.topsort", function() {
-  it("returns an empty array for an empty graph", function() {
-    expect(topsort(new Graph())).to.be.empty;
-  });
-
-  it("sorts nodes such that earlier nodes have directed edges to later nodes", function() {
-    var g = new Graph();
-    g.setPath(["b", "c", "a"]);
-    expect(topsort(g)).to.eql(["b", "c", "a"]);
-  });
-
-  it("works for a diamond", function() {
-    var g = new Graph();
-    g.setPath(["a", "b", "d"]);
-    g.setPath(["a", "c", "d"]);
-
-    var result = topsort(g);
-    expect(_.indexOf(result, "a")).to.equal(0);
-    expect(_.indexOf(result, "b")).to.be.lt(_.indexOf(result, "d"));
-    expect(_.indexOf(result, "c")).to.be.lt(_.indexOf(result, "d"));
-    expect(_.indexOf(result, "d")).to.equal(3);
-  });
-
-  it("throws CycleException if there is a cycle #1", function() {
-    var g = new Graph();
-    g.setPath(["b", "c", "a", "b"]);
-    expect(function() { topsort(g); }).to.throw(topsort.CycleException);
-  });
-
-  it("throws CycleException if there is a cycle #2", function() {
-    var g = new Graph();
-    g.setPath(["b", "c", "a", "b"]);
-    g.setEdge("b", "d");
-    expect(function() { topsort(g); }).to.throw(topsort.CycleException);
-  });
-
-  it("throws CycleException if there is a cycle #3", function() {
-    var g = new Graph();
-    g.setPath(["b", "c", "a", "b"]);
-    g.setNode("d");
-    expect(function() { topsort(g); }).to.throw(topsort.CycleException);
-  });
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/bundle.amd-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/bundle.amd-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/bundle.amd-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/bundle.amd-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,77 +0,0 @@
-/* global define */
-
-define(function(require) {
-  // These are smoke tests to make sure the bundles look like they are working
-  // correctly.
-
-  var chai = require("chai");
-  var graphlib = require("graphlib");
-  var graphlibCore = require("graphlib.core");
-  var expect = chai.expect;
-
-  describe("core bundle", function() {
-    it("exports graphlib", function() {
-      expect(graphlibCore).to.be.an("object");
-      expect(graphlibCore.Graph).to.be.a("function");
-      expect(graphlibCore.json).to.be.a("object");
-      expect(graphlibCore.alg).to.be.a("object");
-      expect(graphlibCore.version).to.be.a("string");
-    });
-
-    it("can do simple graph operations", function() {
-      var g = new graphlibCore.Graph();
-      g.setNode("a");
-      g.setNode("b");
-      g.setEdge("a", "b");
-      expect(g.hasNode("a")).to.be.true;
-      expect(g.hasNode("b")).to.be.true;
-      expect(g.hasEdge("a", "b")).to.be.true;
-    });
-
-    it("can serialize to json and back", function() {
-      var g = new graphlibCore.Graph();
-      g.setNode("a");
-      g.setNode("b");
-      g.setEdge("a", "b");
-
-      var json = graphlibCore.json.write(g);
-      var g2 = graphlibCore.json.read(json);
-      expect(g2.hasNode("a")).to.be.true;
-      expect(g2.hasNode("b")).to.be.true;
-      expect(g2.hasEdge("a", "b")).to.be.true;
-    });
-  });
-
-  describe("bundle", function() {
-    it("exports graphlib", function() {
-      expect(graphlib).to.be.an("object");
-      expect(graphlib.Graph).to.be.a("function");
-      expect(graphlib.json).to.be.a("object");
-      expect(graphlib.alg).to.be.a("object");
-      expect(graphlib.version).to.be.a("string");
-    });
-
-    it("can do simple graph operations", function() {
-      var g = new graphlib.Graph();
-      g.setNode("a");
-      g.setNode("b");
-      g.setEdge("a", "b");
-      expect(g.hasNode("a")).to.be.true;
-      expect(g.hasNode("b")).to.be.true;
-      expect(g.hasEdge("a", "b")).to.be.true;
-    });
-
-    it("can serialize to json and back", function() {
-      var g = new graphlib.Graph();
-      g.setNode("a");
-      g.setNode("b");
-      g.setEdge("a", "b");
-
-      var json = graphlib.json.write(g);
-      var g2 = graphlib.json.read(json);
-      expect(g2.hasNode("a")).to.be.true;
-      expect(g2.hasNode("b")).to.be.true;
-      expect(g2.hasEdge("a", "b")).to.be.true;
-    });
-  });
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/bundle-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/bundle-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/bundle-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/bundle-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,39 +0,0 @@
-/* global chai, graphlib */
-
-// These are smoke tests to make sure the bundles look like they are working
-// correctly.
-
-var expect = chai.expect;
-
-describe("bundle", function() {
-  it("exports graphlib", function() {
-    expect(graphlib).to.be.an("object");
-    expect(graphlib.Graph).to.be.a("function");
-    expect(graphlib.json).to.be.a("object");
-    expect(graphlib.alg).to.be.a("object");
-    expect(graphlib.version).to.be.a("string");
-  });
-
-  it("can do simple graph operations", function() {
-    var g = new graphlib.Graph();
-    g.setNode("a");
-    g.setNode("b");
-    g.setEdge("a", "b");
-    expect(g.hasNode("a")).to.be.true;
-    expect(g.hasNode("b")).to.be.true;
-    expect(g.hasEdge("a", "b")).to.be.true;
-  });
-
-  it("can serialize to json and back", function() {
-    var g = new graphlib.Graph();
-    g.setNode("a");
-    g.setNode("b");
-    g.setEdge("a", "b");
-
-    var json = graphlib.json.write(g);
-    var g2 = graphlib.json.read(json);
-    expect(g2.hasNode("a")).to.be.true;
-    expect(g2.hasNode("b")).to.be.true;
-    expect(g2.hasEdge("a", "b")).to.be.true;
-  });
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/chai.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/chai.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/chai.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/chai.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-var chai = require("chai");
-
-module.exports = chai;
-
-chai.config.includeStack = true;
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/data/priority-queue-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/data/priority-queue-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/data/priority-queue-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/data/priority-queue-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,131 +0,0 @@
-var _ = require("lodash");
-var expect = require("../chai").expect;
-var PriorityQueue = require("../../lib/data/priority-queue");
-
-describe("data.PriorityQueue", function() {
-  var pq;
-
-  beforeEach(function() {
-    pq = new PriorityQueue();
-  });
-
-  describe("size", function() {
-    it("returns 0 for an empty queue", function() {
-      expect(pq.size()).to.equal(0);
-    });
-
-    it("returns the number of elements in the queue", function() {
-      pq.add("a", 1);
-      expect(pq.size()).to.equal(1);
-      pq.add("b", 2);
-      expect(pq.size()).to.equal(2);
-    });
-  });
-
-  describe("keys", function() {
-    it("returns all of the keys in the queue", function() {
-      pq.add("a", 1);
-      pq.add(1, 2);
-      pq.add(false, 3);
-      pq.add(undefined, 4);
-      pq.add(null, 5);
-      expect(_.sortBy(pq.keys())).to.eql(
-        _.sortBy(["a", "1", "false", "undefined", "null"]));
-    });
-  });
-
-  describe("has", function() {
-    it("returns true if the key is in the queue", function() {
-      pq.add("a", 1);
-      expect(pq.has("a")).to.be.true;
-    });
-
-    it("returns false if the key is not in the queue", function() {
-      expect(pq.has("a")).to.be.false;
-    });
-  });
-
-  describe("priority", function() {
-    it("returns the current priority for the key", function() {
-      pq.add("a", 1);
-      pq.add("b", 2);
-      expect(pq.priority("a")).to.equal(1);
-      expect(pq.priority("b")).to.equal(2);
-    });
-
-    it("returns undefined if the key is not in the queue", function() {
-      expect(pq.priority("foo")).to.be.undefined;
-    });
-  });
-
-  describe("min", function() {
-    it("throws an error if there is no element in the queue", function() {
-      expect(function() { pq.min(); }).to.throw();
-    });
-
-    it("returns the smallest element", function() {
-      pq.add("b", 2);
-      pq.add("a", 1);
-      expect(pq.min()).to.equal("a");
-    });
-
-    it("does not remove the minimum element from the queue", function() {
-      pq.add("b", 2);
-      pq.add("a", 1);
-      pq.min();
-      expect(pq.size()).to.equal(2);
-    });
-  });
-
-  describe("add", function() {
-    it("adds the key to the queue", function() {
-      pq.add("a", 1);
-      expect(pq.keys()).to.eql(["a"]);
-    });
-
-    it("returns true if the key was added", function() {
-      expect(pq.add("a", 1)).to.be.true;
-    });
-
-    it("returns false if the key already exists in the queue", function() {
-      pq.add("a", 1);
-      expect(pq.add("a", 1)).to.be.false;
-    });
-  });
-
-  describe("removeMin", function() {
-    it("removes the minimum element from the queue", function() {
-      pq.add("b", 2);
-      pq.add("a", 1);
-      pq.add("c", 3);
-      pq.add("e", 5);
-      pq.add("d", 4);
-      expect(pq.removeMin()).to.equal("a");
-      expect(pq.removeMin()).to.equal("b");
-      expect(pq.removeMin()).to.equal("c");
-      expect(pq.removeMin()).to.equal("d");
-      expect(pq.removeMin()).to.equal("e");
-    });
-
-    it("throws an error if there is no element in the queue", function() {
-      expect(function() { pq.removeMin(); }).to.throw();
-    });
-  });
-
-  describe("decrease", function() {
-    it("decreases the priority of a key", function() {
-      pq.add("a", 1);
-      pq.decrease("a", -1);
-      expect(pq.priority("a")).to.equal(-1);
-    });
-
-    it("raises an error if the key is not in the queue", function() {
-      expect(function() { pq.decrease("a", -1); }).to.throw();
-    });
-
-    it("raises an error if the new priority is greater than current", function() {
-      pq.add("a", 1);
-      expect(function() { pq.decrease("a", 2); }).to.throw();
-    });
-  });
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/graph-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/graph-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/graph-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/graph-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,976 +0,0 @@
-var _ = require("lodash");
-var expect = require("./chai").expect;
-var Graph = require("..").Graph;
-
-describe("Graph", function() {
-  var g;
-
-  beforeEach(function() {
-    g = new Graph();
-  });
-
-  describe("initial state", function() {
-    it("has no nodes", function() {
-      expect(g.nodeCount()).to.equal(0);
-    });
-
-    it("has no edges", function() {
-      expect(g.edgeCount()).to.equal(0);
-    });
-
-    it("has no attributes", function() {
-      expect(g.graph()).to.be.undefined;
-    });
-
-    it("defaults to a simple directed graph", function() {
-      expect(g.isDirected()).to.be.true;
-      expect(g.isCompound()).to.be.false;
-      expect(g.isMultigraph()).to.be.false;
-    });
-
-    it("can be set to undirected", function() {
-      var g = new Graph({ directed: false });
-      expect(g.isDirected()).to.be.false;
-      expect(g.isCompound()).to.be.false;
-      expect(g.isMultigraph()).to.be.false;
-    });
-
-    it("can be set to a compound graph", function() {
-      var g = new Graph({ compound: true });
-      expect(g.isDirected()).to.be.true;
-      expect(g.isCompound()).to.be.true;
-      expect(g.isMultigraph()).to.be.false;
-    });
-
-    it("can be set to a mulitgraph", function() {
-      var g = new Graph({ multigraph: true });
-      expect(g.isDirected()).to.be.true;
-      expect(g.isCompound()).to.be.false;
-      expect(g.isMultigraph()).to.be.true;
-    });
-  });
-
-  describe("setGraph", function() {
-    it("can be used to get and set properties for the graph", function() {
-      g.setGraph("foo");
-      expect(g.graph()).to.equal("foo");
-    });
-
-    it("is chainable", function() {
-      expect(g.setGraph("foo")).to.equal(g);
-    });
-  });
-
-  describe("nodes", function() {
-    it("is empty if there are no nodes in the graph", function() {
-      expect(g.nodes()).to.eql([]);
-    });
-
-    it("returns the ids of nodes in the graph", function() {
-      g.setNode("a");
-      g.setNode("b");
-      expect(_.sortBy(g.nodes())).to.eql(["a", "b"]);
-    });
-  });
-
-  describe("sources", function() {
-    it("returns nodes in the graph that have no in-edges", function() {
-      g.setPath(["a", "b", "c"]);
-      g.setNode("d");
-      expect(_.sortBy(g.sources())).to.eql(["a", "d"]);
-    });
-  });
-
-  describe("sinks", function() {
-    it("returns nodes in the graph that have no out-edges", function() {
-      g.setPath(["a", "b", "c"]);
-      g.setNode("d");
-      expect(_.sortBy(g.sinks())).to.eql(["c", "d"]);
-    });
-  });
-
-  describe("filterNodes", function() {
-    it("returns an identical graph when the filter selects everything", function() {
-      g.setGraph("graph label");
-      g.setNode("a", 123);
-      g.setPath(["a", "b", "c"]);
-      g.setEdge("a", "c", 456);
-      var g2 = g.filterNodes(function() { return true; });
-      expect(_.sortBy(g2.nodes())).eqls(["a", "b", "c"]);
-      expect(_.sortBy(g2.successors("a"))).eqls(["b", "c"]);
-      expect(_.sortBy(g2.successors("b"))).eqls(["c"]);
-      expect(g2.node("a")).eqls(123);
-      expect(g2.edge("a", "c")).eqls(456);
-      expect(g2.graph()).eqls("graph label");
-    });
-
-    it("returns an empty graph when the filter selects nothing", function() {
-      g.setPath(["a", "b", "c"]);
-      var g2 = g.filterNodes(function() { return false; });
-      expect(g2.nodes()).eqls([]);
-      expect(g2.edges()).eqls([]);
-    });
-
-    it("only includes nodes for which the filter returns true", function() {
-      g.setNodes(["a", "b"]);
-      var g2 = g.filterNodes(function(v) { return v === "a"; });
-      expect(g2.nodes()).eqls(["a"]);
-    });
-
-    it("removes edges that are connected to removed nodes", function() {
-      g.setEdge("a", "b");
-      var g2 = g.filterNodes(function(v) { return v === "a"; });
-      expect(_.sortBy(g2.nodes())).eqls(["a"]);
-      expect(g2.edges()).eqls([]);
-    });
-
-    it("preserves the directed option", function() {
-      g = new Graph({ directed: true });
-      expect(g.filterNodes(function() { return true; }).isDirected()).to.be.true;
-
-      g = new Graph({ directed: false });
-      expect(g.filterNodes(function() { return true; }).isDirected()).to.be.false;
-    });
-
-    it("preserves the multigraph option", function() {
-      g = new Graph({ multigraph: true });
-      expect(g.filterNodes(function() { return true; }).isMultigraph()).to.be.true;
-
-      g = new Graph({ multigraph: false });
-      expect(g.filterNodes(function() { return true; }).isMultigraph()).to.be.false;
-    });
-
-    it("preserves the compound option", function() {
-      g = new Graph({ compound: true });
-      expect(g.filterNodes(function() { return true; }).isCompound()).to.be.true;
-
-      g = new Graph({ compound: false });
-      expect(g.filterNodes(function() { return true; }).isCompound()).to.be.false;
-    });
-
-    it("includes subgraphs", function() {
-      g = new Graph({ compound: true });
-      g.setParent("a", "parent");
-
-      var g2 = g.filterNodes(function() { return true; });
-      expect(g2.parent("a")).eqls("parent");
-    });
-
-    it("includes multi-level subgraphs", function() {
-      g = new Graph({ compound: true });
-      g.setParent("a", "parent");
-      g.setParent("parent", "root");
-
-      var g2 = g.filterNodes(function() { return true; });
-      expect(g2.parent("a")).eqls("parent");
-      expect(g2.parent("parent")).eqls("root");
-    });
-
-    it("promotes a node to a higher subgraph if its parent is not included", function() {
-      g = new Graph({ compound: true });
-      g.setParent("a", "parent");
-      g.setParent("parent", "root");
-
-      var g2 = g.filterNodes(function(v) { return v !== "parent"; });
-      expect(g2.parent("a")).eqls("root");
-    });
-  });
-
-  describe("setNodes", function() {
-    it("creates multiple nodes", function() {
-      g.setNodes(["a", "b", "c"]);
-      expect(g.hasNode("a")).to.be.true;
-      expect(g.hasNode("b")).to.be.true;
-      expect(g.hasNode("c")).to.be.true;
-    });
-
-    it("can set a value for all of the nodes", function() {
-      g.setNodes(["a", "b", "c"], "foo");
-      expect(g.node("a")).to.equal("foo");
-      expect(g.node("b")).to.equal("foo");
-      expect(g.node("c")).to.equal("foo");
-    });
-
-    it("is chainable", function() {
-      expect(g.setNodes(["a", "b", "c"])).to.equal(g);
-    });
-  });
-
-  describe("setNode", function() {
-    it("creates the node if it isn't part of the graph", function() {
-      g.setNode("a");
-      expect(g.hasNode("a")).to.be.true;
-      expect(g.node("a")).to.be.undefined;
-      expect(g.nodeCount()).to.equal(1);
-    });
-
-    it("can set a value for the node", function() {
-      g.setNode("a", "foo");
-      expect(g.node("a")).to.equal("foo");
-    });
-
-    it("does not change the node's value with a 1-arg invocation", function() {
-      g.setNode("a", "foo");
-      g.setNode("a");
-      expect(g.node("a")).to.equal("foo");
-    });
-
-    it("can remove the node's value by passing undefined", function() {
-      g.setNode("a", undefined);
-      expect(g.node("a")).to.be.undefined;
-    });
-
-    it("is idempotent", function() {
-      g.setNode("a", "foo");
-      g.setNode("a", "foo");
-      expect(g.node("a")).to.equal("foo");
-      expect(g.nodeCount()).to.equal(1);
-    });
-
-    it("uses the stringified form of the id", function() {
-      g.setNode(1);
-      expect(g.hasNode(1)).to.be.true;
-      expect(g.hasNode("1")).to.be.true;
-      expect(g.nodes()).eqls(["1"]);
-    });
-
-    it("is chainable", function() {
-      expect(g.setNode("a")).to.equal(g);
-    });
-  });
-
-  describe("setNodeDefaults", function() {
-    it("sets a default label for new nodes", function() {
-      g.setDefaultNodeLabel("foo");
-      g.setNode("a");
-      expect(g.node("a")).to.equal("foo");
-    });
-
-    it("does not change existing nodes", function() {
-      g.setNode("a");
-      g.setDefaultNodeLabel("foo");
-      expect(g.node("a")).to.be.undefined;
-    });
-
-    it("is not used if an explicit value is set", function() {
-      g.setDefaultNodeLabel("foo");
-      g.setNode("a", "bar");
-      expect(g.node("a")).to.equal("bar");
-    });
-
-    it("can take a function", function() {
-      g.setDefaultNodeLabel(function() { return "foo"; });
-      g.setNode("a");
-      expect(g.node("a")).to.equal("foo");
-    });
-
-    it("can take a function that takes the node's name", function() {
-      g.setDefaultNodeLabel(function(v) { return v + "-foo"; });
-      g.setNode("a");
-      expect(g.node("a")).to.equal("a-foo");
-    });
-
-    it("is chainable", function() {
-      expect(g.setDefaultNodeLabel("foo")).to.equal(g);
-    });
-  });
-
-  describe("node", function() {
-    it("returns undefined if the node isn't part of the graph", function() {
-      expect(g.node("a")).to.be.undefined;
-    });
-
-    it("returns the value of the node if it is part of the graph", function() {
-      g.setNode("a", "foo");
-      expect(g.node("a")).to.equal("foo");
-    });
-  });
-
-  describe("removeNode", function() {
-    it("does nothing if the node is not in the graph", function() {
-      expect(g.nodeCount()).to.equal(0);
-      g.removeNode("a");
-      expect(g.hasNode("a")).to.be.false;
-      expect(g.nodeCount()).to.equal(0);
-    });
-
-    it("removes the node if it is in the graph", function() {
-      g.setNode("a");
-      g.removeNode("a");
-      expect(g.hasNode("a")).to.be.false;
-      expect(g.nodeCount()).to.equal(0);
-    });
-
-    it("is idempotent", function() {
-      g.setNode("a");
-      g.removeNode("a");
-      g.removeNode("a");
-      expect(g.hasNode("a")).to.be.false;
-      expect(g.nodeCount()).to.equal(0);
-    });
-
-    it("removes edges incident on the node", function() {
-      g.setEdge("a", "b");
-      g.setEdge("b", "c");
-      g.removeNode("b");
-      expect(g.edgeCount()).to.equal(0);
-    });
-
-    it("removes parent / child relationships for the node", function() {
-      var g = new Graph({ compound: true });
-      g.setParent("c", "b");
-      g.setParent("b", "a");
-      g.removeNode("b");
-      expect(g.parent("b")).to.be.undefined;
-      expect(g.children("b")).to.be.undefined;
-      expect(g.children("a")).to.not.include("b");
-      expect(g.parent("c")).to.be.undefined;
-    });
-
-    it("is chainable", function() {
-      expect(g.removeNode("a")).to.equal(g);
-    });
-  });
-
-  describe("setParent", function() {
-    beforeEach(function() {
-      g = new Graph({ compound: true });
-    });
-
-    it("throws if the graph is not compound", function() {
-      expect(function() { new Graph().setParent("a", "parent"); }).to.throw();
-    });
-
-    it("creates the parent if it does not exist", function() {
-      g.setNode("a");
-      g.setParent("a", "parent");
-      expect(g.hasNode("parent")).to.be.true;
-      expect(g.parent("a")).to.equal("parent");
-    });
-
-    it("creates the child if it does not exist", function() {
-      g.setNode("parent");
-      g.setParent("a", "parent");
-      expect(g.hasNode("a")).to.be.true;
-      expect(g.parent("a")).to.equal("parent");
-    });
-
-    it("has the parent as undefined if it has never been invoked", function() {
-      g.setNode("a");
-      expect(g.parent("a")).to.be.undefined;
-    });
-
-    it("moves the node from the previous parent", function() {
-      g.setParent("a", "parent");
-      g.setParent("a", "parent2");
-      expect(g.parent("a")).to.equal("parent2");
-      expect(g.children("parent")).to.eql([]);
-      expect(g.children("parent2")).to.eql(["a"]);
-    });
-
-    it("removes the parent if the parent is undefined", function() {
-      g.setParent("a", "parent");
-      g.setParent("a", undefined);
-      expect(g.parent("a")).to.be.undefined;
-      expect(_.sortBy(g.children())).to.eql(["a", "parent"]);
-    });
-
-    it("removes the parent if no parent was specified", function() {
-      g.setParent("a", "parent");
-      g.setParent("a");
-      expect(g.parent("a")).to.be.undefined;
-      expect(_.sortBy(g.children())).to.eql(["a", "parent"]);
-    });
-
-    it("is idempotent to remove a parent", function() {
-      g.setParent("a", "parent");
-      g.setParent("a");
-      g.setParent("a");
-      expect(g.parent("a")).to.be.undefined;
-      expect(_.sortBy(g.children())).to.eql(["a", "parent"]);
-    });
-
-    it("uses the stringified form of the id", function() {
-      g.setParent(2, 1);
-      g.setParent(3, 2);
-      expect(g.parent(2)).equals("1");
-      expect(g.parent("2")).equals("1");
-      expect(g.parent(3)).equals("2");
-    });
-
-    it("preserves the tree invariant", function() {
-      g.setParent("c", "b");
-      g.setParent("b", "a");
-      expect(function() { g.setParent("a", "c"); }).to.throw();
-    });
-
-    it("is chainable", function() {
-      expect(g.setParent("a", "parent")).to.equal(g);
-    });
-  });
-
-  describe("parent", function() {
-    beforeEach(function() {
-      g = new Graph({ compound: true });
-    });
-
-    it("returns undefined if the graph is not compound", function() {
-      expect(new Graph({ compound: false }).parent("a")).to.be.undefined;
-    });
-
-    it("returns undefined if the node is not in the graph", function() {
-      expect(g.parent("a")).to.be.undefined;
-    });
-
-    it("defaults to undefined for new nodes", function() {
-      g.setNode("a");
-      expect(g.parent("a")).to.be.undefined;
-    });
-
-    it("returns the current parent assignment", function() {
-      g.setNode("a");
-      g.setNode("parent");
-      g.setParent("a", "parent");
-      expect(g.parent("a")).to.equal("parent");
-    });
-  });
-
-  describe("children", function() {
-    beforeEach(function() {
-      g = new Graph({ compound: true });
-    });
-
-    it("returns undefined if the node is not in the graph", function() {
-      expect(g.children("a")).to.be.undefined;
-    });
-
-    it("defaults to en empty list for new nodes", function() {
-      g.setNode("a");
-      expect(g.children("a")).to.eql([]);
-    });
-
-    it("returns undefined for a non-compound graph without the node", function() {
-      var g = new Graph();
-      expect(g.children("a")).to.be.undefined;
-    });
-
-    it("returns an empty list for a non-compound graph with the node", function() {
-      var g = new Graph();
-      g.setNode("a");
-      expect(g.children("a")).eqls([]);
-    });
-
-    it ("returns all nodes for the root of a non-compound graph", function() {
-      var g = new Graph();
-      g.setNode("a");
-      g.setNode("b");
-      expect(_.sortBy(g.children())).eqls(["a", "b"]);
-    });
-
-    it("returns children for the node", function() {
-      g.setParent("a", "parent");
-      g.setParent("b", "parent");
-      expect(_.sortBy(g.children("parent"))).to.eql(["a", "b"]);
-    });
-
-    it("returns all nodes without a parent when the parent is not set", function() {
-      g.setNode("a");
-      g.setNode("b");
-      g.setNode("c");
-      g.setNode("parent");
-      g.setParent("a", "parent");
-      expect(_.sortBy(g.children())).to.eql(["b", "c", "parent"]);
-      expect(_.sortBy(g.children(undefined))).to.eql(["b", "c", "parent"]);
-    });
-  });
-
-  describe("predecessors", function() {
-    it("returns undefined for a node that is not in the graph", function() {
-      expect(g.predecessors("a")).to.be.undefined;
-    });
-
-    it("returns the predecessors of a node", function() {
-      g.setEdge("a", "b");
-      g.setEdge("b", "c");
-      g.setEdge("a", "a");
-      expect(_.sortBy(g.predecessors("a"))).to.eql(["a"]);
-      expect(_.sortBy(g.predecessors("b"))).to.eql(["a"]);
-      expect(_.sortBy(g.predecessors("c"))).to.eql(["b"]);
-    });
-  });
-
-  describe("successors", function() {
-    it("returns undefined for a node that is not in the graph", function() {
-      expect(g.successors("a")).to.be.undefined;
-    });
-
-    it("returns the successors of a node", function() {
-      g.setEdge("a", "b");
-      g.setEdge("b", "c");
-      g.setEdge("a", "a");
-      expect(_.sortBy(g.successors("a"))).to.eql(["a", "b"]);
-      expect(_.sortBy(g.successors("b"))).to.eql(["c"]);
-      expect(_.sortBy(g.successors("c"))).to.eql([]);
-    });
-  });
-
-  describe("neighbors", function() {
-    it("returns undefined for a node that is not in the graph", function() {
-      expect(g.neighbors("a")).to.be.undefined;
-    });
-
-    it("returns the neighbors of a node", function() {
-      g.setEdge("a", "b");
-      g.setEdge("b", "c");
-      g.setEdge("a", "a");
-      expect(_.sortBy(g.neighbors("a"))).to.eql(["a", "b"]);
-      expect(_.sortBy(g.neighbors("b"))).to.eql(["a", "c"]);
-      expect(_.sortBy(g.neighbors("c"))).to.eql(["b"]);
-    });
-  });
-
-  describe("isLeaf", function() {
-    it("returns false for connected node in undirected graph", function() {
-      g = new Graph({directed: false});
-      g.setNode("a");
-      g.setNode("b");
-      g.setEdge("a", "b");
-      expect(g.isLeaf("b")).to.be.false;
-    });
-    it("returns true for an unconnected node in undirected graph", function() {
-      g = new Graph({directed: false});
-      g.setNode("a");
-      expect(g.isLeaf("a")).to.be.true;
-    });
-    it("returns true for unconnected node in directed graph", function() {
-      g.setNode("a");
-      expect(g.isLeaf("a")).to.be.true;
-    });
-    it("returns false for predecessor node in directed graph", function() {
-      g.setNode("a");
-      g.setNode("b");
-      g.setEdge("a", "b");
-      expect(g.isLeaf("a")).to.be.false;
-    });
-    it("returns true for successor node in directed graph", function() {
-      g.setNode("a");
-      g.setNode("b");
-      g.setEdge("a", "b");
-      expect(g.isLeaf("b")).to.be.true;
-    });
-  });
-
-  describe("edges", function() {
-    it("is empty if there are no edges in the graph", function() {
-      expect(g.edges()).to.eql([]);
-    });
-
-    it("returns the keys for edges in the graph", function() {
-      g.setEdge("a", "b");
-      g.setEdge("b", "c");
-      expect(_.sortBy(g.edges(), ["v", "w"])).to.eql([
-        { v: "a", w: "b" },
-        { v: "b", w: "c" }
-      ]);
-    });
-  });
-
-  describe("setPath", function() {
-    it("creates a path of mutiple edges", function() {
-      g.setPath(["a", "b", "c"]);
-      expect(g.hasEdge("a", "b")).to.be.true;
-      expect(g.hasEdge("b", "c")).to.be.true;
-    });
-
-    it("can set a value for all of the edges", function() {
-      g.setPath(["a", "b", "c"], "foo");
-      expect(g.edge("a", "b")).to.equal("foo");
-      expect(g.edge("b", "c")).to.equal("foo");
-    });
-
-    it("is chainable", function() {
-      expect(g.setPath(["a", "b", "c"])).to.equal(g);
-    });
-  });
-
-  describe("setEdge", function() {
-    it("creates the edge if it isn't part of the graph", function() {
-      g.setNode("a");
-      g.setNode("b");
-      g.setEdge("a", "b");
-      expect(g.edge("a", "b")).to.be.undefined;
-      expect(g.hasEdge("a", "b")).to.be.true;
-      expect(g.hasEdge({ v: "a", w: "b" })).to.be.true;
-      expect(g.edgeCount()).to.equal(1);
-    });
-
-    it("creates the nodes for the edge if they are not part of the graph", function() {
-      g.setEdge("a", "b");
-      expect(g.hasNode("a")).to.be.true;
-      expect(g.hasNode("b")).to.be.true;
-      expect(g.nodeCount()).to.equal(2);
-    });
-
-    it("creates a multi-edge if if it isn't part of the graph", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge("a", "b", undefined, "name");
-      expect(g.hasEdge("a", "b")).to.be.false;
-      expect(g.hasEdge("a", "b", "name")).to.be.true;
-    });
-
-    it("throws if a multi-edge is used with a non-multigraph", function() {
-      expect(function() { g.setEdge("a", "b", undefined, "name"); }).to.throw();
-    });
-
-    it("changes the value for an edge if it is already in the graph", function() {
-      g.setEdge("a", "b", "foo");
-      g.setEdge("a", "b", "bar");
-      expect(g.edge("a", "b")).to.equal("bar");
-    });
-
-    it ("deletes the value for the edge if the value arg is undefined", function() {
-      g.setEdge("a", "b", "foo");
-      g.setEdge("a", "b", undefined);
-      expect(g.edge("a", "b")).to.be.undefined;
-      expect(g.hasEdge("a", "b")).to.be.true;
-    });
-
-    it("changes the value for a multi-edge if it is already in the graph", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge("a", "b", "value", "name");
-      g.setEdge("a", "b", undefined, "name");
-      expect(g.edge("a", "b", "name")).to.be.undefined;
-      expect(g.hasEdge("a", "b", "name")).to.be.true;
-    });
-
-    it("can take an edge object as the first parameter", function() {
-      g.setEdge({ v: "a", w: "b" }, "value");
-      expect(g.edge("a", "b")).to.equal("value");
-    });
-
-    it("can take an multi-edge object as the first parameter", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge({ v: "a", w: "b", name: "name" }, "value");
-      expect(g.edge("a", "b", "name")).to.equal("value");
-    });
-
-    it("uses the stringified form of the id #1", function() {
-      g.setEdge(1, 2, "foo");
-      expect(g.edges()).eqls([{ v: "1", w: "2" }]);
-      expect(g.edge("1", "2")).to.equal("foo");
-      expect(g.edge(1, 2)).to.equal("foo");
-    });
-
-    it("uses the stringified form of the id #2", function() {
-      g = new Graph({ multigraph: true });
-      g.setEdge(1, 2, "foo", undefined);
-      expect(g.edges()).eqls([{ v: "1", w: "2" }]);
-      expect(g.edge("1", "2")).to.equal("foo");
-      expect(g.edge(1, 2)).to.equal("foo");
-    });
-
-    it("uses the stringified form of the id with a name", function() {
-      g = new Graph({ multigraph: true });
-      g.setEdge(1, 2, "foo", 3);
-      expect(g.edge("1", "2", "3")).to.equal("foo");
-      expect(g.edge(1, 2, 3)).to.equal("foo");
-      expect(g.edges()).eqls([{ v: "1", w: "2", name: "3" }]);
-    });
-
-    it("treats edges in opposite directions as distinct in a digraph", function() {
-      g.setEdge("a", "b");
-      expect(g.hasEdge("a", "b")).to.be.true;
-      expect(g.hasEdge("b", "a")).to.be.false;
-    });
-
-    it("handles undirected graph edges", function() {
-      var g = new Graph({ directed: false });
-      g.setEdge("a", "b", "foo");
-      expect(g.edge("a", "b")).to.equal("foo");
-      expect(g.edge("b", "a")).to.equal("foo");
-    });
-
-    it("handles undirected edges where id has different order than Stringified id", function() {
-      var g = new Graph({ directed: false });
-      g.setEdge(9, 10, "foo");
-      expect(g.hasEdge("9", "10")).to.be.true;
-      expect(g.hasEdge(9, 10)).to.be.true;
-      expect(g.hasEdge("10", "9")).to.be.true;
-      expect(g.hasEdge(10, 9)).to.be.true;
-      expect(g.edge("9", "10")).eqls("foo");
-      expect(g.edge(9, 10)).eqls("foo");
-    });
-
-    it("is chainable", function() {
-      expect(g.setEdge("a", "b")).to.equal(g);
-    });
-  });
-
-  describe("setDefaultEdgeLabel", function() {
-    it("sets a default label for new edges", function() {
-      g.setDefaultEdgeLabel("foo");
-      g.setEdge("a", "b");
-      expect(g.edge("a", "b")).to.equal("foo");
-    });
-
-    it("does not change existing edges", function() {
-      g.setEdge("a", "b");
-      g.setDefaultEdgeLabel("foo");
-      expect(g.edge("a", "b")).to.be.undefined;
-    });
-
-    it("is not used if an explicit value is set", function() {
-      g.setDefaultEdgeLabel("foo");
-      g.setEdge("a", "b", "bar");
-      expect(g.edge("a", "b")).to.equal("bar");
-    });
-
-    it("can take a function", function() {
-      g.setDefaultEdgeLabel(function() { return "foo"; });
-      g.setEdge("a", "b");
-      expect(g.edge("a", "b")).to.equal("foo");
-    });
-
-    it("can take a function that takes the edge's endpoints and name", function() {
-      var g = new Graph({ multigraph: true });
-      g.setDefaultEdgeLabel(function(v, w, name) {
-        return v + "-" + w + "-" + name + "-foo";
-      });
-      g.setEdge({ v: "a", w: "b", name: "name"});
-      expect(g.edge("a", "b", "name")).to.equal("a-b-name-foo");
-    });
-
-    it("does not set a default value for a multi-edge that already exists", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge("a", "b", "old", "name");
-      g.setDefaultEdgeLabel(function() { return "should not set this"; });
-      g.setEdge({ v: "a", w: "b", name: "name"});
-      expect(g.edge("a", "b", "name")).to.equal("old");
-    });
-
-    it("is chainable", function() {
-      expect(g.setDefaultEdgeLabel("foo")).to.equal(g);
-    });
-  });
-
-  describe("edge", function() {
-    it("returns undefined if the edge isn't part of the graph", function() {
-      expect(g.edge("a", "b")).to.be.undefined;
-      expect(g.edge({ v: "a", w: "b" })).to.be.undefined;
-      expect(g.edge("a", "b", "foo")).to.be.undefined;
-    });
-
-    it("returns the value of the edge if it is part of the graph", function() {
-      g.setEdge("a", "b", { foo: "bar" });
-      expect(g.edge("a", "b")).to.eql({ foo: "bar" });
-      expect(g.edge({ v: "a", w: "b" })).to.eql({ foo: "bar" });
-      expect(g.edge("b", "a")).to.be.undefined;
-    });
-
-    it("returns the value of a multi-edge if it is part of the graph", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge("a", "b", { bar: "baz" }, "foo");
-      expect(g.edge("a", "b", "foo")).to.eql({ bar: "baz" });
-      expect(g.edge("a", "b")).to.be.undefined;
-    });
-
-    it("returns an edge in either direction in an undirected graph", function() {
-      var g = new Graph({ directed: false });
-      g.setEdge("a", "b", { foo: "bar" });
-      expect(g.edge("a", "b")).to.eql({ foo: "bar" });
-      expect(g.edge("b", "a")).to.eql({ foo: "bar" });
-    });
-  });
-
-  describe("removeEdge", function() {
-    it("has no effect if the edge is not in the graph", function() {
-      g.removeEdge("a", "b");
-      expect(g.hasEdge("a", "b")).to.be.false;
-      expect(g.edgeCount()).to.equal(0);
-    });
-
-    it("can remove an edge by edgeObj", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge({ v: "a", w: "b", name: "foo" });
-      g.removeEdge({ v: "a", w: "b", name: "foo" });
-      expect(g.hasEdge("a", "b", "foo")).to.be.false;
-      expect(g.edgeCount()).to.equal(0);
-    });
-
-    it("can remove an edge by separate ids", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge({ v: "a", w: "b", name: "foo" });
-      g.removeEdge("a", "b", "foo");
-      expect(g.hasEdge("a", "b", "foo")).to.be.false;
-      expect(g.edgeCount()).to.equal(0);
-    });
-
-    it("correctly removes neighbors", function() {
-      g.setEdge("a", "b");
-      g.removeEdge("a", "b");
-      expect(g.successors("a")).to.eql([]);
-      expect(g.neighbors("a")).to.eql([]);
-      expect(g.predecessors("b")).to.eql([]);
-      expect(g.neighbors("b")).to.eql([]);
-    });
-
-    it("correctly decrements neighbor counts", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge("a", "b");
-      g.setEdge({ v: "a", w: "b", name: "foo" });
-      g.removeEdge("a", "b");
-      expect(g.hasEdge("a", "b", "foo"));
-      expect(g.successors("a")).to.eql(["b"]);
-      expect(g.neighbors("a")).to.eql(["b"]);
-      expect(g.predecessors("b")).to.eql(["a"]);
-      expect(g.neighbors("b")).to.eql(["a"]);
-    });
-
-    it("works with undirected graphs", function() {
-      var g = new Graph({ directed: false });
-      g.setEdge("h", "g");
-      g.removeEdge("g", "h");
-      expect(g.neighbors("g")).to.eql([]);
-      expect(g.neighbors("h")).to.eql([]);
-    });
-
-    it("is chainable", function() {
-      g.setEdge("a", "b");
-      expect(g.removeEdge("a", "b")).to.equal(g);
-    });
-  });
-
-  describe("inEdges", function() {
-    it("returns undefined for a node that is not in the graph", function() {
-      expect(g.inEdges("a")).to.be.undefined;
-    });
-
-    it("returns the edges that point at the specified node", function() {
-      g.setEdge("a", "b");
-      g.setEdge("b", "c");
-      expect(g.inEdges("a")).to.eql([]);
-      expect(g.inEdges("b")).to.eql([{ v: "a", w: "b" }]);
-      expect(g.inEdges("c")).to.eql([{ v: "b", w: "c" }]);
-    });
-
-    it("works for multigraphs", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge("a", "b");
-      g.setEdge("a", "b", undefined, "bar");
-      g.setEdge("a", "b", undefined, "foo");
-      expect(g.inEdges("a")).to.eql([]);
-      expect(_.sortBy(g.inEdges("b"), "name")).to.eql([
-        { v: "a", w: "b", name: "bar" },
-        { v: "a", w: "b", name: "foo" },
-        { v: "a", w: "b" }
-      ]);
-    });
-
-    it("can return only edges from a specified node", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge("a", "b");
-      g.setEdge("a", "b", undefined, "foo");
-      g.setEdge("a", "c");
-      g.setEdge("b", "c");
-      g.setEdge("z", "a");
-      g.setEdge("z", "b");
-      expect(g.inEdges("a", "b")).to.eql([]);
-      expect(_.sortBy(g.inEdges("b", "a"), "name")).to.eql([
-        { v: "a", w: "b", name: "foo" },
-        { v: "a", w: "b" }
-      ]);
-    });
-  });
-
-  describe("outEdges", function() {
-    it("returns undefined for a node that is not in the graph", function() {
-      expect(g.outEdges("a")).to.be.undefined;
-    });
-
-    it("returns all edges that this node points at", function() {
-      g.setEdge("a", "b");
-      g.setEdge("b", "c");
-      expect(g.outEdges("a")).to.eql([{ v: "a", w: "b" }]);
-      expect(g.outEdges("b")).to.eql([{ v: "b", w: "c" }]);
-      expect(g.outEdges("c")).to.eql([]);
-    });
-
-    it("works for multigraphs", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge("a", "b");
-      g.setEdge("a", "b", undefined, "bar");
-      g.setEdge("a", "b", undefined, "foo");
-      expect(_.sortBy(g.outEdges("a"), "name")).to.eql([
-        { v: "a", w: "b", name: "bar" },
-        { v: "a", w: "b", name: "foo" },
-        { v: "a", w: "b" }
-      ]);
-      expect(g.outEdges("b")).to.eql([]);
-    });
-
-    it("can return only edges to a specified node", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge("a", "b");
-      g.setEdge("a", "b", undefined, "foo");
-      g.setEdge("a", "c");
-      g.setEdge("b", "c");
-      g.setEdge("z", "a");
-      g.setEdge("z", "b");
-      expect(_.sortBy(g.outEdges("a", "b"), "name")).to.eql([
-        { v: "a", w: "b", name: "foo" },
-        { v: "a", w: "b" }
-      ]);
-      expect(g.outEdges("b", "a")).to.eql([]);
-    });
-  });
-
-  describe("nodeEdges", function() {
-    it("returns undefined for a node that is not in the graph", function() {
-      expect(g.nodeEdges("a")).to.be.undefined;
-    });
-
-    it("returns all edges that this node points at", function() {
-      g.setEdge("a", "b");
-      g.setEdge("b", "c");
-      expect(g.nodeEdges("a")).to.eql([{ v: "a", w: "b" }]);
-      expect(_.sortBy(g.nodeEdges("b"), ["v", "w"]))
-        .to.eql([{ v: "a", w: "b" }, { v: "b", w: "c" }]);
-      expect(g.nodeEdges("c")).to.eql([{ v: "b", w: "c" }]);
-    });
-
-    it("works for multigraphs", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge("a", "b");
-      g.setEdge({ v: "a", w: "b", name: "bar" });
-      g.setEdge({ v: "a", w: "b", name: "foo" });
-      expect(_.sortBy(g.nodeEdges("a"), "name")).to.eql([
-        { v: "a", w: "b", name: "bar" },
-        { v: "a", w: "b", name: "foo" },
-        { v: "a", w: "b" }
-      ]);
-      expect(_.sortBy(g.nodeEdges("b"), "name")).to.eql([
-        { v: "a", w: "b", name: "bar" },
-        { v: "a", w: "b", name: "foo" },
-        { v: "a", w: "b" }
-      ]);
-    });
-
-    it("can return only edges between specific nodes", function() {
-      var g = new Graph({ multigraph: true });
-      g.setEdge("a", "b");
-      g.setEdge({ v: "a", w: "b", name: "foo" });
-      g.setEdge("a", "c");
-      g.setEdge("b", "c");
-      g.setEdge("z", "a");
-      g.setEdge("z", "b");
-      expect(_.sortBy(g.nodeEdges("a", "b"), "name")).to.eql([
-        { v: "a", w: "b", name: "foo" },
-        { v: "a", w: "b" }
-      ]);
-      expect(_.sortBy(g.nodeEdges("b", "a"), "name")).to.eql([
-        { v: "a", w: "b", name: "foo" },
-        { v: "a", w: "b" }
-      ]);
-    });
-  });
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/json-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/json-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/json-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/json-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,64 +0,0 @@
-var expect = require("./chai").expect;
-var Graph = require("..").Graph;
-var read = require("..").json.read;
-var write = require("..").json.write;
-
-describe("json", function() {
-  it("preserves the graph options", function() {
-    expect(rw(new Graph({ directed: true })).isDirected()).to.be.true;
-    expect(rw(new Graph({ directed: false })).isDirected()).to.be.false;
-    expect(rw(new Graph({ multigraph: true })).isMultigraph()).to.be.true;
-    expect(rw(new Graph({ multigraph: false })).isMultigraph()).to.be.false;
-    expect(rw(new Graph({ compound: true })).isCompound()).to.be.true;
-    expect(rw(new Graph({ compound: false })).isCompound()).to.be.false;
-  });
-
-  it("preserves the graph value, if any", function() {
-    expect(rw(new Graph().setGraph(1)).graph()).equals(1);
-    expect(rw(new Graph().setGraph({ foo: "bar" })).graph()).eqls({ foo: "bar" });
-    expect(rw(new Graph()).graph()).to.be.undefined;
-  });
-
-  it("preserves nodes", function() {
-    expect(rw(new Graph().setNode("a")).hasNode("a")).to.be.true;
-    expect(rw(new Graph().setNode("a")).node("a")).to.be.undefined;
-    expect(rw(new Graph().setNode("a", 1)).node("a")).equals(1);
-    expect(rw(new Graph().setNode("a", { foo: "bar" })).node("a"))
-      .eqls({ foo: "bar" });
-  });
-
-  it("preserves simple edges", function() {
-    expect(rw(new Graph().setEdge("a", "b")).hasEdge("a", "b")).to.be.true;
-    expect(rw(new Graph().setEdge("a", "b")).edge("a", "b")).to.be.undefined;
-    expect(rw(new Graph().setEdge("a", "b", 1)).edge("a", "b")).equals(1);
-    expect(rw(new Graph().setEdge("a", "b", { foo: "bar" })).edge("a", "b"))
-      .eqls({ foo: "bar" });
-  });
-
-  it("preserves multi-edges", function() {
-    var g = new Graph({ multigraph: true });
-
-    g.setEdge({ v: "a", w: "b", name: "foo" });
-    expect(rw(g).hasEdge("a", "b", "foo")).to.be.true;
-
-    g.setEdge({ v: "a", w: "b", name: "foo" });
-    expect(rw(g).edge("a", "b", "foo")).to.be.undefined;
-
-    g.setEdge({ v: "a", w: "b", name: "foo" }, 1);
-    expect(rw(g).edge("a", "b", "foo")).equals(1);
-
-    g.setEdge({ v: "a", w: "b", name: "foo" }, { foo: "bar" });
-    expect(rw(g).edge("a", "b", "foo")).eqls({ foo: "bar" });
-  });
-
-  it("preserves parent / child relationships", function() {
-    expect(rw(new Graph({ compound: true }).setNode("a")).parent("a"))
-      .to.be.undefined;
-    expect(rw(new Graph({ compound: true }).setParent("a", "parent")).parent("a"))
-      .to.equal("parent");
-  });
-});
-
-function rw(g) {
-  return read(write(g));
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/test-main.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/test-main.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/test-main.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/test-main.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,40 +0,0 @@
-/* global require */
-
-var allTestFiles = [];
-var TEST_REGEXP = /(spec|test)\.js$/i;
-
-// Get a list of all the test files to include
-Object.keys(this.__karma__.files).forEach(function(file) {
-  if (TEST_REGEXP.test(file)) {
-    // Normalize paths to RequireJS module names.
-    // If you require sub-dependencies of test files to be loaded as-is (requiring file extension)
-    // then do not normalize the paths
-    var normalizedTestModule = file.replace(/^\/base\/|\.js$/g, '');
-    allTestFiles.push(normalizedTestModule);
-  }
-});
-
-require.config({
-  // Karma serves files under /base, which is the basePath from your config file
-  baseUrl: '/base',
-
-  paths:{
-    chai: 'node_modules/chai/chai',
-    lodash: 'node_modules/lodash/lodash',
-    graphlib: 'build/graphlib',
-    'graphlib.core': 'build/graphlib.core'
-  },
-
-  shim: {
-    'graphlib.core': {
-      deps: ['lodash'],
-      exports: 'graphlib.core' //any even not existing var could be defined here.
-    }
-  },
-
-  // dynamically load all test files
-  deps: allTestFiles,
-
-  // we have to kickoff jasmine, as it is asynchronous
-  callback: this.__karma__.start
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/test/version-test.js 0.32.1+repack1+~cs5.2.1-1/graphlib/test/version-test.js
--- 0.32.1+ds+~cs9.4.17-2/graphlib/test/version-test.js	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/test/version-test.js	1970-01-01 00:00:00.000000000 +0000
@@ -1,8 +0,0 @@
-var expect = require('./chai').expect;
-
-describe('version', function() {
-  it('should match the version from package.json', function() {
-    var packageVersion = require('../package').version;
-    expect(require('../lib/version')).to.equal(packageVersion);
-  });
-});
diff -pruN 0.32.1+ds+~cs9.4.17-2/graphlib/.travis.yml 0.32.1+repack1+~cs5.2.1-1/graphlib/.travis.yml
--- 0.32.1+ds+~cs9.4.17-2/graphlib/.travis.yml	2019-12-03 16:59:37.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/graphlib/.travis.yml	1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-language: node_js
-node_js:
-  - "lts/*"
-script: KARMA_OPTS="--browsers Firefox,PhantomJS" make -e test
-before_script:
-  - export DISPLAY=:99.0        
-  - sh -e /etc/init.d/xvfb start
diff -pruN 0.32.1+ds+~cs9.4.17-2/types-graphlib/index.d.ts 0.32.1+repack1+~cs5.2.1-1/types-graphlib/index.d.ts
--- 0.32.1+ds+~cs9.4.17-2/types-graphlib/index.d.ts	2021-07-06 20:33:08.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/types-graphlib/index.d.ts	1970-01-01 00:00:00.000000000 +0000
@@ -1,602 +0,0 @@
-// Type definitions for graphlib 2.1.1
-// Project: https://github.com/cpettitt/graphlib
-// Definitions by: Dan Vanderkam <http://danvk.org/>, Dan Mironenko <wolfson@bracketedrebels.com>
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-
-declare module "graphlib" {
-    export interface GraphOptions {
-        directed?: boolean | undefined;  // default: true.
-        multigraph?: boolean | undefined;  // default: false.
-        compound?: boolean | undefined;  // default: false.
-    }
-
-    export interface Edge {
-        v: string;
-        w: string;
-        /** The name that uniquely identifies a multi-edge. */
-        name?: string | undefined;
-    }
-
-    export class Graph {
-        constructor(options?: GraphOptions);
-
-        /**
-         * Sets the default node label. This label will be assigned as default label
-         * in case if no label was specified while setting a node.
-         * Complexity: O(1).
-         * 
-         * @argument label - default node label.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        setDefaultNodeLabel(label: any): Graph;
-
-        /**
-         * Sets the default node label factory function. This function will be invoked
-         * each time when setting a node with no label specified and returned value 
-         * will be used as a label for node.
-         * Complexity: O(1).
-         * 
-         * @argument labelFn - default node label factory function.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        setDefaultNodeLabel(labelFn: (v: string) => any): Graph;
-
-        /**
-         * Creates or updates the value for the node v in the graph. If label is supplied
-         * it is set as the value for the node. If label is not supplied and the node was
-         * created by this call then the default node label will be assigned.
-         * Complexity: O(1).
-         * 
-         * @argument name - node name.
-         * @argument label - value to set for node.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        setNode(name: string, label?: any): Graph;
-
-        /**
-         * Invokes setNode method for each node in names list.
-         * Complexity: O(|names|).
-         * 
-         * @argument names - list of nodes names to be set.
-         * @argument label - value to set for each node in list.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        setNodes(names: string[], label?: any): Graph;
-
-        /**
-         * Sets node p as a parent for node v if it is defined, or removes the
-         * parent for v if p is undefined. Method throws an exception in case of
-         * invoking it in context of noncompound graph.
-         * Average-case complexity: O(1).
-         * 
-         * @argument v - node to be child for p.
-         * @argument p - node to be parent for v.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        setParent(v: string, p?: string): Graph;
-
-        /**
-         * Gets parent node for node v.
-         * Complexity: O(1).
-         * 
-         * @argument v - node to get parent of.
-         * @returns parent node name or void if v has no parent.
-         */
-        parent(v: string): string | void;
-
-        /**
-         * Gets list of direct children of node v.
-         * Complexity: O(1).
-         * 
-         * @argument v - node to get children of.
-         * @returns children nodes names list.
-         */
-        children(v?: string): string[];
-
-        /**
-         * Creates new graph with nodes filtered via filter. Edges incident to rejected node
-         * are also removed. In case of compound graph, if parent is rejected by filter,
-         * than all its children are rejected too.
-         * Average-case complexity: O(|E|+|V|).
-         * 
-         * @argument filter - filtration function detecting whether the node should stay or not.
-         * @returns new graph made from current and nodes filtered.
-         */
-        filterNodes(filter: (v: string) => boolean): Graph;
-
-        /**
-         * Sets the default edge label. This label will be assigned as default label
-         * in case if no label was specified while setting an edge.
-         * Complexity: O(1).
-         * 
-         * @argument label - default edge label.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        setDefaultEdgeLabel(label: any): Graph;
-
-        /**
-         * Sets the default edge label factory function. This function will be invoked
-         * each time when setting an edge with no label specified and returned value 
-         * will be used as a label for edge.
-         * Complexity: O(1).
-         * 
-         * @argument labelFn - default edge label factory function.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        setDefaultEdgeLabel(labelFn: (v: string) => any): Graph;
-
-        /**
-         * Establish an edges path over the nodes in nodes list. If some edge is already
-         * exists, it will update its label, otherwise it will create an edge between pair
-         * of nodes with label provided or default label if no label provided.
-         * Complexity: O(|nodes|).
-         * 
-         * @argument nodes - list of nodes to be connected in series.
-         * @argument label - value to set for each edge between pairs of nodes.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        setPath(nodes: string[], label?: any): Graph;
-
-        /**
-         * Detects whether graph has a node with specified name or not.
-         
-         * 
-         * @argument name - name of the node.
-         * @returns true if graph has node with specified name, false - otherwise.
-         */
-        hasNode(name: string): boolean;
-
-        /**
-         * Remove the node with the name from the graph or do nothing if the node is not in
-         * the graph. If the node was removed this function also removes any incident
-         * edges.
-         * Complexity: O(1).
-         *
-         * @argument name - name of the node.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        removeNode(name: string): Graph;
-
-        /**
-         * Gets all nodes of the graph. Note, the in case of compound graph subnodes are
-         * not included in list.
-         * Complexity: O(1).
-         * 
-         * @returns list of graph nodes.
-         */
-        nodes(): string[];
-
-        /**
-         * Gets the label of node with specified name.
-         * Complexity: O(|V|).
-         * 
-         * @returns label value of the node.
-         */
-        node(name: string): any;
-
-        /**
-         * Creates or updates the label for the edge (v, w) with the optionally supplied
-         * name. If label is supplied it is set as the value for the edge. If label is not
-         * supplied and the edge was created by this call then the default edge label will
-         * be assigned. The name parameter is only useful with multigraphs.
-         * Complexity: O(1).
-         * 
-         * @argument v - edge source node.
-         * @argument w - edge sink node.
-         * @argument label - value to associate with the edge.
-         * @argument name - unique name of the edge in order to identify it in multigraph.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        setEdge(v: string, w: string, label?: any, name?: string): Graph;
-
-        /**
-         * Creates or updates the label for the specified edge. If label is supplied it is 
-         * set as the value for the edge. If label is not supplied and the edge was created 
-         * by this call then the default edge label will be assigned. The name parameter is 
-         * only useful with multigraphs.
-         * Complexity: O(1).
-         * 
-         * @argument edge - edge descriptor.
-         * @argument label - value to associate with the edge.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        setEdge(edge: Edge, label?: any): Graph;
-
-        /**
-         * Gets edges of the graph. In case of compound graph subgraphs are not considered.
-         * Complexity: O(|E|).
-         * 
-         * @return graph edges list.
-         */
-        edges(): Edge[];
-
-        /**
-         * Gets the label for the specified edge.
-         * Complexity: O(1).
-         * 
-         * @argument v - edge source node.
-         * @argument w - edge sink node.
-         * @argument name - name of the edge (actual for multigraph).
-         * @returns value associated with specified edge.
-        */
-        edge(v: string, w: string, name?: string): any;
-
-        /**
-         * Gets the label for the specified edge.
-         * Complexity: O(1).
-         * 
-         * @argument edge - edge descriptor.
-         * @returns value associated with specified edge.
-        */
-        edge(e: Edge): any;
-
-        /**
-         * Detects whether the graph contains specified edge or not. No subgraphs are considered.
-         * Complexity: O(1).
-         * 
-         * @argument v - edge source node.
-         * @argument w - edge sink node.
-         * @argument name - name of the edge (actual for multigraph).
-         * @returns whether the graph contains the specified edge or not.
-         */
-        hasEdge(v: string, w: string, name?: string): boolean;
-
-        /**
-         * Detects whether the graph contains specified edge or not. No subgraphs are considered.
-         * Complexity: O(1).
-         * 
-         * @argument edge - edge descriptor.
-         * @returns whether the graph contains the specified edge or not.
-         */
-        hasEdge(edge: Edge): boolean;
-
-        /**
-         * Removes the specified edge from the graph. No subgraphs are considered.
-         * Complexity: O(1).
-         * 
-         * @argument edge - edge descriptor.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        removeEdge(edge: Edge): Graph;
-
-        /**
-         * Removes the specified edge from the graph. No subgraphs are considered.
-         * Complexity: O(1).
-         * 
-         * @argument v - edge source node.
-         * @argument w - edge sink node.
-         * @argument name - name of the edge (actual for multigraph).
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        removeEdge(v: string, w: string, name?: string): Graph;
-
-        /**
-         * Return all edges that point to the node v. Optionally filters those edges down to just those
-         * coming from node u. Behavior is undefined for undirected graphs - use nodeEdges instead.
-         * Complexity: O(|E|).
-         * 
-         * @argument v - edge sink node.
-         * @argument w - edge source node.
-         * @returns edges descriptors list if v is in the graph, or undefined otherwise.
-         */
-        inEdges(v: string, w?: string): void | Edge[];
-
-        /**
-         * Return all edges that are pointed at by node v. Optionally filters those edges down to just
-         * those point to w. Behavior is undefined for undirected graphs - use nodeEdges instead.
-         * Complexity: O(|E|).
-         * 
-         * @argument v - edge source node.
-         * @argument w - edge sink node.
-         * @returns edges descriptors list if v is in the graph, or undefined otherwise.
-         */
-        outEdges(v: string, w?: string): void | Edge[];
-
-        /**
-         * Returns all edges to or from node v regardless of direction. Optionally filters those edges
-         * down to just those between nodes v and w regardless of direction.
-         * Complexity: O(|E|).
-         * 
-         * @argument v - edge adjacent node.
-         * @argument w - edge adjacent node.
-         * @returns edges descriptors list if v is in the graph, or undefined otherwise.
-         */
-        nodeEdges(v: string, w?: string): void | Edge[];
-
-        /**
-         * Return all nodes that are predecessors of the specified node or undefined if node v is not in
-         * the graph. Behavior is undefined for undirected graphs - use neighbors instead.
-         * Complexity: O(|V|).
-         * 
-         * @argument v - node identifier.
-         * @returns node identifiers list or undefined if v is not in the graph.
-         */
-        predecessors(v: string): void | string[];
-
-        /**
-         * Return all nodes that are successors of the specified node or undefined if node v is not in
-         * the graph. Behavior is undefined for undirected graphs - use neighbors instead.
-         * Complexity: O(|V|).
-         * 
-         * @argument v - node identifier.
-         * @returns node identifiers list or undefined if v is not in the graph.
-         */
-        successors(v: string): void | string[];
-
-        /**
-         * Return all nodes that are predecessors or successors of the specified node or undefined if
-         * node v is not in the graph.
-         * Complexity: O(|V|).
-         * 
-         * @argument v - node identifier.
-         * @returns node identifiers list or undefined if v is not in the graph.
-         */
-
-        neighbors(v: string): void | string[];
-
-        /**
-         * Whether graph was created with 'directed' flag set to true or not.
-         * 
-         * @returns whether the graph edges have an orientation.
-         */
-        isDirected(): boolean;
-
-        /**
-         * Whether graph was created with 'multigraph' flag set to true or not.
-         * 
-         * @returns whether the pair of nodes of the graph can have multiple edges.
-         */
-        isMultigraph(): boolean;
-
-        /**
-         * Whether graph was created with 'compound' flag set to true or not.
-         * 
-         * @returns whether a node of the graph can have subnodes.
-         */
-        isCompound(): boolean;
-
-        /**
-         * Sets the label of the graph.
-         * 
-         * @argument label - label value.
-         * @returns the graph, allowing this to be chained with other functions.
-         */
-        setGraph(label: any): Graph;
-
-        /**
-         * Gets the graph label.
-         * 
-         * @returns currently assigned label for the graph or undefined if no label assigned.
-         */
-        graph(): void | string;
-
-        /**
-         * Gets the number of nodes in the graph.
-         * Complexity: O(1).
-         * 
-         * @returns nodes count.
-         */
-        nodeCount(): number;
-
-        /**
-         * Gets the number of edges in the graph.
-         * Complexity: O(1).
-         * 
-         * @returns edges count.
-         */
-        edgeCount(): number;
-
-        /**
-         * Gets list of nodes without in-edges.
-         * Complexity: O(|V|).
-         * 
-         * @returns the graph source nodes.
-         */
-        sources(): string[];
-
-        /**
-         * Gets list of nodes without out-edges.
-         * Complexity: O(|V|).
-         * 
-         * @returns the graph source nodes.
-         */
-        sinks(): string[];
-    }
-
-    export namespace json {
-        /**
-         * Creates a JSON representation of the graph that can be serialized to a string with
-         * JSON.stringify. The graph can later be restored using json.read.
-         * 
-         * @argument graph - target to create JSON representation of.
-         * @returns JSON serializable graph representation
-         */
-        function write(graph: Graph): Object;
-
-        /**
-         * Takes JSON as input and returns the graph representation.
-         *
-         * @example
-         * var g2 = graphlib.json.read(JSON.parse(str));
-         * g2.nodes();
-         * // ['a', 'b']
-         * g2.edges()
-         * // [ { v: 'a', w: 'b' } ]
-         * 
-         * @argument json - JSON serializable graph representation
-         * @returns graph constructed acccording to specified representation
-         */
-        function read(json: Object): Graph;
-    }
-
-    export interface Path {
-        distance: number;
-        predecessor: string;
-    }
-
-    export namespace alg {
-        /**
-         * Finds all connected components in a graph and returns an array of these components.
-         * Each component is itself an array that contains the ids of nodes in the component.
-         * Complexity: O(|V|).
-         * 
-         * @argument graph - graph to find components in.
-         * @returns array of nodes list representing components
-         */
-        function components(graph: Graph): string[][];
-
-        /**
-         * This function is an implementation of Dijkstra's algorithm which finds the shortest
-         * path from source to all other nodes in graph. This function returns a map of
-         * v -> { distance, predecessor }. The distance property holds the sum of the weights
-         * from source to v along the shortest path or Number.POSITIVE_INFINITY if there is no path
-         * from source. The predecessor property can be used to walk the individual elements of the
-         * path from source to v in reverse order.
-         * Complexity: O((|E| + |V|) * log |V|).
-         *
-         * @argument graph - graph where to search pathes.
-         * @argument source - node to start pathes from.
-         * @argument weightFn - function which takes edge e and returns the weight of it. If no weightFn
-         * is supplied then each edge is assumed to have a weight of 1. This function throws an
-         * Error if any of the traversed edges have a negative edge weight.
-         * @argument edgeFn - function which takes a node v and returns the ids of all edges incident to it
-         * for the purposes of shortest path traversal. By default this function uses the graph.outEdges.
-         * @returns shortest pathes map that starts from node source
-         */
-        function dijkstra(
-            graph: Graph,
-            source: string,
-            weightFn?: (e: Edge) => number,
-            edgeFn?: (v: string) => Edge[]
-        ): { [node: string]: Path };
-
-        /**
-         * This function finds the shortest path from each node to every other reachable node in
-         * the graph. It is similar to alg.dijkstra, but instead of returning a single-source
-         * array, it returns a mapping of source -> alg.dijksta(g, source, weightFn, edgeFn).
-         * Complexity: O(|V| * (|E| + |V|) * log |V|).
-         *
-         * @argument graph - graph where to search pathes.
-         * @argument weightFn - function which takes edge e and returns the weight of it. If no weightFn
-         * is supplied then each edge is assumed to have a weight of 1. This function throws an
-         * Error if any of the traversed edges have a negative edge weight.
-         * @argument edgeFn - function which takes a node v and returns the ids of all edges incident to it
-         * for the purposes of shortest path traversal. By default this function uses the graph.outEdges.
-         * @returns shortest pathes map.
-         */
-        function dijkstraAll(
-            graph: Graph,
-            weightFn?: (e: Edge) => number,
-            edgeFn?: (v: string) => Edge[]
-        ): { [source: string]: { [node: string]: Path } };
-
-        /**
-         * Given a Graph, graph, this function returns all nodes that are part of a cycle. As there
-         * may be more than one cycle in a graph this function return an array of these cycles,
-         * where each cycle is itself represented by an array of ids for each node involved in
-         * that cycle. Method alg.isAcyclic is more efficient if you only need to determine whether a graph has a
-         * cycle or not.
-         * Complexity: O(|V| + |E|).
-         * 
-         * @argument graph - graph where to search cycles.
-         * @returns cycles list.
-         */
-        function findCycles(graph: Graph): string[][];
-
-        /**
-         * Given a Graph, graph, this function returns true if the graph has no cycles and returns false if it
-         * does. This algorithm returns as soon as it detects the first cycle. You can use alg.findCycles
-         * to get the actual list of cycles in the graph.
-         * 
-         * @argument graph - graph to detect whether it acyclic ot not.
-         * @returns whether graph contain cycles or not.
-         */
-        function isAcyclic(graph: Graph): boolean;
-
-        /**
-         * This function is an implementation of the Floyd-Warshall algorithm, which finds the
-         * shortest path from each node to every other reachable node in the graph. It is similar
-         * to alg.dijkstraAll, but it handles negative edge weights and is more efficient for some types
-         * of graphs. This function returns a map of source -> { target -> { distance, predecessor }.
-         * The distance property holds the sum of the weights from source to target along the shortest
-         * path of Number.POSITIVE_INFINITY if there is no path from source. The predecessor property
-         * can be used to walk the individual elements of the path from source to target in reverse
-         * order.
-         * Complexity: O(|V|^3).
-         *
-         * @argument graph - graph where to search pathes.
-         * @argument weightFn - function which takes edge e and returns the weight of it. If no weightFn
-         * is supplied then each edge is assumed to have a weight of 1. This function throws an
-         * Error if any of the traversed edges have a negative edge weight.
-         * @argument edgeFn - function which takes a node v and returns the ids of all edges incident to it
-         * for the purposes of shortest path traversal. By default this function uses the graph.outEdges.
-         * @returns shortest pathes map.
-         */
-        function floydWarshall(
-            graph: Graph,
-            weightFn?: (e: Edge) => number,
-            edgeFn?: (v: string) => Edge[]
-        ): { [source: string]: { [node: string]: Path } };
-
-        /**
-         * Prim's algorithm takes a connected undirected graph and generates a minimum spanning tree. This
-         * function returns the minimum spanning tree as an undirected graph. This algorithm is derived
-         * from the description in "Introduction to Algorithms", Third Edition, Cormen, et al., Pg 634.
-         * Complexity: O(|E| * log |V|);
-         *
-         * @argument graph - graph to generate a minimum spanning tree of.
-         * @argument weightFn - function which takes edge e and returns the weight of it. It throws an Error if
-         *           the graph is not connected.
-         * @returns minimum spanning tree of graph.
-         */
-        function prim(graph: Graph, weightFn: (e: Edge) => number): Graph;
-
-        /**
-         * This function is an implementation of Tarjan's algorithm which finds all strongly connected
-         * components in the directed graph g. Each strongly connected component is composed of nodes that
-         * can reach all other nodes in the component via directed edges. A strongly connected component
-         * can consist of a single node if that node cannot both reach and be reached by any other
-         * specific node in the graph. Components of more than one node are guaranteed to have at least
-         * one cycle.
-         * Complexity: O(|V| + |E|).
-         *
-         * @argument graph - graph to find all strongly connected components of.
-         * @return  an array of components. Each component is itself an array that contains
-         *          the ids of all nodes in the component.
-         */
-        function tarjan(graph: Graph): string[][];
-
-        /**
-         * Given a Graph graph this function applies topological sorting to it.
-         * If the graph has a cycle it is impossible to generate such a list and CycleException is thrown.
-         * Complexity: O(|V| + |E|).
-         * 
-         * @argument graph - graph to apply topological sorting to.
-         * @returns an array of nodes such that for each edge u -> v, u appears before v in the array.
-         */
-        function topsort(graph: Graph): string[];
-
-        /**
-         * Performs pre-order depth first traversal on the input graph. If the graph is
-         * undirected then this algorithm will navigate using neighbors. If the graph
-         * is directed then this algorithm will navigate using successors.
-         * 
-         * @argument graph - depth first traversal target.
-         * @argument vs - nodes list to traverse.
-         * @returns the nodes in the order they were visited as a list of their names.
-         */
-        function preorder(graph: Graph, vs: string[]): string[]
-
-        /**
-         * Performs post-order depth first traversal on the input graph. If the graph is
-         * undirected then this algorithm will navigate using neighbors. If the graph
-         * is directed then this algorithm will navigate using successors.
-         * 
-         * @argument graph - depth first traversal target.
-         * @argument vs - nodes list to traverse.
-         * @returns the nodes in the order they were visited as a list of their names.
-         */
-        function postorder(graph: Graph, vs: string[]): string[]
-    }
-}
diff -pruN 0.32.1+ds+~cs9.4.17-2/types-graphlib/LICENSE 0.32.1+repack1+~cs5.2.1-1/types-graphlib/LICENSE
--- 0.32.1+ds+~cs9.4.17-2/types-graphlib/LICENSE	2021-07-06 20:33:08.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/types-graphlib/LICENSE	1970-01-01 00:00:00.000000000 +0000
@@ -1,21 +0,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
diff -pruN 0.32.1+ds+~cs9.4.17-2/types-graphlib/package.json 0.32.1+repack1+~cs5.2.1-1/types-graphlib/package.json
--- 0.32.1+ds+~cs9.4.17-2/types-graphlib/package.json	2021-07-06 20:33:08.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/types-graphlib/package.json	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-{
-    "name": "@types/graphlib",
-    "version": "2.1.8",
-    "description": "TypeScript definitions for graphlib",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/graphlib",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Dan Vanderkam",
-            "url": "http://danvk.org/"
-        },
-        {
-            "name": "Dan Mironenko",
-            "url": "wolfson@bracketedrebels.com"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/graphlib"
-    },
-    "scripts": {},
-    "dependencies": {},
-    "typesPublisherContentHash": "832551611e83b8fdf034bfd7d3a4b31bdddd8216517da07d1afde8b4a9df7078",
-    "typeScriptVersion": "3.6"
-}
\ No newline at end of file
diff -pruN 0.32.1+ds+~cs9.4.17-2/types-graphlib/README.md 0.32.1+repack1+~cs5.2.1-1/types-graphlib/README.md
--- 0.32.1+ds+~cs9.4.17-2/types-graphlib/README.md	2021-07-06 20:33:08.000000000 +0000
+++ 0.32.1+repack1+~cs5.2.1-1/types-graphlib/README.md	1970-01-01 00:00:00.000000000 +0000
@@ -1,16 +0,0 @@
-# Installation
-> `npm install --save @types/graphlib`
-
-# Summary
-This package contains type definitions for graphlib (https://github.com/cpettitt/graphlib).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/graphlib.
-
-### Additional Details
- * Last updated: Tue, 06 Jul 2021 20:33:08 GMT
- * Dependencies: none
- * Global values: none
-
-# Credits
-These definitions were written by [Dan Vanderkam](http://danvk.org/), and [Dan Mironenko](wolfson@bracketedrebels.com).
