]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Add peertube tool
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Thu, 14 Feb 2019 18:23:06 +0000 (19:23 +0100)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Thu, 14 Feb 2019 18:23:06 +0000 (19:23 +0100)
Fixes https://git.immae.eu/mantisbt/view.php?id=118

nixops/modules/websites/default.nix
nixops/modules/websites/tools/peertube/default.nix [new file with mode: 0644]
nixops/modules/websites/tools/peertube/ldap.patch [new file with mode: 0644]
nixops/modules/websites/tools/peertube/ldap_yarn.patch [new file with mode: 0644]
nixops/modules/websites/tools/peertube/peertube.json [new file with mode: 0644]
nixops/modules/websites/tools/peertube/peertube.nix [new file with mode: 0644]
nixops/modules/websites/tools/peertube/sendmail.patch [new file with mode: 0644]
nixops/modules/websites/tools/peertube/yarn-packages.nix [new file with mode: 0644]
nixops/modules/websites/tools/tools/default.nix

index 1d0c1d73cdd516b69efba74223d5687b5ec27f2c..3db1cfac325dd2479b3075ec1b8c7ae53b704082 100644 (file)
@@ -127,6 +127,7 @@ in
     ./tools/mediagoblin
     ./tools/diaspora
     ./tools/ether
+    ./tools/peertube
     # built using:
     # sed -e "s/services\.httpd/services\.httpdProd/g" .nix-defexpr/channels/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
     # Removed allGranted
@@ -208,6 +209,7 @@ in
     services.myWebsites.tools.mediagoblin.enable = true;
     services.myWebsites.tools.diaspora.enable = true;
     services.myWebsites.tools.etherpad-lite.enable = true;
+    services.myWebsites.tools.peertube.enable = true;
 
     services.myWebsites.Chloe.production.enable = cfg.production.enable;
     services.myWebsites.Ludivine.production.enable = cfg.production.enable;
diff --git a/nixops/modules/websites/tools/peertube/default.nix b/nixops/modules/websites/tools/peertube/default.nix
new file mode 100644 (file)
index 0000000..38c2608
--- /dev/null
@@ -0,0 +1,92 @@
+{ lib, pkgs, config, myconfig, mylibs, ... }:
+let
+  peertube = pkgs.callPackage ./peertube.nix {
+    inherit (mylibs) fetchedGithub;
+    env = myconfig.env.tools.peertube;
+  };
+
+  cfg = config.services.myWebsites.tools.peertube;
+in {
+  options.services.myWebsites.tools.peertube = {
+    enable = lib.mkEnableOption "enable Peertube's website";
+  };
+
+  config = lib.mkIf cfg.enable {
+    ids.uids.peertube = myconfig.env.tools.peertube.user.uid;
+    ids.gids.peertube = myconfig.env.tools.peertube.user.gid;
+
+    users.users.peertube = {
+      name = "peertube";
+      uid = config.ids.uids.peertube;
+      group = "peertube";
+      description = "Peertube user";
+      home = peertube.webappDir;
+      useDefaultShell = true;
+    };
+
+    users.groups.peertube.gid = config.ids.gids.peertube;
+
+    systemd.services.peertube = {
+      description = "Peertube";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" "postgresql.service" ];
+      wants = [ "postgresql.service" ];
+
+      environment.NODE_CONFIG_DIR = "${peertube.varDir}/config";
+      environment.NODE_ENV = "production";
+      environment.HOME = peertube.webappDir;
+
+      path = [ pkgs.nodejs pkgs.bashInteractive pkgs.ffmpeg pkgs.openssl ];
+
+      script = ''
+        exec npm run start
+      '';
+
+      serviceConfig = {
+        User = "peertube";
+        Group = "peertube";
+        WorkingDirectory = peertube.webappDir;
+        PrivateTmp = true;
+        ProtectHome = true;
+        ProtectControlGroups = true;
+        Restart = "always";
+        Type = "simple";
+        TimeoutSec = 60;
+      };
+
+      unitConfig.RequiresMountsFor = peertube.varDir;
+    };
+
+    system.activationScripts.peertube = {
+      deps = [ "users" ];
+      text = ''
+        install -m 0755 -o peertube -g peertube -d ${peertube.varDir}
+        install -m 0755 -o peertube -g peertube -d ${peertube.varDir}/config
+        install -m 0644 -o peertube -g peertube -T ${peertube.config} ${peertube.varDir}/config/production.yaml
+        '';
+    };
+
+    services.myWebsites.tools.modules = [
+      "headers" "proxy" "proxy_http" "proxy_wstunnel"
+    ];
+    security.acme.certs."eldiron".extraDomains."peertube.immae.eu" = null;
+    services.myWebsites.tools.vhostConfs.peertube = {
+      certName    = "eldiron";
+      hosts       = [ "peertube.immae.eu" ];
+      root        = null;
+      extraConfig = [ ''
+          ProxyPass /        http://localhost:${peertube.listenPort}/
+          ProxyPassReverse / http://localhost:${peertube.listenPort}/
+
+          ProxyPreserveHost On
+          RequestHeader set X-Real-IP %{REMOTE_ADDR}s
+
+          ProxyPass /tracker/socket        ws://127.0.0.1:${peertube.listenPort}/tracker/socket
+          ProxyPassReverse /tracker/socket ws://127.0.0.1:${peertube.listenPort}/tracker/socket
+
+          ProxyPass /socket.io        ws://127.0.0.1:${peertube.listenPort}/socket.io
+          ProxyPassReverse /socket.io ws://127.0.0.1:${peertube.listenPort}/socket.io
+      '' ];
+    };
+  };
+}
diff --git a/nixops/modules/websites/tools/peertube/ldap.patch b/nixops/modules/websites/tools/peertube/ldap.patch
new file mode 100644 (file)
index 0000000..7ad5cc5
--- /dev/null
@@ -0,0 +1,542 @@
+commit 45a9e4a7b1badbea15d74bd8b3990303a424dfa6
+Author: Ismaël Bouya <ismael.bouya@normalesup.org>
+Date:   Tue Feb 12 18:47:53 2019 +0100
+
+    Add LDAP authentication
+
+diff --git a/config/default.yaml b/config/default.yaml
+index e16b8c35..eac0dd3f 100644
+--- a/config/default.yaml
++++ b/config/default.yaml
+@@ -33,6 +33,9 @@ redis:
+   auth: null
+   db: 0
++ldap:
++  enable: false
++
+ smtp:
+   hostname: null
+   port: 465
+diff --git a/config/production.yaml.example b/config/production.yaml.example
+index 661eac0d..bb5ac251 100644
+--- a/config/production.yaml.example
++++ b/config/production.yaml.example
+@@ -33,6 +33,17 @@ redis:
+   auth: null
+   db: 0
++ldap:
++  enable: true
++  # Disallow non-ldap users (it also disables root!)
++  ldap_only: true
++  url: ldap://localhost:389/dc=example,dc=com
++  bind_dn: cn=admin,dc=example,dc=com
++  bind_password: adminPass
++  base: dc=example,dc=com
++  mail_entry: "mail"
++  user_filter: "(|(email=%username%)(uid=%username%))"
++
+ # SMTP server to send emails
+ smtp:
+   hostname: null
+diff --git a/package.json b/package.json
+index 0cf39c7e..fd1ce3ea 100644
+--- a/package.json
++++ b/package.json
+@@ -125,6 +125,7 @@
+     "js-yaml": "^3.5.4",
+     "jsonld": "^1.0.1",
+     "jsonld-signatures": "https://github.com/Chocobozzz/jsonld-signatures#rsa2017",
++    "ldapjs": "^1.0.2",
+     "lodash": "^4.17.10",
+     "magnet-uri": "^5.1.4",
+     "memoizee": "^0.4.14",
+diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
+index 6f3ebb9a..fb21df37 100644
+--- a/server/initializers/constants.ts
++++ b/server/initializers/constants.ts
+@@ -16,7 +16,7 @@ let config: IConfig = require('config')
+ // ---------------------------------------------------------------------------
+-const LAST_MIGRATION_VERSION = 325
++const LAST_MIGRATION_VERSION = 326
+ // ---------------------------------------------------------------------------
+@@ -177,6 +177,16 @@ const CONFIG = {
+     AUTH: config.has('redis.auth') ? config.get<string>('redis.auth') : null,
+     DB: config.has('redis.db') ? config.get<number>('redis.db') : null
+   },
++  LDAP: {
++    ENABLE: config.has('ldap.enable') ? config.get<boolean>('ldap.enable') : false,
++    LDAP_ONLY: config.has('ldap.ldap_only') ? config.get<boolean>('ldap.ldap_only') : false,
++    URL: config.has('ldap.url') ? config.get<string>('ldap.url') : null,
++    BIND_DN: config.has('ldap.bind_dn') ? config.get<string>('ldap.bind_dn') : null,
++    BIND_PASSWORD: config.has('ldap.bind_password') ? config.get<string>('ldap.bind_password') : null,
++    BASE: config.has('ldap.base') ? config.get<string>('ldap.base') : null,
++    MAIL_ENTRY: config.has('ldap.mail_entry') ? config.get<string>('ldap.mail_entry') : 'mail',
++    USER_FILTER: config.has('ldap.user_filter') ? config.get<string>('ldap.user_filter') : '(|(email=%username%)(uid=%username%))'
++  },
+   SMTP: {
+     HOSTNAME: config.get<string>('smtp.hostname'),
+     PORT: config.get<number>('smtp.port'),
+diff --git a/server/initializers/migrations/0326-user-ldap-dn.ts b/server/initializers/migrations/0326-user-ldap-dn.ts
+new file mode 100644
+index 00000000..a9d68124
+--- /dev/null
++++ b/server/initializers/migrations/0326-user-ldap-dn.ts
+@@ -0,0 +1,26 @@
++import * as Sequelize from 'sequelize'
++
++async function up (utils: {
++  transaction: Sequelize.Transaction,
++  queryInterface: Sequelize.QueryInterface,
++  sequelize: Sequelize.Sequelize
++}): Promise<void> {
++
++  {
++    const data = {
++      type: Sequelize.STRING,
++      allowNull: true,
++      defaultValue: null
++    }
++    await utils.queryInterface.addColumn('user', 'ldapDn', data)
++  }
++}
++
++function down (options) {
++  throw new Error('Not implemented.')
++}
++
++export {
++  up,
++  down
++}
+diff --git a/server/lib/oauth-model.ts b/server/lib/oauth-model.ts
+index 2cd2ae97..3f14b216 100644
+--- a/server/lib/oauth-model.ts
++++ b/server/lib/oauth-model.ts
+@@ -66,7 +66,13 @@ function getRefreshToken (refreshToken: string) {
+ async function getUser (usernameOrEmail: string, password: string) {
+   logger.debug('Getting User (username/email: ' + usernameOrEmail + ', password: ******).')
+-  const user = await UserModel.loadByUsernameOrEmail(usernameOrEmail)
++  let user
++  if (CONFIG.LDAP.ENABLE) {
++    user = await UserModel.findOrCreateLDAPUser(usernameOrEmail)
++  }
++  if (!user && (!CONFIG.LDAP.ENABLE || !CONFIG.LDAP.LDAP_ONLY)) {
++    user = await UserModel.loadByUsernameOrEmail(usernameOrEmail)
++  }
+   if (!user) return null
+   const passwordMatch = await user.isPasswordMatch(password)
+diff --git a/server/models/account/user.ts b/server/models/account/user.ts
+index 017a9665..a4d0145c 100644
+--- a/server/models/account/user.ts
++++ b/server/models/account/user.ts
+@@ -1,3 +1,4 @@
++import * as ldap from 'ldapjs'
+ import * as Sequelize from 'sequelize'
+ import {
+   AfterDestroy,
+@@ -42,8 +43,9 @@ import { VideoChannelModel } from '../video/video-channel'
+ import { AccountModel } from './account'
+ import { NSFWPolicyType } from '../../../shared/models/videos/nsfw-policy.type'
+ import { values } from 'lodash'
+-import { NSFW_POLICY_TYPES } from '../../initializers'
++import { CONFIG, NSFW_POLICY_TYPES } from '../../initializers'
+ import { clearCacheByUserId } from '../../lib/oauth-model'
++import { createUserAccountAndChannel } from '../../lib/user'
+ import { UserNotificationSettingModel } from './user-notification-setting'
+ import { VideoModel } from '../video/video'
+ import { ActorModel } from '../activitypub/actor'
+@@ -111,6 +113,11 @@ export class UserModel extends Model<UserModel> {
+   @Column(DataType.STRING(400))
+   email: string
++  @AllowNull(true)
++  @Default(null)
++  @Column
++  ldapDn: string
++
+   @AllowNull(true)
+   @Default(null)
+   @Is('UserEmailVerified', value => throwIfNotValid(value, isUserEmailVerifiedValid, 'email verified boolean'))
+@@ -354,6 +361,90 @@ export class UserModel extends Model<UserModel> {
+     return UserModel.findOne(query)
+   }
++  static loadByLdapDn (ldapDn: string) {
++    const query = {
++      where: {
++        ldapDn
++      }
++    }
++
++    return UserModel.findOne(query)
++  }
++
++  static findOrCreateLDAPUser (username: string) {
++    let userInfos
++
++    return Promise.resolve(UserModel.findLDAPUser(username))
++      .then((_userInfos) => {
++        userInfos = _userInfos
++        return UserModel.loadByLdapDn(userInfos['dn'])
++      })
++      .then((user) => {
++        if (user) {
++          return user
++        } else {
++          return UserModel.createLDAPUser(username, userInfos)
++        }
++      })
++      .catch(() => { return null })
++  }
++
++  static findLDAPUser (username: string) {
++    const client = ldap.createClient({
++      url: CONFIG.LDAP.URL
++    })
++    const filter = ldap.parseFilter(CONFIG.LDAP.USER_FILTER)
++    filter.forEach(function (element) {
++      if (element.value === '%username%') element.value = username
++    })
++    const opts = {
++      filter,
++      scope: 'sub',
++      attributes: [ CONFIG.LDAP.MAIL_ENTRY, 'dn' ]
++    }
++
++    return new Promise(function (resolve, reject) {
++      client.bind(CONFIG.LDAP.BIND_DN, CONFIG.LDAP.BIND_PASSWORD, function (err) {
++        if (err) reject()
++        let entries = []
++        client.search(CONFIG.LDAP.BASE, opts, function (err, search) {
++          if (err) reject()
++          search.on('searchEntry', function (entry) {
++            entries.push(entry.object)
++          })
++          search.on('end', function (result) {
++            if (entries.length === 1) {
++              resolve(entries[0])
++            } else {
++              reject()
++            }
++          })
++        })
++      })
++    })
++  }
++
++  static createLDAPUser (username: string, userInfos: {}) {
++    return Promise.resolve(userInfos)
++      .then((userInfos) => {
++        const userToCreate = new UserModel({
++          username: username,
++          password: 'SomeInvalidPassword',
++          email: userInfos[CONFIG.LDAP.MAIL_ENTRY],
++          ldapDn: userInfos['dn'],
++          nsfwPolicy: CONFIG.INSTANCE.DEFAULT_NSFW_POLICY,
++          autoPlayVideo: true,
++          role: UserRole.USER,
++          videoQuota: CONFIG.USER.VIDEO_QUOTA,
++          videoQuotaDaily: CONFIG.USER.VIDEO_QUOTA_DAILY,
++          emailVerified: true
++        })
++
++        return createUserAccountAndChannel(userToCreate)
++      })
++      .then(({ user }) => { return user })
++  }
++
+   static loadByUsernameAndPopulateChannels (username: string) {
+     const query = {
+       where: {
+@@ -516,8 +607,22 @@ export class UserModel extends Model<UserModel> {
+     return hasUserRight(this.role, right)
+   }
++  static checkLDAPUser (dn: string, password: string) {
++    const client = ldap.createClient({ url: CONFIG.LDAP.URL })
++
++    return new Promise(function (resolve, reject) {
++      client.bind(dn, password, function (err) {
++        resolve(!err)
++      })
++    })
++  }
++
+   isPasswordMatch (password: string) {
+-    return comparePassword(password, this.password)
++    if (this.ldapDn === null) {
++      return comparePassword(password, this.password)
++    } else {
++      return UserModel.checkLDAPUser(this.ldapDn, password)
++    }
+   }
+   toFormattedJSON (): User {
+diff --git a/yarn.lock b/yarn.lock
+index 1e759af1..1eb61a9f 100644
+--- a/yarn.lock
++++ b/yarn.lock
+@@ -674,6 +674,11 @@ asap@^2.0.0:
+   resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+   integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
++asn1@0.2.3:
++  version "0.2.3"
++  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
++  integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=
++
+ asn1@~0.2.3:
+   version "0.2.4"
+   resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+@@ -681,6 +686,11 @@ asn1@~0.2.3:
+   dependencies:
+     safer-buffer "~2.1.0"
++assert-plus@0.1.5:
++  version "0.1.5"
++  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160"
++  integrity sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=
++
+ assert-plus@1.0.0, assert-plus@^1.0.0:
+   version "1.0.0"
+   resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+@@ -779,6 +789,13 @@ backo2@1.0.2:
+   resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
+   integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
++backoff@^2.5.0:
++  version "2.5.0"
++  resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f"
++  integrity sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=
++  dependencies:
++    precond "0.2"
++
+ balanced-match@^1.0.0:
+   version "1.0.0"
+   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+@@ -1186,6 +1203,16 @@ bull@^3.4.2:
+     semver "^5.6.0"
+     uuid "^3.2.1"
++bunyan@^1.8.3:
++  version "1.8.12"
++  resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797"
++  integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=
++  optionalDependencies:
++    dtrace-provider "~0.8"
++    moment "^2.10.6"
++    mv "~2"
++    safe-json-stringify "~1"
++
+ busboy@^0.2.11:
+   version "0.2.14"
+   resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453"
+@@ -1966,7 +1993,7 @@ d@1:
+   dependencies:
+     es5-ext "^0.10.9"
+-dashdash@^1.12.0:
++dashdash@^1.12.0, dashdash@^1.14.0:
+   version "1.14.1"
+   resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+   integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
+@@ -2292,6 +2319,13 @@ double-ended-queue@^2.1.0-0:
+   resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c"
+   integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=
++dtrace-provider@~0.8:
++  version "0.8.7"
++  resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.7.tgz#dc939b4d3e0620cfe0c1cd803d0d2d7ed04ffd04"
++  integrity sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=
++  dependencies:
++    nan "^2.10.0"
++
+ duplexer3@^0.1.4:
+   version "0.1.4"
+   resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+@@ -2864,6 +2898,11 @@ extglob@^2.0.4:
+     snapdragon "^0.8.1"
+     to-regex "^3.0.1"
++extsprintf@1.2.0:
++  version "1.2.0"
++  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529"
++  integrity sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=
++
+ extsprintf@1.3.0:
+   version "1.3.0"
+   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+@@ -3350,6 +3389,17 @@ glob@7.1.2:
+     once "^1.3.0"
+     path-is-absolute "^1.0.0"
++glob@^6.0.1:
++  version "6.0.4"
++  resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
++  integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=
++  dependencies:
++    inflight "^1.0.4"
++    inherits "2"
++    minimatch "2 || 3"
++    once "^1.3.0"
++    path-is-absolute "^1.0.0"
++
+ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1, glob@~7.1.2:
+   version "7.1.3"
+   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
+@@ -4522,6 +4572,30 @@ lcid@^2.0.0:
+   dependencies:
+     invert-kv "^2.0.0"
++ldap-filter@0.2.2:
++  version "0.2.2"
++  resolved "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.2.2.tgz#f2b842be0b86da3352798505b31ebcae590d77d0"
++  integrity sha1-8rhCvguG2jNSeYUFsx68rlkNd9A=
++  dependencies:
++    assert-plus "0.1.5"
++
++ldapjs@^1.0.2:
++  version "1.0.2"
++  resolved "https://registry.yarnpkg.com/ldapjs/-/ldapjs-1.0.2.tgz#544ff7032b7b83c68f0701328d9297aa694340f9"
++  integrity sha1-VE/3Ayt7g8aPBwEyjZKXqmlDQPk=
++  dependencies:
++    asn1 "0.2.3"
++    assert-plus "^1.0.0"
++    backoff "^2.5.0"
++    bunyan "^1.8.3"
++    dashdash "^1.14.0"
++    ldap-filter "0.2.2"
++    once "^1.4.0"
++    vasync "^1.6.4"
++    verror "^1.8.1"
++  optionalDependencies:
++    dtrace-provider "~0.8"
++
+ leven@^2.1.0:
+   version "2.1.0"
+   resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
+@@ -5186,7 +5260,7 @@ minimalistic-assert@^1.0.1:
+   resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+   integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+-minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2:
++"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2:
+   version "3.0.4"
+   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+   integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+@@ -5299,6 +5373,11 @@ moment-timezone@^0.5.14, moment-timezone@^0.5.23:
+   resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66"
+   integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=
++moment@^2.10.6:
++  version "2.24.0"
++  resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
++  integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
++
+ morgan@^1.5.3:
+   version "1.9.1"
+   resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59"
+@@ -5394,6 +5473,15 @@ mute-stream@~0.0.4:
+   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+   integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
++mv@~2:
++  version "2.1.1"
++  resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2"
++  integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=
++  dependencies:
++    mkdirp "~0.5.1"
++    ncp "~2.0.0"
++    rimraf "~2.4.0"
++
+ nan@2.11.1, nan@^2.10.0, nan@^2.11.1, nan@^2.9.2:
+   version "2.11.1"
+   resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766"
+@@ -5431,6 +5519,11 @@ ncp@1.0.x:
+   resolved "https://registry.yarnpkg.com/ncp/-/ncp-1.0.1.tgz#d15367e5cb87432ba117d2bf80fdf45aecfb4246"
+   integrity sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=
++ncp@~2.0.0:
++  version "2.0.0"
++  resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
++  integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=
++
+ needle@^2.2.1:
+   version "2.2.4"
+   resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e"
+@@ -6520,6 +6613,11 @@ prebuild-install@^5.2.0:
+     tunnel-agent "^0.6.0"
+     which-pm-runs "^1.0.0"
++precond@0.2:
++  version "0.2.3"
++  resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac"
++  integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=
++
+ prelude-ls@~1.1.2:
+   version "1.1.2"
+   resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+@@ -7141,6 +7239,13 @@ rimraf@2, rimraf@2.x.x, rimraf@^2.2.8, rimraf@^2.4.2, rimraf@^2.5.2, rimraf@^2.5
+   dependencies:
+     glob "^7.0.5"
++rimraf@~2.4.0:
++  version "2.4.5"
++  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da"
++  integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=
++  dependencies:
++    glob "^6.0.1"
++
+ run-async@^0.1.0:
+   version "0.1.0"
+   resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
+@@ -7197,6 +7302,11 @@ safe-buffer@5.1.2, safe-buffer@^5.0.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, s
+   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
++safe-json-stringify@~1:
++  version "1.2.0"
++  resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd"
++  integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==
++
+ safe-regex@^1.1.0:
+   version "1.1.0"
+   resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+@@ -8857,7 +8967,14 @@ vary@~1.0.1:
+   resolved "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz#99e4981566a286118dfb2b817357df7993376d10"
+   integrity sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=
+-verror@1.10.0:
++vasync@^1.6.4:
++  version "1.6.4"
++  resolved "https://registry.yarnpkg.com/vasync/-/vasync-1.6.4.tgz#dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f"
++  integrity sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=
++  dependencies:
++    verror "1.6.0"
++
++verror@1.10.0, verror@^1.8.1:
+   version "1.10.0"
+   resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+   integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+@@ -8866,6 +8983,13 @@ verror@1.10.0:
+     core-util-is "1.0.2"
+     extsprintf "^1.2.0"
++verror@1.6.0:
++  version "1.6.0"
++  resolved "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5"
++  integrity sha1-fROyex+swuLakEBetepuW90lLqU=
++  dependencies:
++    extsprintf "1.2.0"
++
+ videostream@^2.5.1:
+   version "2.6.0"
+   resolved "https://registry.yarnpkg.com/videostream/-/videostream-2.6.0.tgz#7f0b2b84bc457c12cfe599aa2345f5cc06241ab6"
diff --git a/nixops/modules/websites/tools/peertube/ldap_yarn.patch b/nixops/modules/websites/tools/peertube/ldap_yarn.patch
new file mode 100644 (file)
index 0000000..538ce04
--- /dev/null
@@ -0,0 +1,278 @@
+commit 45a9e4a7b1badbea15d74bd8b3990303a424dfa6
+Author: Ismaël Bouya <ismael.bouya@normalesup.org>
+Date:   Tue Feb 12 18:47:53 2019 +0100
+
+    Add LDAP authentication
+
+diff --git a/package.json b/package.json
+index 0cf39c7e..fd1ce3ea 100644
+--- a/package.json
++++ b/package.json
+@@ -125,6 +125,7 @@
+     "js-yaml": "^3.5.4",
+     "jsonld": "^1.0.1",
+     "jsonld-signatures": "https://github.com/Chocobozzz/jsonld-signatures#rsa2017",
++    "ldapjs": "^1.0.2",
+     "lodash": "^4.17.10",
+     "magnet-uri": "^5.1.4",
+     "memoizee": "^0.4.14",
+diff --git a/yarn.lock b/yarn.lock
+index 1e759af1..1eb61a9f 100644
+--- a/yarn.lock
++++ b/yarn.lock
+@@ -674,6 +674,11 @@ asap@^2.0.0:
+   resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+   integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
++asn1@0.2.3:
++  version "0.2.3"
++  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
++  integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=
++
+ asn1@~0.2.3:
+   version "0.2.4"
+   resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+@@ -681,6 +686,11 @@ asn1@~0.2.3:
+   dependencies:
+     safer-buffer "~2.1.0"
++assert-plus@0.1.5:
++  version "0.1.5"
++  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160"
++  integrity sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=
++
+ assert-plus@1.0.0, assert-plus@^1.0.0:
+   version "1.0.0"
+   resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+@@ -779,6 +789,13 @@ backo2@1.0.2:
+   resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
+   integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
++backoff@^2.5.0:
++  version "2.5.0"
++  resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f"
++  integrity sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=
++  dependencies:
++    precond "0.2"
++
+ balanced-match@^1.0.0:
+   version "1.0.0"
+   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+@@ -1186,6 +1203,16 @@ bull@^3.4.2:
+     semver "^5.6.0"
+     uuid "^3.2.1"
++bunyan@^1.8.3:
++  version "1.8.12"
++  resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797"
++  integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=
++  optionalDependencies:
++    dtrace-provider "~0.8"
++    moment "^2.10.6"
++    mv "~2"
++    safe-json-stringify "~1"
++
+ busboy@^0.2.11:
+   version "0.2.14"
+   resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453"
+@@ -1966,7 +1993,7 @@ d@1:
+   dependencies:
+     es5-ext "^0.10.9"
+-dashdash@^1.12.0:
++dashdash@^1.12.0, dashdash@^1.14.0:
+   version "1.14.1"
+   resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+   integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
+@@ -2292,6 +2319,13 @@ double-ended-queue@^2.1.0-0:
+   resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c"
+   integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=
++dtrace-provider@~0.8:
++  version "0.8.7"
++  resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.7.tgz#dc939b4d3e0620cfe0c1cd803d0d2d7ed04ffd04"
++  integrity sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=
++  dependencies:
++    nan "^2.10.0"
++
+ duplexer3@^0.1.4:
+   version "0.1.4"
+   resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+@@ -2864,6 +2898,11 @@ extglob@^2.0.4:
+     snapdragon "^0.8.1"
+     to-regex "^3.0.1"
++extsprintf@1.2.0:
++  version "1.2.0"
++  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529"
++  integrity sha1-WtlGwi9bMrp/jNdCZxHG6KP8JSk=
++
+ extsprintf@1.3.0:
+   version "1.3.0"
+   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+@@ -3350,6 +3389,17 @@ glob@7.1.2:
+     once "^1.3.0"
+     path-is-absolute "^1.0.0"
++glob@^6.0.1:
++  version "6.0.4"
++  resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
++  integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=
++  dependencies:
++    inflight "^1.0.4"
++    inherits "2"
++    minimatch "2 || 3"
++    once "^1.3.0"
++    path-is-absolute "^1.0.0"
++
+ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1, glob@~7.1.2:
+   version "7.1.3"
+   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
+@@ -4522,6 +4572,30 @@ lcid@^2.0.0:
+   dependencies:
+     invert-kv "^2.0.0"
++ldap-filter@0.2.2:
++  version "0.2.2"
++  resolved "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.2.2.tgz#f2b842be0b86da3352798505b31ebcae590d77d0"
++  integrity sha1-8rhCvguG2jNSeYUFsx68rlkNd9A=
++  dependencies:
++    assert-plus "0.1.5"
++
++ldapjs@^1.0.2:
++  version "1.0.2"
++  resolved "https://registry.yarnpkg.com/ldapjs/-/ldapjs-1.0.2.tgz#544ff7032b7b83c68f0701328d9297aa694340f9"
++  integrity sha1-VE/3Ayt7g8aPBwEyjZKXqmlDQPk=
++  dependencies:
++    asn1 "0.2.3"
++    assert-plus "^1.0.0"
++    backoff "^2.5.0"
++    bunyan "^1.8.3"
++    dashdash "^1.14.0"
++    ldap-filter "0.2.2"
++    once "^1.4.0"
++    vasync "^1.6.4"
++    verror "^1.8.1"
++  optionalDependencies:
++    dtrace-provider "~0.8"
++
+ leven@^2.1.0:
+   version "2.1.0"
+   resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
+@@ -5186,7 +5260,7 @@ minimalistic-assert@^1.0.1:
+   resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+   integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+-minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2:
++"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2:
+   version "3.0.4"
+   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+   integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+@@ -5299,6 +5373,11 @@ moment-timezone@^0.5.14, moment-timezone@^0.5.23:
+   resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66"
+   integrity sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=
++moment@^2.10.6:
++  version "2.24.0"
++  resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
++  integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
++
+ morgan@^1.5.3:
+   version "1.9.1"
+   resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59"
+@@ -5394,6 +5473,15 @@ mute-stream@~0.0.4:
+   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+   integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
++mv@~2:
++  version "2.1.1"
++  resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2"
++  integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=
++  dependencies:
++    mkdirp "~0.5.1"
++    ncp "~2.0.0"
++    rimraf "~2.4.0"
++
+ nan@2.11.1, nan@^2.10.0, nan@^2.11.1, nan@^2.9.2:
+   version "2.11.1"
+   resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766"
+@@ -5431,6 +5519,11 @@ ncp@1.0.x:
+   resolved "https://registry.yarnpkg.com/ncp/-/ncp-1.0.1.tgz#d15367e5cb87432ba117d2bf80fdf45aecfb4246"
+   integrity sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=
++ncp@~2.0.0:
++  version "2.0.0"
++  resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
++  integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=
++
+ needle@^2.2.1:
+   version "2.2.4"
+   resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e"
+@@ -6520,6 +6613,11 @@ prebuild-install@^5.2.0:
+     tunnel-agent "^0.6.0"
+     which-pm-runs "^1.0.0"
++precond@0.2:
++  version "0.2.3"
++  resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac"
++  integrity sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=
++
+ prelude-ls@~1.1.2:
+   version "1.1.2"
+   resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+@@ -7141,6 +7239,13 @@ rimraf@2, rimraf@2.x.x, rimraf@^2.2.8, rimraf@^2.4.2, rimraf@^2.5.2, rimraf@^2.5
+   dependencies:
+     glob "^7.0.5"
++rimraf@~2.4.0:
++  version "2.4.5"
++  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da"
++  integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=
++  dependencies:
++    glob "^6.0.1"
++
+ run-async@^0.1.0:
+   version "0.1.0"
+   resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
+@@ -7197,6 +7302,11 @@ safe-buffer@5.1.2, safe-buffer@^5.0.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, s
+   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
++safe-json-stringify@~1:
++  version "1.2.0"
++  resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd"
++  integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==
++
+ safe-regex@^1.1.0:
+   version "1.1.0"
+   resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+@@ -8857,7 +8967,14 @@ vary@~1.0.1:
+   resolved "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz#99e4981566a286118dfb2b817357df7993376d10"
+   integrity sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=
+-verror@1.10.0:
++vasync@^1.6.4:
++  version "1.6.4"
++  resolved "https://registry.yarnpkg.com/vasync/-/vasync-1.6.4.tgz#dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f"
++  integrity sha1-3+k2Fq0OeugBszKp2Iv8XNyOHR8=
++  dependencies:
++    verror "1.6.0"
++
++verror@1.10.0, verror@^1.8.1:
+   version "1.10.0"
+   resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+   integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+@@ -8866,6 +8983,13 @@ verror@1.10.0:
+     core-util-is "1.0.2"
+     extsprintf "^1.2.0"
++verror@1.6.0:
++  version "1.6.0"
++  resolved "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5"
++  integrity sha1-fROyex+swuLakEBetepuW90lLqU=
++  dependencies:
++    extsprintf "1.2.0"
++
+ videostream@^2.5.1:
+   version "2.6.0"
+   resolved "https://registry.yarnpkg.com/videostream/-/videostream-2.6.0.tgz#7f0b2b84bc457c12cfe599aa2345f5cc06241ab6"
diff --git a/nixops/modules/websites/tools/peertube/peertube.json b/nixops/modules/websites/tools/peertube/peertube.json
new file mode 100644 (file)
index 0000000..fd2ef7d
--- /dev/null
@@ -0,0 +1,15 @@
+{
+  "tag": "v1.2.0",
+  "meta": {
+    "name": "peertube",
+    "url": "https://github.com/Chocobozzz/PeerTube",
+    "branch": "refs/tags/v1.2.0"
+  },
+  "github": {
+    "owner": "Chocobozzz",
+    "repo": "PeerTube",
+    "rev": "5cc304b909a70d8cbfe9cb5e0c46b4fe7b3d8ea2",
+    "sha256": "0fpzp9qh3ns3bg2w7f50b5schg30swyhyhk1zd311fy27mdmza6z",
+    "fetchSubmodules": true
+  }
+}
diff --git a/nixops/modules/websites/tools/peertube/peertube.nix b/nixops/modules/websites/tools/peertube/peertube.nix
new file mode 100644 (file)
index 0000000..75629bd
--- /dev/null
@@ -0,0 +1,190 @@
+{ env, fetchedGithub, fetchurl, fetchzip, stdenv, writeText, pkgs, cacert }:
+let
+  varDir = "/var/lib/peertube";
+  listenPort = env.listenPort;
+  # Doesn't seem to work
+  # patchedPackages = stdenv.mkDerivation (fetchedGithub ./peertube.json // rec {
+  #   patches = [ ./ldap.patch ];
+  #   installPhase = ''
+  #     mkdir $out
+  #     cp package.json yarn.lock $out/
+  #     '';
+  # });
+  # yarnModules = pkgs.yarn2nix.mkYarnModules {
+  #   name = "peertube-yarn-modules";
+  #   packageJSON = "${patchedPackages}/package.json";
+  #   yarnLock = "${patchedPackages}/yarn.lock";
+  #   yarnNix = ./yarn-packages.nix;
+  # };
+  patchedServer = stdenv.mkDerivation (fetchedGithub ./peertube.json // rec {
+    __noChroot = true;
+    patches = [
+      ./ldap.patch
+      ./sendmail.patch
+    ];
+    buildPhase = ''
+      export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt
+      export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
+      export HOME=$PWD
+      yarn install --pure-lockfile
+      npm run build:server
+      '';
+    installPhase = ''
+      mkdir $out
+      cp -a dist/server $out
+      '';
+    buildInputs = [ pkgs.python pkgs.git pkgs.yarn pkgs.nodejs ];
+  });
+  webappDir = stdenv.mkDerivation rec {
+    __noChroot = true;
+    version = "v1.2.0";
+    name = "peertube-${version}";
+    src = fetchzip {
+      url = "https://github.com/Chocobozzz/PeerTube/releases/download/${version}/${name}.zip";
+      sha256 = "18fp3fy1crw67gdpc29nr38b5zy2f68l70w47zwp7dzhd8bbbipp";
+    };
+    patches = [ ./ldap_yarn.patch ];
+    buildPhase = ''
+      export GIT_SSL_CAINFO=${cacert}/etc/ssl/certs/ca-bundle.crt
+      export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
+      export HOME=$PWD
+      yarn install --production --pure-lockfile
+      rm -rf dist/server && cp -a ${patchedServer}/server dist
+      '';
+    installPhase = ''
+      mkdir $out
+      cp -a * $out
+      '';
+    buildInputs = [ pkgs.yarn pkgs.git pkgs.python ];
+  };
+  config = writeText "production.yaml" ''
+        listen:
+          hostname: 'localhost'
+          port: ${env.listenPort}
+        webserver:
+          https: true
+          hostname: 'peertube.immae.eu'
+          port: 443
+        trust_proxy:
+          - 'loopback'
+        database:
+          hostname: '${env.postgresql.socket}'
+          port: 5432
+          suffix: '_prod'
+          username: '${env.postgresql.user}'
+          password: '${env.postgresql.password}'
+          pool:
+            max: 5
+        redis:
+          socket: '${env.redis.socket}'
+          auth: null
+          db: ${env.redis.db_index}
+        ldap:
+          enable: true
+          ldap_only: false
+          url: ldaps://${env.ldap.host}/${env.ldap.base}
+          bind_dn: ${env.ldap.dn}
+          bind_password: ${env.ldap.password}
+          base: ${env.ldap.base}
+          mail_entry: "mail"
+          user_filter: "${env.ldap.filter}"
+        smtp:
+          transport: sendmail
+          sendmail: '/run/wrappers/bin/sendmail'
+          hostname: null
+          port: 465 # If you use StartTLS: 587
+          username: null
+          password: null
+          tls: true # If you use StartTLS: false
+          disable_starttls: false
+          ca_file: null # Used for self signed certificates
+          from_address: 'peertube@immae.eu'
+        storage:
+          tmp: '${varDir}/storage/tmp/'
+          avatars: '${varDir}/storage/avatars/'
+          videos: '${varDir}/storage/videos/'
+          redundancy: '${varDir}/storage/videos/'
+          logs: '${varDir}/storage/logs/'
+          previews: '${varDir}/storage/previews/'
+          thumbnails: '${varDir}/storage/thumbnails/'
+          torrents: '${varDir}/storage/torrents/'
+          captions: '${varDir}/storage/captions/'
+          cache: '${varDir}/storage/cache/'
+        log:
+          level: 'info'
+        search:
+          remote_uri:
+            users: true
+            anonymous: false
+        trending:
+          videos:
+            interval_days: 7
+        redundancy:
+          videos:
+            check_interval: '1 hour' # How often you want to check new videos to cache
+            strategies: # Just uncomment strategies you want
+        # Following are saved in local-production.json
+        cache:
+          previews:
+            size: 500 # Max number of previews you want to cache
+          captions:
+            size: 500 # Max number of video captions/subtitles you want to cache
+        admin:
+          email: 'peertube@immae.eu'
+        contact_form:
+          enabled: true
+        signup:
+          enabled: false
+          limit: 10
+          requires_email_verification: false
+          filters:
+            cidr:
+              whitelist: []
+              blacklist: []
+        user:
+          video_quota: -1
+          video_quota_daily: -1
+        transcoding:
+          enabled: false
+          allow_additional_extensions: true
+          threads: 1
+          resolutions:
+            240p: false
+            360p: false
+            480p: true
+            720p: true
+            1080p: true
+          hls:
+            enabled: false
+        import:
+          videos:
+            http:
+              enabled: true
+            torrent:
+              enabled: false
+        instance:
+          name: 'Immae’s PeerTube'
+          short_description: 'PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular.'
+          description: '''
+          terms: '''
+          default_client_route: '/videos/trending'
+          default_nsfw_policy: 'blur'
+          customizations:
+            javascript: '''
+            css: '''
+          robots: |
+            User-agent: *
+            Disallow:
+          securitytxt:
+            "# If you would like to report a security issue\n# you may report it to:\nContact: https://github.com/Chocobozzz/PeerTube/blob/develop/SECURITY.md\nContact: mailto:"
+        services:
+          # You can provide a reporting endpoint for Content Security Policy violations
+          csp-logger:
+          twitter:
+            username: '@_immae'
+            whitelisted: false
+        '';
+in
+  {
+    inherit varDir webappDir config listenPort;
+  }
diff --git a/nixops/modules/websites/tools/peertube/sendmail.patch b/nixops/modules/websites/tools/peertube/sendmail.patch
new file mode 100644 (file)
index 0000000..b42bc49
--- /dev/null
@@ -0,0 +1,121 @@
+commit 677374d59c6aa2cb8145da3cd9c17fe05fd9b149
+Author: Ismaël Bouya <ismael.bouya@normalesup.org>
+Date:   Wed Feb 13 12:16:27 2019 +0100
+
+    Add sendmail
+
+diff --git a/config/production.yaml.example b/config/production.yaml.example
+index bb5ac251..4583f1f5 100644
+--- a/config/production.yaml.example
++++ b/config/production.yaml.example
+@@ -46,6 +46,8 @@ ldap:
+ # SMTP server to send emails
+ smtp:
++  transport: smtp
++  sendmail: null
+   hostname: null
+   port: 465 # If you use StartTLS: 587
+   username: null
+diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
+index fb21df37..c551b4f9 100644
+--- a/server/initializers/constants.ts
++++ b/server/initializers/constants.ts
+@@ -188,6 +188,8 @@ const CONFIG = {
+     USER_FILTER: config.has('ldap.user_filter') ? config.get<string>('ldap.user_filter') : '(|(email=%username%)(uid=%username%))'
+   },
+   SMTP: {
++    TRANSPORT: config.has('smtp.transport') ? config.get<string>('smtp.transport') : 'smtp',
++    SENDMAIL: config.has('smtp.sendmail') ? config.get<string>('smtp.sendmail') : null,
+     HOSTNAME: config.get<string>('smtp.hostname'),
+     PORT: config.get<number>('smtp.port'),
+     USERNAME: config.get<string>('smtp.username'),
+diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts
+index f384a254..ec6e249b 100644
+--- a/server/lib/emailer.ts
++++ b/server/lib/emailer.ts
+@@ -27,33 +27,41 @@ class Emailer {
+     this.initialized = true
+     if (Emailer.isEnabled()) {
+-      logger.info('Using %s:%s as SMTP server.', CONFIG.SMTP.HOSTNAME, CONFIG.SMTP.PORT)
+-
+-      let tls
+-      if (CONFIG.SMTP.CA_FILE) {
+-        tls = {
+-          ca: [ readFileSync(CONFIG.SMTP.CA_FILE) ]
++      if (CONFIG.SMTP.TRANSPORT === 'smtp') {
++        logger.info('Using %s:%s as SMTP server.', CONFIG.SMTP.HOSTNAME, CONFIG.SMTP.PORT)
++
++        let tls
++        if (CONFIG.SMTP.CA_FILE) {
++          tls = {
++            ca: [ readFileSync(CONFIG.SMTP.CA_FILE) ]
++          }
+         }
+-      }
+-      let auth
+-      if (CONFIG.SMTP.USERNAME && CONFIG.SMTP.PASSWORD) {
+-        auth = {
+-          user: CONFIG.SMTP.USERNAME,
+-          pass: CONFIG.SMTP.PASSWORD
++        let auth
++        if (CONFIG.SMTP.USERNAME && CONFIG.SMTP.PASSWORD) {
++          auth = {
++            user: CONFIG.SMTP.USERNAME,
++            pass: CONFIG.SMTP.PASSWORD
++          }
+         }
+-      }
+-      this.transporter = createTransport({
+-        host: CONFIG.SMTP.HOSTNAME,
+-        port: CONFIG.SMTP.PORT,
+-        secure: CONFIG.SMTP.TLS,
+-        debug: CONFIG.LOG.LEVEL === 'debug',
+-        logger: bunyanLogger as any,
+-        ignoreTLS: CONFIG.SMTP.DISABLE_STARTTLS,
+-        tls,
+-        auth
+-      })
++        this.transporter = createTransport({
++          host: CONFIG.SMTP.HOSTNAME,
++          port: CONFIG.SMTP.PORT,
++          secure: CONFIG.SMTP.TLS,
++          debug: CONFIG.LOG.LEVEL === 'debug',
++          logger: bunyanLogger as any,
++          ignoreTLS: CONFIG.SMTP.DISABLE_STARTTLS,
++          tls,
++          auth
++        })
++      } else { // sendmail
++        this.transporter = createTransport({
++          sendmail: true,
++          newline: 'unix',
++          path: CONFIG.SMTP.SENDMAIL,
++        })
++      }
+     } else {
+       if (!isTestInstance()) {
+         logger.error('Cannot use SMTP server because of lack of configuration. PeerTube will not be able to send mails!')
+@@ -62,11 +70,17 @@ class Emailer {
+   }
+   static isEnabled () {
+-    return !!CONFIG.SMTP.HOSTNAME && !!CONFIG.SMTP.PORT
++    if (CONFIG.SMTP.TRANSPORT === 'sendmail') {
++      return !!CONFIG.SMTP.SENDMAIL
++    } else if (CONFIG.SMTP.TRANSPORT === 'smtp') {
++      return !!CONFIG.SMTP.HOSTNAME && !!CONFIG.SMTP.PORT
++    } else {
++      return false
++    }
+   }
+   async checkConnectionOrDie () {
+-    if (!this.transporter) return
++    if (!this.transporter || CONFIG.SMTP.TRANSPORT !== 'smtp') return
+     logger.info('Testing SMTP server...')
diff --git a/nixops/modules/websites/tools/peertube/yarn-packages.nix b/nixops/modules/websites/tools/peertube/yarn-packages.nix
new file mode 100644 (file)
index 0000000..b1be2e1
--- /dev/null
@@ -0,0 +1,11516 @@
+{fetchurl, linkFarm}: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+
+    {
+      name = "listr-update-renderer-0.4.1.tgz";
+      path = fetchurl {
+        name = "listr-update-renderer-0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz";
+        sha1 = "d7c48092a2dcf90fd672b6c8b458649cb350c77e";
+      };
+    }
+
+    {
+      name = "stream-to-observable-0.3.0.tgz";
+      path = fetchurl {
+        name = "stream-to-observable-0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz";
+        sha1 = "ecdf48d532c58ea477acfcab80348424f8d0662f";
+      };
+    }
+
+    {
+      name = "async-lock-1.1.0.tgz";
+      path = fetchurl {
+        name = "async-lock-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/async-lock/-/async-lock-1.1.0.tgz";
+        sha1 = "002b1ebeebd382aff66b68bed70a74c7bdd06e3e";
+      };
+    }
+
+    {
+      name = "async-2.0.50.tgz";
+      path = fetchurl {
+        name = "async-2.0.50.tgz";
+        url  = "https://registry.yarnpkg.com/@types/async/-/async-2.0.50.tgz";
+        sha1 = "117540e026d64e1846093abbd5adc7e27fda7bcb";
+      };
+    }
+
+    {
+      name = "bcrypt-3.0.0.tgz";
+      path = fetchurl {
+        name = "bcrypt-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/bcrypt/-/bcrypt-3.0.0.tgz";
+        sha1 = "851489a9065a067cb7f3c9cbe4ce9bed8bba0876";
+      };
+    }
+
+    {
+      name = "bittorrent-protocol-2.2.2.tgz";
+      path = fetchurl {
+        name = "bittorrent-protocol-2.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/bittorrent-protocol/-/bittorrent-protocol-2.2.2.tgz";
+        sha1 = "169e9633e1bd18e6b830d11cf42e611b1972cb83";
+      };
+    }
+
+    {
+      name = "bluebird-3.5.21.tgz";
+      path = fetchurl {
+        name = "bluebird-3.5.21.tgz";
+        url  = "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.21.tgz";
+        sha1 = "567615589cc913e84a28ecf9edb031732bdf2634";
+      };
+    }
+
+    {
+      name = "body-parser-1.17.0.tgz";
+      path = fetchurl {
+        name = "body-parser-1.17.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz";
+        sha1 = "9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c";
+      };
+    }
+
+    {
+      name = "bull-3.4.0.tgz";
+      path = fetchurl {
+        name = "bull-3.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/bull/-/bull-3.4.0.tgz";
+        sha1 = "18ffefefa4dd1cfbdbdc8ca7df56c934459f6b9d";
+      };
+    }
+
+    {
+      name = "bytes-3.0.0.tgz";
+      path = fetchurl {
+        name = "bytes-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/bytes/-/bytes-3.0.0.tgz";
+        sha1 = "549eeacd0a8fecfaa459334583a4edcee738e6db";
+      };
+    }
+
+    {
+      name = "caseless-0.12.1.tgz";
+      path = fetchurl {
+        name = "caseless-0.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.1.tgz";
+        sha1 = "9794c69c8385d0192acc471a540d1f8e0d16218a";
+      };
+    }
+
+    {
+      name = "chai-json-schema-1.4.3.tgz";
+      path = fetchurl {
+        name = "chai-json-schema-1.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/chai-json-schema/-/chai-json-schema-1.4.3.tgz";
+        sha1 = "1dd1e88ae911dd6e6e1c3c2d0e0397328aab0bfb";
+      };
+    }
+
+    {
+      name = "chai-xml-0.3.1.tgz";
+      path = fetchurl {
+        name = "chai-xml-0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/chai-xml/-/chai-xml-0.3.1.tgz";
+        sha1 = "a9cc5812bd67e9c9221d1e9b4dfb0cca797fd40a";
+      };
+    }
+
+    {
+      name = "chai-4.1.7.tgz";
+      path = fetchurl {
+        name = "chai-4.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz";
+        sha1 = "1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a";
+      };
+    }
+
+    {
+      name = "config-0.0.34.tgz";
+      path = fetchurl {
+        name = "config-0.0.34.tgz";
+        url  = "https://registry.yarnpkg.com/@types/config/-/config-0.0.34.tgz";
+        sha1 = "123f91bdb5afdd702294b9de9ca04d9ea11137b0";
+      };
+    }
+
+    {
+      name = "connect-3.4.32.tgz";
+      path = fetchurl {
+        name = "connect-3.4.32.tgz";
+        url  = "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz";
+        sha1 = "aa0e9616b9435ccad02bc52b5b454ffc2c70ba28";
+      };
+    }
+
+    {
+      name = "continuation-local-storage-3.2.1.tgz";
+      path = fetchurl {
+        name = "continuation-local-storage-3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz";
+        sha1 = "a33e0df9dce9b424d1c98fc4fdebd8578dceec7e";
+      };
+    }
+
+    {
+      name = "cookiejar-2.1.0.tgz";
+      path = fetchurl {
+        name = "cookiejar-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.0.tgz";
+        sha1 = "4b7daf2c51696cfc70b942c11690528229d1a1ce";
+      };
+    }
+
+    {
+      name = "events-1.2.0.tgz";
+      path = fetchurl {
+        name = "events-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz";
+        sha1 = "81a6731ce4df43619e5c8c945383b3e62a89ea86";
+      };
+    }
+
+    {
+      name = "express-rate-limit-2.9.3.tgz";
+      path = fetchurl {
+        name = "express-rate-limit-2.9.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/express-rate-limit/-/express-rate-limit-2.9.3.tgz";
+        sha1 = "e83a548bf251ad12ca49055c22d3f2da4e16b62d";
+      };
+    }
+
+    {
+      name = "express-serve-static-core-4.16.0.tgz";
+      path = fetchurl {
+        name = "express-serve-static-core-4.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz";
+        sha1 = "fdfe777594ddc1fe8eb8eccce52e261b496e43e7";
+      };
+    }
+
+    {
+      name = "express-4.16.0.tgz";
+      path = fetchurl {
+        name = "express-4.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz";
+        sha1 = "6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19";
+      };
+    }
+
+    {
+      name = "fluent-ffmpeg-2.1.8.tgz";
+      path = fetchurl {
+        name = "fluent-ffmpeg-2.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/@types/fluent-ffmpeg/-/fluent-ffmpeg-2.1.8.tgz";
+        sha1 = "a9ffff2140d641ec898ebdddaa1e6e7e962d7943";
+      };
+    }
+
+    {
+      name = "form-data-2.2.1.tgz";
+      path = fetchurl {
+        name = "form-data-2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/form-data/-/form-data-2.2.1.tgz";
+        sha1 = "ee2b3b8eaa11c0938289953606b745b738c54b1e";
+      };
+    }
+
+    {
+      name = "fs-extra-5.0.4.tgz";
+      path = fetchurl {
+        name = "fs-extra-5.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.4.tgz";
+        sha1 = "b971134d162cc0497d221adde3dbb67502225599";
+      };
+    }
+
+    {
+      name = "geojson-1.0.6.tgz";
+      path = fetchurl {
+        name = "geojson-1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.6.tgz";
+        sha1 = "3e02972728c69248c2af08d60a48cbb8680fffdf";
+      };
+    }
+
+    {
+      name = "ioredis-4.0.4.tgz";
+      path = fetchurl {
+        name = "ioredis-4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-4.0.4.tgz";
+        sha1 = "c0a809064c05e4c2663803128d46042e73c92558";
+      };
+    }
+
+    {
+      name = "libxmljs-0.18.2.tgz";
+      path = fetchurl {
+        name = "libxmljs-0.18.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/libxmljs/-/libxmljs-0.18.2.tgz";
+        sha1 = "c424173a07477a7552173d7c779d5ffe77dd8efc";
+      };
+    }
+
+    {
+      name = "lodash-4.14.118.tgz";
+      path = fetchurl {
+        name = "lodash-4.14.118.tgz";
+        url  = "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.118.tgz";
+        sha1 = "247bab39bfcc6d910d4927c6e06cbc70ec376f27";
+      };
+    }
+
+    {
+      name = "magnet-uri-5.1.1.tgz";
+      path = fetchurl {
+        name = "magnet-uri-5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/magnet-uri/-/magnet-uri-5.1.1.tgz";
+        sha1 = "861aaf64c92a3137dd848fefc55cd352a8ea851a";
+      };
+    }
+
+    {
+      name = "maildev-0.0.1.tgz";
+      path = fetchurl {
+        name = "maildev-0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/maildev/-/maildev-0.0.1.tgz";
+        sha1 = "9fe4fa05610f6c6afc10224bcca6b67bc3c56fc0";
+      };
+    }
+
+    {
+      name = "memoizee-0.4.2.tgz";
+      path = fetchurl {
+        name = "memoizee-0.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/memoizee/-/memoizee-0.4.2.tgz";
+        sha1 = "a500158999a8144a9b46cf9a9fb49b15f1853573";
+      };
+    }
+
+    {
+      name = "mime-2.0.0.tgz";
+      path = fetchurl {
+        name = "mime-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz";
+        sha1 = "5a7306e367c539b9f6543499de8dd519fac37a8b";
+      };
+    }
+
+    {
+      name = "mkdirp-0.5.2.tgz";
+      path = fetchurl {
+        name = "mkdirp-0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz";
+        sha1 = "503aacfe5cc2703d5484326b1b27efa67a339c1f";
+      };
+    }
+
+    {
+      name = "mocha-5.2.5.tgz";
+      path = fetchurl {
+        name = "mocha-5.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.5.tgz";
+        sha1 = "8a4accfc403c124a0bafe8a9fc61a05ec1032073";
+      };
+    }
+
+    {
+      name = "morgan-1.7.35.tgz";
+      path = fetchurl {
+        name = "morgan-1.7.35.tgz";
+        url  = "https://registry.yarnpkg.com/@types/morgan/-/morgan-1.7.35.tgz";
+        sha1 = "6358f502931cc2583d7a94248c41518baa688494";
+      };
+    }
+
+    {
+      name = "multer-1.3.7.tgz";
+      path = fetchurl {
+        name = "multer-1.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/multer/-/multer-1.3.7.tgz";
+        sha1 = "9fe1de9f44f401ff2eaf0d4468cf16935a9c6866";
+      };
+    }
+
+    {
+      name = "node-10.12.12.tgz";
+      path = fetchurl {
+        name = "node-10.12.12.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-10.12.12.tgz";
+        sha1 = "e15a9d034d9210f00320ef718a50c4a799417c47";
+      };
+    }
+
+    {
+      name = "node-6.0.41.tgz";
+      path = fetchurl {
+        name = "node-6.0.41.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-6.0.41.tgz";
+        sha1 = "578cf53aaec65887bcaf16792f8722932e8ff8ea";
+      };
+    }
+
+    {
+      name = "nodemailer-4.6.5.tgz";
+      path = fetchurl {
+        name = "nodemailer-4.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-4.6.5.tgz";
+        sha1 = "8bb799202f8cfcc8200a1c1627f6a8a74fe71da6";
+      };
+    }
+
+    {
+      name = "oauth2-server-3.0.10.tgz";
+      path = fetchurl {
+        name = "oauth2-server-3.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/@types/oauth2-server/-/oauth2-server-3.0.10.tgz";
+        sha1 = "ea671a6ad3d02062aac5f7c1ba1fb9c468314db0";
+      };
+    }
+
+    {
+      name = "parse-torrent-file-4.0.1.tgz";
+      path = fetchurl {
+        name = "parse-torrent-file-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/parse-torrent-file/-/parse-torrent-file-4.0.1.tgz";
+        sha1 = "056a6c18f3fac0cd7c6c74540f00496a3225976b";
+      };
+    }
+
+    {
+      name = "parse-torrent-5.8.2.tgz";
+      path = fetchurl {
+        name = "parse-torrent-5.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/parse-torrent/-/parse-torrent-5.8.2.tgz";
+        sha1 = "53ab880e38ced2005a79948f0df0c8762539323e";
+      };
+    }
+
+    {
+      name = "pem-1.9.3.tgz";
+      path = fetchurl {
+        name = "pem-1.9.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/pem/-/pem-1.9.3.tgz";
+        sha1 = "0c864c8b79e43fef6367db895f60fd1edd10e86c";
+      };
+    }
+
+    {
+      name = "range-parser-1.2.2.tgz";
+      path = fetchurl {
+        name = "range-parser-1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz";
+        sha1 = "fa8e1ad1d474688a757140c91de6dace6f4abc8d";
+      };
+    }
+
+    {
+      name = "redis-2.8.8.tgz";
+      path = fetchurl {
+        name = "redis-2.8.8.tgz";
+        url  = "https://registry.yarnpkg.com/@types/redis/-/redis-2.8.8.tgz";
+        sha1 = "70855e79a6020080cca3cb5f1f5ee7f11b49a979";
+      };
+    }
+
+    {
+      name = "request-2.48.1.tgz";
+      path = fetchurl {
+        name = "request-2.48.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/request/-/request-2.48.1.tgz";
+        sha1 = "e402d691aa6670fbbff1957b15f1270230ab42fa";
+      };
+    }
+
+    {
+      name = "sequelize-4.27.24.tgz";
+      path = fetchurl {
+        name = "sequelize-4.27.24.tgz";
+        url  = "https://registry.yarnpkg.com/@types/sequelize/-/sequelize-4.27.24.tgz";
+        sha1 = "7d593c062c368f570c68b0217f5c1d4c892ead48";
+      };
+    }
+
+    {
+      name = "serve-static-1.13.2.tgz";
+      path = fetchurl {
+        name = "serve-static-1.13.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz";
+        sha1 = "f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48";
+      };
+    }
+
+    {
+      name = "sharp-0.21.0.tgz";
+      path = fetchurl {
+        name = "sharp-0.21.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/sharp/-/sharp-0.21.0.tgz";
+        sha1 = "e364b345c70e5924a5c626aaccaa236e0cfc2455";
+      };
+    }
+
+    {
+      name = "simple-peer-6.1.5.tgz";
+      path = fetchurl {
+        name = "simple-peer-6.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/simple-peer/-/simple-peer-6.1.5.tgz";
+        sha1 = "9353f84cefd052a9684b9a5662c983fc2bcfab41";
+      };
+    }
+
+    {
+      name = "socket.io-2.1.2.tgz";
+      path = fetchurl {
+        name = "socket.io-2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/socket.io/-/socket.io-2.1.2.tgz";
+        sha1 = "7165c2587cc3b86b44aa78e2a0060140551de211";
+      };
+    }
+
+    {
+      name = "superagent-3.8.4.tgz";
+      path = fetchurl {
+        name = "superagent-3.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/superagent/-/superagent-3.8.4.tgz";
+        sha1 = "24a5973c7d1a9c024b4bbda742a79267c33fb86a";
+      };
+    }
+
+    {
+      name = "supertest-2.0.7.tgz";
+      path = fetchurl {
+        name = "supertest-2.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/supertest/-/supertest-2.0.7.tgz";
+        sha1 = "46ff6508075cd4519736be060f0d6331a5c8ca7b";
+      };
+    }
+
+    {
+      name = "tough-cookie-2.3.4.tgz";
+      path = fetchurl {
+        name = "tough-cookie-2.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-2.3.4.tgz";
+        sha1 = "821878b81bfab971b93a265a561d54ea61f9059f";
+      };
+    }
+
+    {
+      name = "tv4-1.2.29.tgz";
+      path = fetchurl {
+        name = "tv4-1.2.29.tgz";
+        url  = "https://registry.yarnpkg.com/@types/tv4/-/tv4-1.2.29.tgz";
+        sha1 = "4c6d2222b03245dd2104f4fd67f54d1658985911";
+      };
+    }
+
+    {
+      name = "validator-9.4.3.tgz";
+      path = fetchurl {
+        name = "validator-9.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/validator/-/validator-9.4.3.tgz";
+        sha1 = "11321eae0546b20f13020131ff890c294df72ecb";
+      };
+    }
+
+    {
+      name = "webtorrent-0.98.4.tgz";
+      path = fetchurl {
+        name = "webtorrent-0.98.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/webtorrent/-/webtorrent-0.98.4.tgz";
+        sha1 = "cf8dbe22e3d5cf6915305f7f970b52bca01bf8b4";
+      };
+    }
+
+    {
+      name = "ws-6.0.1.tgz";
+      path = fetchurl {
+        name = "ws-6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/ws/-/ws-6.0.1.tgz";
+        sha1 = "ca7a3f3756aa12f62a0a62145ed14c6db25d5a28";
+      };
+    }
+
+    {
+      name = "JSONStream-1.3.5.tgz";
+      path = fetchurl {
+        name = "JSONStream-1.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz";
+        sha1 = "3208c1f08d3a4d99261ab64f92302bc15e111ca0";
+      };
+    }
+
+    {
+      name = "abbrev-1.1.1.tgz";
+      path = fetchurl {
+        name = "abbrev-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz";
+        sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8";
+      };
+    }
+
+    {
+      name = "accepts-1.3.3.tgz";
+      path = fetchurl {
+        name = "accepts-1.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz";
+        sha1 = "c3ca7434938648c3e0d9c1e328dd68b622c284ca";
+      };
+    }
+
+    {
+      name = "accepts-1.2.13.tgz";
+      path = fetchurl {
+        name = "accepts-1.2.13.tgz";
+        url  = "https://registry.yarnpkg.com/accepts/-/accepts-1.2.13.tgz";
+        sha1 = "e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea";
+      };
+    }
+
+    {
+      name = "accepts-1.3.5.tgz";
+      path = fetchurl {
+        name = "accepts-1.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz";
+        sha1 = "eb777df6011723a3b14e8a72c0805c8e86746bd2";
+      };
+    }
+
+    {
+      name = "acorn-jsx-3.0.1.tgz";
+      path = fetchurl {
+        name = "acorn-jsx-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz";
+        sha1 = "afdf9488fb1ecefc8348f6fb22f464e32a58b36b";
+      };
+    }
+
+    {
+      name = "acorn-3.3.0.tgz";
+      path = fetchurl {
+        name = "acorn-3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz";
+        sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a";
+      };
+    }
+
+    {
+      name = "acorn-5.7.3.tgz";
+      path = fetchurl {
+        name = "acorn-5.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz";
+        sha1 = "67aa231bf8812974b85235a96771eb6bd07ea279";
+      };
+    }
+
+    {
+      name = "addr-to-ip-port-1.5.1.tgz";
+      path = fetchurl {
+        name = "addr-to-ip-port-1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/addr-to-ip-port/-/addr-to-ip-port-1.5.1.tgz";
+        sha1 = "bfada13fd6aeeeac19f1e9f7d84b4bbab45e5208";
+      };
+    }
+
+    {
+      name = "addressparser-1.0.1.tgz";
+      path = fetchurl {
+        name = "addressparser-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/addressparser/-/addressparser-1.0.1.tgz";
+        sha1 = "47afbe1a2a9262191db6838e4fd1d39b40821746";
+      };
+    }
+
+    {
+      name = "after-0.8.2.tgz";
+      path = fetchurl {
+        name = "after-0.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz";
+        sha1 = "fedb394f9f0e02aa9768e702bda23b505fae7e1f";
+      };
+    }
+
+    {
+      name = "agent-base-4.2.1.tgz";
+      path = fetchurl {
+        name = "agent-base-4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz";
+        sha1 = "d89e5999f797875674c07d87f260fc41e83e8ca9";
+      };
+    }
+
+    {
+      name = "agentkeepalive-3.5.2.tgz";
+      path = fetchurl {
+        name = "agentkeepalive-3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz";
+        sha1 = "a113924dd3fa24a0bc3b78108c450c2abee00f67";
+      };
+    }
+
+    {
+      name = "ajv-keywords-1.5.1.tgz";
+      path = fetchurl {
+        name = "ajv-keywords-1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz";
+        sha1 = "314dd0a4b3368fad3dfcdc54ede6171b886daf3c";
+      };
+    }
+
+    {
+      name = "ajv-4.11.8.tgz";
+      path = fetchurl {
+        name = "ajv-4.11.8.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz";
+        sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
+      };
+    }
+
+    {
+      name = "ajv-6.6.1.tgz";
+      path = fetchurl {
+        name = "ajv-6.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.6.1.tgz";
+        sha1 = "6360f5ed0d80f232cc2b294c362d5dc2e538dd61";
+      };
+    }
+
+    {
+      name = "ansi-align-2.0.0.tgz";
+      path = fetchurl {
+        name = "ansi-align-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz";
+        sha1 = "c36aeccba563b89ceb556f3690f0b1d9e3547f7f";
+      };
+    }
+
+    {
+      name = "ansi-escapes-1.4.0.tgz";
+      path = fetchurl {
+        name = "ansi-escapes-1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz";
+        sha1 = "d3a8a83b319aa67793662b13e761c7911422306e";
+      };
+    }
+
+    {
+      name = "ansi-escapes-3.1.0.tgz";
+      path = fetchurl {
+        name = "ansi-escapes-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz";
+        sha1 = "f73207bb81207d75fd6c83f125af26eea378ca30";
+      };
+    }
+
+    {
+      name = "ansi-regex-2.1.1.tgz";
+      path = fetchurl {
+        name = "ansi-regex-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    }
+
+    {
+      name = "ansi-regex-3.0.0.tgz";
+      path = fetchurl {
+        name = "ansi-regex-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
+        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+      };
+    }
+
+    {
+      name = "ansi-styles-2.2.1.tgz";
+      path = fetchurl {
+        name = "ansi-styles-2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
+        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+      };
+    }
+
+    {
+      name = "ansi-styles-3.2.1.tgz";
+      path = fetchurl {
+        name = "ansi-styles-3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+      };
+    }
+
+    {
+      name = "ansicolors-0.3.2.tgz";
+      path = fetchurl {
+        name = "ansicolors-0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz";
+        sha1 = "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979";
+      };
+    }
+
+    {
+      name = "ansistyles-0.1.3.tgz";
+      path = fetchurl {
+        name = "ansistyles-0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz";
+        sha1 = "5de60415bda071bb37127854c864f41b23254539";
+      };
+    }
+
+    {
+      name = "any-observable-0.3.0.tgz";
+      path = fetchurl {
+        name = "any-observable-0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz";
+        sha1 = "af933475e5806a67d0d7df090dd5e8bef65d119b";
+      };
+    }
+
+    {
+      name = "anymatch-2.0.0.tgz";
+      path = fetchurl {
+        name = "anymatch-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
+        sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
+      };
+    }
+
+    {
+      name = "append-field-1.0.0.tgz";
+      path = fetchurl {
+        name = "append-field-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz";
+        sha1 = "1e3440e915f0b1203d23748e78edd7b9b5b43e56";
+      };
+    }
+
+    {
+      name = "application-config-path-0.1.0.tgz";
+      path = fetchurl {
+        name = "application-config-path-0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.0.tgz";
+        sha1 = "193c5f0a86541a4c66fba1e2dc38583362ea5e8f";
+      };
+    }
+
+    {
+      name = "application-config-1.0.1.tgz";
+      path = fetchurl {
+        name = "application-config-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/application-config/-/application-config-1.0.1.tgz";
+        sha1 = "5aa2e2a5ed6abd2e5d1d473d3596f574044fe9e7";
+      };
+    }
+
+    {
+      name = "aproba-1.2.0.tgz";
+      path = fetchurl {
+        name = "aproba-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+        sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
+      };
+    }
+
+    {
+      name = "aproba-2.0.0.tgz";
+      path = fetchurl {
+        name = "aproba-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz";
+        sha1 = "52520b8ae5b569215b354efc0caa3fe1e45a8adc";
+      };
+    }
+
+    {
+      name = "archy-1.0.0.tgz";
+      path = fetchurl {
+        name = "archy-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz";
+        sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
+      };
+    }
+
+    {
+      name = "are-we-there-yet-1.1.5.tgz";
+      path = fetchurl {
+        name = "are-we-there-yet-1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+        sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
+      };
+    }
+
+    {
+      name = "argparse-1.0.10.tgz";
+      path = fetchurl {
+        name = "argparse-1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+        sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+      };
+    }
+
+    {
+      name = "arr-diff-4.0.0.tgz";
+      path = fetchurl {
+        name = "arr-diff-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
+        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+      };
+    }
+
+    {
+      name = "arr-flatten-1.1.0.tgz";
+      path = fetchurl {
+        name = "arr-flatten-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
+        sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
+      };
+    }
+
+    {
+      name = "arr-union-3.1.0.tgz";
+      path = fetchurl {
+        name = "arr-union-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
+        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+      };
+    }
+
+    {
+      name = "array-flatten-1.1.1.tgz";
+      path = fetchurl {
+        name = "array-flatten-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
+        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+      };
+    }
+
+    {
+      name = "array-union-1.0.2.tgz";
+      path = fetchurl {
+        name = "array-union-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz";
+        sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
+      };
+    }
+
+    {
+      name = "array-uniq-1.0.3.tgz";
+      path = fetchurl {
+        name = "array-uniq-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz";
+        sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+      };
+    }
+
+    {
+      name = "array-unique-0.3.2.tgz";
+      path = fetchurl {
+        name = "array-unique-0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
+        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+      };
+    }
+
+    {
+      name = "arraybuffer.slice-0.0.6.tgz";
+      path = fetchurl {
+        name = "arraybuffer.slice-0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz";
+        sha1 = "f33b2159f0532a3f3107a272c0ccfbd1ad2979ca";
+      };
+    }
+
+    {
+      name = "arraybuffer.slice-0.0.7.tgz";
+      path = fetchurl {
+        name = "arraybuffer.slice-0.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz";
+        sha1 = "3bbc4275dd584cc1b10809b89d4e8b63a69e7675";
+      };
+    }
+
+    {
+      name = "arrify-1.0.1.tgz";
+      path = fetchurl {
+        name = "arrify-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz";
+        sha1 = "898508da2226f380df904728456849c1501a4b0d";
+      };
+    }
+
+    {
+      name = "asap-2.0.6.tgz";
+      path = fetchurl {
+        name = "asap-2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz";
+        sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
+      };
+    }
+
+    {
+      name = "asn1-0.2.3.tgz";
+      path = fetchurl {
+        name = "asn1-0.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz";
+        sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
+      };
+    }
+
+    {
+      name = "asn1-0.2.4.tgz";
+      path = fetchurl {
+        name = "asn1-0.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
+        sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
+      };
+    }
+
+    {
+      name = "assert-plus-0.1.5.tgz";
+      path = fetchurl {
+        name = "assert-plus-0.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz";
+        sha1 = "ee74009413002d84cec7219c6ac811812e723160";
+      };
+    }
+
+    {
+      name = "assert-plus-1.0.0.tgz";
+      path = fetchurl {
+        name = "assert-plus-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+      };
+    }
+
+    {
+      name = "assertion-error-1.0.0.tgz";
+      path = fetchurl {
+        name = "assertion-error-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.0.tgz";
+        sha1 = "c7f85438fdd466bc7ca16ab90c81513797a5d23b";
+      };
+    }
+
+    {
+      name = "assertion-error-1.1.0.tgz";
+      path = fetchurl {
+        name = "assertion-error-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz";
+        sha1 = "e60b6b0e8f301bd97e5375215bda406c85118c0b";
+      };
+    }
+
+    {
+      name = "assign-symbols-1.0.0.tgz";
+      path = fetchurl {
+        name = "assign-symbols-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
+        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+      };
+    }
+
+    {
+      name = "async-each-1.0.1.tgz";
+      path = fetchurl {
+        name = "async-each-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz";
+        sha1 = "19d386a1d9edc6e7c1c85d388aedbcc56d33602d";
+      };
+    }
+
+    {
+      name = "async-limiter-1.0.0.tgz";
+      path = fetchurl {
+        name = "async-limiter-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz";
+        sha1 = "78faed8c3d074ab81f22b4e985d79e8738f720f8";
+      };
+    }
+
+    {
+      name = "async-lock-1.1.3.tgz";
+      path = fetchurl {
+        name = "async-lock-1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/async-lock/-/async-lock-1.1.3.tgz";
+        sha1 = "e47f1cbb6bec765b73e27ed8961d58006457ec08";
+      };
+    }
+
+    {
+      name = "async-lru-1.1.2.tgz";
+      path = fetchurl {
+        name = "async-lru-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/async-lru/-/async-lru-1.1.2.tgz";
+        sha1 = "abe831f3a52123c87d44273615e203b1ef04692e";
+      };
+    }
+
+    {
+      name = "async-1.5.1.tgz";
+      path = fetchurl {
+        name = "async-1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-1.5.1.tgz";
+        sha1 = "b05714f4b11b357bf79adaffdd06da42d0766c10";
+      };
+    }
+
+    {
+      name = "async-2.6.1.tgz";
+      path = fetchurl {
+        name = "async-2.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz";
+        sha1 = "b245a23ca71930044ec53fa46aa00a3e87c6a610";
+      };
+    }
+
+    {
+      name = "async-0.9.2.tgz";
+      path = fetchurl {
+        name = "async-0.9.2.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz";
+        sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
+      };
+    }
+
+    {
+      name = "async-1.0.0.tgz";
+      path = fetchurl {
+        name = "async-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz";
+        sha1 = "f8fc04ca3a13784ade9e1641af98578cfbd647a9";
+      };
+    }
+
+    {
+      name = "asynckit-0.4.0.tgz";
+      path = fetchurl {
+        name = "asynckit-0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    }
+
+    {
+      name = "atob-2.1.2.tgz";
+      path = fetchurl {
+        name = "atob-2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
+        sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
+      };
+    }
+
+    {
+      name = "aws-sign2-0.7.0.tgz";
+      path = fetchurl {
+        name = "aws-sign2-0.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
+        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+      };
+    }
+
+    {
+      name = "aws4-1.8.0.tgz";
+      path = fetchurl {
+        name = "aws4-1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz";
+        sha1 = "f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f";
+      };
+    }
+
+    {
+      name = "babel-code-frame-6.26.0.tgz";
+      path = fetchurl {
+        name = "babel-code-frame-6.26.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
+        sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
+      };
+    }
+
+    {
+      name = "backo2-1.0.2.tgz";
+      path = fetchurl {
+        name = "backo2-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz";
+        sha1 = "31ab1ac8b129363463e35b3ebb69f4dfcfba7947";
+      };
+    }
+
+    {
+      name = "backoff-2.5.0.tgz";
+      path = fetchurl {
+        name = "backoff-2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz";
+        sha1 = "f616eda9d3e4b66b8ca7fca79f695722c5f8e26f";
+      };
+    }
+
+    {
+      name = "balanced-match-1.0.0.tgz";
+      path = fetchurl {
+        name = "balanced-match-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    }
+
+    {
+      name = "base64-arraybuffer-0.1.5.tgz";
+      path = fetchurl {
+        name = "base64-arraybuffer-0.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz";
+        sha1 = "73926771923b5a19747ad666aa5cd4bf9c6e9ce8";
+      };
+    }
+
+    {
+      name = "base64id-1.0.0.tgz";
+      path = fetchurl {
+        name = "base64id-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz";
+        sha1 = "47688cb99bb6804f0e06d3e763b1c32e57d8e6b6";
+      };
+    }
+
+    {
+      name = "base-0.11.2.tgz";
+      path = fetchurl {
+        name = "base-0.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
+        sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
+      };
+    }
+
+    {
+      name = "basic-auth-1.1.0.tgz";
+      path = fetchurl {
+        name = "basic-auth-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz";
+        sha1 = "45221ee429f7ee1e5035be3f51533f1cdfd29884";
+      };
+    }
+
+    {
+      name = "basic-auth-2.0.1.tgz";
+      path = fetchurl {
+        name = "basic-auth-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz";
+        sha1 = "b998279bf47ce38344b4f3cf916d4679bbf51e3a";
+      };
+    }
+
+    {
+      name = "bcrypt-pbkdf-1.0.2.tgz";
+      path = fetchurl {
+        name = "bcrypt-pbkdf-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+      };
+    }
+
+    {
+      name = "bcrypt-3.0.2.tgz";
+      path = fetchurl {
+        name = "bcrypt-3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/bcrypt/-/bcrypt-3.0.2.tgz";
+        sha1 = "3c575c49ccbfdf0875eb42aa1453f5654092a33d";
+      };
+    }
+
+    {
+      name = "bencode-2.0.0.tgz";
+      path = fetchurl {
+        name = "bencode-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/bencode/-/bencode-2.0.0.tgz";
+        sha1 = "e72e6b3691d824bd03ea7aa9d752cd1d49a50027";
+      };
+    }
+
+    {
+      name = "better-assert-1.0.2.tgz";
+      path = fetchurl {
+        name = "better-assert-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz";
+        sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
+      };
+    }
+
+    {
+      name = "bin-links-1.1.2.tgz";
+      path = fetchurl {
+        name = "bin-links-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/bin-links/-/bin-links-1.1.2.tgz";
+        sha1 = "fb74bd54bae6b7befc6c6221f25322ac830d9757";
+      };
+    }
+
+    {
+      name = "binary-extensions-1.12.0.tgz";
+      path = fetchurl {
+        name = "binary-extensions-1.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz";
+        sha1 = "c2d780f53d45bba8317a8902d4ceeaf3a6385b14";
+      };
+    }
+
+    {
+      name = "binary-search-1.3.4.tgz";
+      path = fetchurl {
+        name = "binary-search-1.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/binary-search/-/binary-search-1.3.4.tgz";
+        sha1 = "d15f44ff9226ef309d85247fa0dbfbf659955f56";
+      };
+    }
+
+    {
+      name = "bindings-1.3.1.tgz";
+      path = fetchurl {
+        name = "bindings-1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/bindings/-/bindings-1.3.1.tgz";
+        sha1 = "21fc7c6d67c18516ec5aaa2815b145ff77b26ea5";
+      };
+    }
+
+    {
+      name = "bindings-1.2.1.tgz";
+      path = fetchurl {
+        name = "bindings-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz";
+        sha1 = "14ad6113812d2d37d72e67b4cacb4bb726505f11";
+      };
+    }
+
+    {
+      name = "bitcore-lib-0.13.19.tgz";
+      path = fetchurl {
+        name = "bitcore-lib-0.13.19.tgz";
+        url  = "https://registry.yarnpkg.com/bitcore-lib/-/bitcore-lib-0.13.19.tgz";
+        sha1 = "48af1e9bda10067c1ab16263472b5add2000f3dc";
+      };
+    }
+
+    {
+      name = "8799cc327029c3d34fc725f05b2cf981363f6ebf";
+      path = fetchurl {
+        name = "8799cc327029c3d34fc725f05b2cf981363f6ebf";
+        url  = "https://codeload.github.com/CoMakery/bitcore-message/tar.gz/8799cc327029c3d34fc725f05b2cf981363f6ebf";
+        sha1 = "c5ac190157ac535fd6aeb3148ab5591ea874e281";
+      };
+    }
+
+    {
+      name = "bitfield-2.0.0.tgz";
+      path = fetchurl {
+        name = "bitfield-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/bitfield/-/bitfield-2.0.0.tgz";
+        sha1 = "fbe6767592fe5b4c87ecf1d04126294cc1bfa837";
+      };
+    }
+
+    {
+      name = "bittorrent-dht-9.0.0.tgz";
+      path = fetchurl {
+        name = "bittorrent-dht-9.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/bittorrent-dht/-/bittorrent-dht-9.0.0.tgz";
+        sha1 = "08d5ebb51ed91d7e3eea5c275554f4323fb523e5";
+      };
+    }
+
+    {
+      name = "bittorrent-peerid-1.3.0.tgz";
+      path = fetchurl {
+        name = "bittorrent-peerid-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/bittorrent-peerid/-/bittorrent-peerid-1.3.0.tgz";
+        sha1 = "a435d3b267c887c586c528b53359845905d7c158";
+      };
+    }
+
+    {
+      name = "bittorrent-protocol-3.0.1.tgz";
+      path = fetchurl {
+        name = "bittorrent-protocol-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/bittorrent-protocol/-/bittorrent-protocol-3.0.1.tgz";
+        sha1 = "d3948f4d2b09d538095f7e5f93f64ba5df6b5c2a";
+      };
+    }
+
+    {
+      name = "bittorrent-tracker-9.10.1.tgz";
+      path = fetchurl {
+        name = "bittorrent-tracker-9.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/bittorrent-tracker/-/bittorrent-tracker-9.10.1.tgz";
+        sha1 = "5de14aac012a287af394d3cc9eda1ec6cc956f11";
+      };
+    }
+
+    {
+      name = "bl-1.2.2.tgz";
+      path = fetchurl {
+        name = "bl-1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz";
+        sha1 = "a160911717103c07410cef63ef51b397c025af9c";
+      };
+    }
+
+    {
+      name = "blob-to-buffer-1.2.8.tgz";
+      path = fetchurl {
+        name = "blob-to-buffer-1.2.8.tgz";
+        url  = "https://registry.yarnpkg.com/blob-to-buffer/-/blob-to-buffer-1.2.8.tgz";
+        sha1 = "78eeeb332f1280ed0ca6fb2b60693a8c6d36903a";
+      };
+    }
+
+    {
+      name = "blob-0.0.4.tgz";
+      path = fetchurl {
+        name = "blob-0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz";
+        sha1 = "bcf13052ca54463f30f9fc7e95b9a47630a94921";
+      };
+    }
+
+    {
+      name = "blob-0.0.5.tgz";
+      path = fetchurl {
+        name = "blob-0.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz";
+        sha1 = "d680eeef25f8cd91ad533f5b01eed48e64caf683";
+      };
+    }
+
+    {
+      name = "block-stream2-1.1.0.tgz";
+      path = fetchurl {
+        name = "block-stream2-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/block-stream2/-/block-stream2-1.1.0.tgz";
+        sha1 = "c738e3a91ba977ebb5e1fef431e13ca11d8639e2";
+      };
+    }
+
+    {
+      name = "block-stream-0.0.9.tgz";
+      path = fetchurl {
+        name = "block-stream-0.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz";
+        sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a";
+      };
+    }
+
+    {
+      name = "bluebird-3.5.0.tgz";
+      path = fetchurl {
+        name = "bluebird-3.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz";
+        sha1 = "791420d7f551eea2897453a8a77653f96606d67c";
+      };
+    }
+
+    {
+      name = "bluebird-2.11.0.tgz";
+      path = fetchurl {
+        name = "bluebird-2.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz";
+        sha1 = "534b9033c022c9579c56ba3b3e5a5caafbb650e1";
+      };
+    }
+
+    {
+      name = "bluebird-3.5.3.tgz";
+      path = fetchurl {
+        name = "bluebird-3.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz";
+        sha1 = "7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7";
+      };
+    }
+
+    {
+      name = "bn.js-2.0.4.tgz";
+      path = fetchurl {
+        name = "bn.js-2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-2.0.4.tgz";
+        sha1 = "220a7cd677f7f1bfa93627ff4193776fe7819480";
+      };
+    }
+
+    {
+      name = "bn.js-2.2.0.tgz";
+      path = fetchurl {
+        name = "bn.js-2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-2.2.0.tgz";
+        sha1 = "12162bc2ae71fc40a5626c33438f3a875cd37625";
+      };
+    }
+
+    {
+      name = "bn.js-4.11.8.tgz";
+      path = fetchurl {
+        name = "bn.js-4.11.8.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz";
+        sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f";
+      };
+    }
+
+    {
+      name = "body-parser-1.18.3.tgz";
+      path = fetchurl {
+        name = "body-parser-1.18.3.tgz";
+        url  = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz";
+        sha1 = "5b292198ffdd553b3a0f20ded0592b956955c8b4";
+      };
+    }
+
+    {
+      name = "boxen-1.3.0.tgz";
+      path = fetchurl {
+        name = "boxen-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz";
+        sha1 = "55c6c39a8ba58d9c61ad22cd877532deb665a20b";
+      };
+    }
+
+    {
+      name = "brace-expansion-1.1.11.tgz";
+      path = fetchurl {
+        name = "brace-expansion-1.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+      };
+    }
+
+    {
+      name = "braces-2.3.2.tgz";
+      path = fetchurl {
+        name = "braces-2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
+        sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
+      };
+    }
+
+    {
+      name = "brorand-1.1.0.tgz";
+      path = fetchurl {
+        name = "brorand-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
+        sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+      };
+    }
+
+    {
+      name = "browser-stdout-1.3.1.tgz";
+      path = fetchurl {
+        name = "browser-stdout-1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz";
+        sha1 = "baa559ee14ced73452229bad7326467c61fabd60";
+      };
+    }
+
+    {
+      name = "browserify-package-json-1.0.1.tgz";
+      path = fetchurl {
+        name = "browserify-package-json-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-package-json/-/browserify-package-json-1.0.1.tgz";
+        sha1 = "98dde8aa5c561fd6d3fe49bbaa102b74b396fdea";
+      };
+    }
+
+    {
+      name = "bs58-2.0.0.tgz";
+      path = fetchurl {
+        name = "bs58-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/bs58/-/bs58-2.0.0.tgz";
+        sha1 = "72b713bed223a0ac518bbda0e3ce3f4817f39eb5";
+      };
+    }
+
+    {
+      name = "buffer-alloc-unsafe-1.1.0.tgz";
+      path = fetchurl {
+        name = "buffer-alloc-unsafe-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz";
+        sha1 = "bd7dc26ae2972d0eda253be061dba992349c19f0";
+      };
+    }
+
+    {
+      name = "buffer-alloc-1.2.0.tgz";
+      path = fetchurl {
+        name = "buffer-alloc-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz";
+        sha1 = "890dd90d923a873e08e10e5fd51a57e5b7cce0ec";
+      };
+    }
+
+    {
+      name = "buffer-compare-1.0.0.tgz";
+      path = fetchurl {
+        name = "buffer-compare-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-compare/-/buffer-compare-1.0.0.tgz";
+        sha1 = "acaa7a966e98eee9fae14b31c39a5f158fb3c4a2";
+      };
+    }
+
+    {
+      name = "buffer-equal-constant-time-1.0.1.tgz";
+      path = fetchurl {
+        name = "buffer-equal-constant-time-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz";
+        sha1 = "f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819";
+      };
+    }
+
+    {
+      name = "buffer-equals-1.0.4.tgz";
+      path = fetchurl {
+        name = "buffer-equals-1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-equals/-/buffer-equals-1.0.4.tgz";
+        sha1 = "0353b54fd07fd9564170671ae6f66b9cf10d27f5";
+      };
+    }
+
+    {
+      name = "buffer-fill-1.0.0.tgz";
+      path = fetchurl {
+        name = "buffer-fill-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz";
+        sha1 = "f8f78b76789888ef39f205cd637f68e702122b2c";
+      };
+    }
+
+    {
+      name = "buffer-from-1.1.1.tgz";
+      path = fetchurl {
+        name = "buffer-from-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
+        sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+      };
+    }
+
+    {
+      name = "buffer-writer-2.0.0.tgz";
+      path = fetchurl {
+        name = "buffer-writer-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz";
+        sha1 = "ce7eb81a38f7829db09c873f2fbb792c0c98ec04";
+      };
+    }
+
+    {
+      name = "bufferutil-4.0.0.tgz";
+      path = fetchurl {
+        name = "bufferutil-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.0.tgz";
+        sha1 = "a5078160e443751a4e83b6f4d6d7e26c058326a0";
+      };
+    }
+
+    {
+      name = "builtin-modules-1.1.1.tgz";
+      path = fetchurl {
+        name = "builtin-modules-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
+        sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
+      };
+    }
+
+    {
+      name = "builtins-1.0.3.tgz";
+      path = fetchurl {
+        name = "builtins-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz";
+        sha1 = "cb94faeb61c8696451db36534e1422f94f0aee88";
+      };
+    }
+
+    {
+      name = "bull-3.5.2.tgz";
+      path = fetchurl {
+        name = "bull-3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/bull/-/bull-3.5.2.tgz";
+        sha1 = "9c85f205b17686efab2ee28aaa4388887360de32";
+      };
+    }
+
+    {
+      name = "bunyan-1.8.12.tgz";
+      path = fetchurl {
+        name = "bunyan-1.8.12.tgz";
+        url  = "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz";
+        sha1 = "f150f0f6748abdd72aeae84f04403be2ef113797";
+      };
+    }
+
+    {
+      name = "busboy-0.2.14.tgz";
+      path = fetchurl {
+        name = "busboy-0.2.14.tgz";
+        url  = "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz";
+        sha1 = "6c2a622efcf47c57bbbe1e2a9c37ad36c7925453";
+      };
+    }
+
+    {
+      name = "byline-5.0.0.tgz";
+      path = fetchurl {
+        name = "byline-5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz";
+        sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1";
+      };
+    }
+
+    {
+      name = "byte-size-4.0.4.tgz";
+      path = fetchurl {
+        name = "byte-size-4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/byte-size/-/byte-size-4.0.4.tgz";
+        sha1 = "29d381709f41aae0d89c631f1c81aec88cd40b23";
+      };
+    }
+
+    {
+      name = "cacache-10.0.4.tgz";
+      path = fetchurl {
+        name = "cacache-10.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz";
+        sha1 = "6452367999eff9d4188aefd9a14e9d7c6a263460";
+      };
+    }
+
+    {
+      name = "cacache-11.3.1.tgz";
+      path = fetchurl {
+        name = "cacache-11.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/cacache/-/cacache-11.3.1.tgz";
+        sha1 = "d09d25f6c4aca7a6d305d141ae332613aa1d515f";
+      };
+    }
+
+    {
+      name = "cache-base-1.0.1.tgz";
+      path = fetchurl {
+        name = "cache-base-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
+        sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+      };
+    }
+
+    {
+      name = "call-limit-1.1.0.tgz";
+      path = fetchurl {
+        name = "call-limit-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/call-limit/-/call-limit-1.1.0.tgz";
+        sha1 = "6fd61b03f3da42a2cd0ec2b60f02bd0e71991fea";
+      };
+    }
+
+    {
+      name = "call-me-maybe-1.0.1.tgz";
+      path = fetchurl {
+        name = "call-me-maybe-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
+        sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b";
+      };
+    }
+
+    {
+      name = "caller-callsite-2.0.0.tgz";
+      path = fetchurl {
+        name = "caller-callsite-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz";
+        sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
+      };
+    }
+
+    {
+      name = "caller-path-0.1.0.tgz";
+      path = fetchurl {
+        name = "caller-path-0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz";
+        sha1 = "94085ef63581ecd3daa92444a8fe94e82577751f";
+      };
+    }
+
+    {
+      name = "caller-path-2.0.0.tgz";
+      path = fetchurl {
+        name = "caller-path-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz";
+        sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
+      };
+    }
+
+    {
+      name = "callsite-1.0.0.tgz";
+      path = fetchurl {
+        name = "callsite-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz";
+        sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20";
+      };
+    }
+
+    {
+      name = "callsites-0.2.0.tgz";
+      path = fetchurl {
+        name = "callsites-0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz";
+        sha1 = "afab96262910a7f33c19a5775825c69f34e350ca";
+      };
+    }
+
+    {
+      name = "callsites-2.0.0.tgz";
+      path = fetchurl {
+        name = "callsites-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz";
+        sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
+      };
+    }
+
+    {
+      name = "camelcase-4.1.0.tgz";
+      path = fetchurl {
+        name = "camelcase-4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz";
+        sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
+      };
+    }
+
+    {
+      name = "camelcase-5.0.0.tgz";
+      path = fetchurl {
+        name = "camelcase-5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz";
+        sha1 = "03295527d58bd3cd4aa75363f35b2e8d97be2f42";
+      };
+    }
+
+    {
+      name = "camelize-1.0.0.tgz";
+      path = fetchurl {
+        name = "camelize-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz";
+        sha1 = "164a5483e630fa4321e5af07020e531831b2609b";
+      };
+    }
+
+    {
+      name = "capture-stack-trace-1.0.1.tgz";
+      path = fetchurl {
+        name = "capture-stack-trace-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz";
+        sha1 = "a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d";
+      };
+    }
+
+    {
+      name = "caseless-0.12.0.tgz";
+      path = fetchurl {
+        name = "caseless-0.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
+        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+      };
+    }
+
+    {
+      name = "chai-json-schema-1.5.0.tgz";
+      path = fetchurl {
+        name = "chai-json-schema-1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/chai-json-schema/-/chai-json-schema-1.5.0.tgz";
+        sha1 = "6960719e40f71fd5b377c9282e5c9a46799474f6";
+      };
+    }
+
+    {
+      name = "chai-xml-0.3.2.tgz";
+      path = fetchurl {
+        name = "chai-xml-0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/chai-xml/-/chai-xml-0.3.2.tgz";
+        sha1 = "61d0776aa8fd936a2178769adcaabf3bfb52b8b1";
+      };
+    }
+
+    {
+      name = "chai-1.10.0.tgz";
+      path = fetchurl {
+        name = "chai-1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/chai/-/chai-1.10.0.tgz";
+        sha1 = "e4031cc87654461a75943e5a35ab46eaf39c1eb9";
+      };
+    }
+
+    {
+      name = "chai-4.2.0.tgz";
+      path = fetchurl {
+        name = "chai-4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz";
+        sha1 = "760aa72cf20e3795e84b12877ce0e83737aa29e5";
+      };
+    }
+
+    {
+      name = "chalk-1.1.3.tgz";
+      path = fetchurl {
+        name = "chalk-1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
+        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+      };
+    }
+
+    {
+      name = "chalk-2.4.1.tgz";
+      path = fetchurl {
+        name = "chalk-2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz";
+        sha1 = "18c49ab16a037b6eb0152cc83e3471338215b66e";
+      };
+    }
+
+    {
+      name = "charenc-0.0.2.tgz";
+      path = fetchurl {
+        name = "charenc-0.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz";
+        sha1 = "c0a1d2f3a7092e03774bfa83f14c0fc5790a8667";
+      };
+    }
+
+    {
+      name = "charset-detector-0.0.2.tgz";
+      path = fetchurl {
+        name = "charset-detector-0.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/charset-detector/-/charset-detector-0.0.2.tgz";
+        sha1 = "1cd5ddaf56e83259c6ef8e906ccf06f75fe9a1b2";
+      };
+    }
+
+    {
+      name = "check-error-1.0.2.tgz";
+      path = fetchurl {
+        name = "check-error-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz";
+        sha1 = "574d312edd88bb5dd8912e9286dd6c0aed4aac82";
+      };
+    }
+
+    {
+      name = "chokidar-2.0.4.tgz";
+      path = fetchurl {
+        name = "chokidar-2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz";
+        sha1 = "356ff4e2b0e8e43e322d18a372460bbcf3accd26";
+      };
+    }
+
+    {
+      name = "chownr-1.1.1.tgz";
+      path = fetchurl {
+        name = "chownr-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz";
+        sha1 = "54726b8b8fff4df053c42187e801fb4412df1494";
+      };
+    }
+
+    {
+      name = "chownr-1.0.1.tgz";
+      path = fetchurl {
+        name = "chownr-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz";
+        sha1 = "e2a75042a9551908bebd25b8523d5f9769d79181";
+      };
+    }
+
+    {
+      name = "chunk-store-stream-3.0.1.tgz";
+      path = fetchurl {
+        name = "chunk-store-stream-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/chunk-store-stream/-/chunk-store-stream-3.0.1.tgz";
+        sha1 = "8e0d739226dcb386f44447b82a005b597a1d41d9";
+      };
+    }
+
+    {
+      name = "ci-info-1.6.0.tgz";
+      path = fetchurl {
+        name = "ci-info-1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz";
+        sha1 = "2ca20dbb9ceb32d4524a683303313f0304b1e497";
+      };
+    }
+
+    {
+      name = "cidr-regex-2.0.10.tgz";
+      path = fetchurl {
+        name = "cidr-regex-2.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-2.0.10.tgz";
+        sha1 = "af13878bd4ad704de77d6dc800799358b3afa70d";
+      };
+    }
+
+    {
+      name = "circular-json-0.3.3.tgz";
+      path = fetchurl {
+        name = "circular-json-0.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz";
+        sha1 = "815c99ea84f6809529d2f45791bdf82711352d66";
+      };
+    }
+
+    {
+      name = "class-utils-0.3.6.tgz";
+      path = fetchurl {
+        name = "class-utils-0.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
+        sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+      };
+    }
+
+    {
+      name = "cli-boxes-1.0.0.tgz";
+      path = fetchurl {
+        name = "cli-boxes-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz";
+        sha1 = "4fa917c3e59c94a004cd61f8ee509da651687143";
+      };
+    }
+
+    {
+      name = "cli-columns-3.1.2.tgz";
+      path = fetchurl {
+        name = "cli-columns-3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz";
+        sha1 = "6732d972979efc2ae444a1f08e08fa139c96a18e";
+      };
+    }
+
+    {
+      name = "cli-cursor-1.0.2.tgz";
+      path = fetchurl {
+        name = "cli-cursor-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz";
+        sha1 = "64da3f7d56a54412e59794bd62dc35295e8f2987";
+      };
+    }
+
+    {
+      name = "cli-cursor-2.1.0.tgz";
+      path = fetchurl {
+        name = "cli-cursor-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
+        sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+      };
+    }
+
+    {
+      name = "cli-table3-0.5.1.tgz";
+      path = fetchurl {
+        name = "cli-table3-0.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz";
+        sha1 = "0252372d94dfc40dbd8df06005f48f31f656f202";
+      };
+    }
+
+    {
+      name = "cli-table-0.3.1.tgz";
+      path = fetchurl {
+        name = "cli-table-0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz";
+        sha1 = "f53b05266a8b1a0b934b3d0821e6e2dc5914ae23";
+      };
+    }
+
+    {
+      name = "cli-truncate-0.2.1.tgz";
+      path = fetchurl {
+        name = "cli-truncate-0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz";
+        sha1 = "9f15cfbb0705005369216c626ac7d05ab90dd574";
+      };
+    }
+
+    {
+      name = "cli-width-2.2.0.tgz";
+      path = fetchurl {
+        name = "cli-width-2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
+        sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+      };
+    }
+
+    {
+      name = "cliui-4.1.0.tgz";
+      path = fetchurl {
+        name = "cliui-4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
+        sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
+      };
+    }
+
+    {
+      name = "clone-1.0.4.tgz";
+      path = fetchurl {
+        name = "clone-1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz";
+        sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e";
+      };
+    }
+
+    {
+      name = "closest-to-2.0.0.tgz";
+      path = fetchurl {
+        name = "closest-to-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/closest-to/-/closest-to-2.0.0.tgz";
+        sha1 = "bb2a860edb7769b62d04821748ae50da24dbefaa";
+      };
+    }
+
+    {
+      name = "cls-bluebird-2.1.0.tgz";
+      path = fetchurl {
+        name = "cls-bluebird-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cls-bluebird/-/cls-bluebird-2.1.0.tgz";
+        sha1 = "37ef1e080a8ffb55c2f4164f536f1919e7968aee";
+      };
+    }
+
+    {
+      name = "cluster-key-slot-1.0.12.tgz";
+      path = fetchurl {
+        name = "cluster-key-slot-1.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.0.12.tgz";
+        sha1 = "d5deff2a520717bc98313979b687309b2d368e29";
+      };
+    }
+
+    {
+      name = "cmd-shim-2.0.2.tgz";
+      path = fetchurl {
+        name = "cmd-shim-2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-2.0.2.tgz";
+        sha1 = "6fcbda99483a8fd15d7d30a196ca69d688a2efdb";
+      };
+    }
+
+    {
+      name = "co-bluebird-1.1.0.tgz";
+      path = fetchurl {
+        name = "co-bluebird-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/co-bluebird/-/co-bluebird-1.1.0.tgz";
+        sha1 = "c8b9f3a9320a7ed30987dcca1a5c3cff59655c7c";
+      };
+    }
+
+    {
+      name = "co-use-1.1.0.tgz";
+      path = fetchurl {
+        name = "co-use-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/co-use/-/co-use-1.1.0.tgz";
+        sha1 = "c6bb3cdf10cb735ecaa9daeeda46d725c94a4e62";
+      };
+    }
+
+    {
+      name = "co-4.6.0.tgz";
+      path = fetchurl {
+        name = "co-4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz";
+        sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+      };
+    }
+
+    {
+      name = "code-point-at-1.1.0.tgz";
+      path = fetchurl {
+        name = "code-point-at-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
+        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+      };
+    }
+
+    {
+      name = "collection-visit-1.0.0.tgz";
+      path = fetchurl {
+        name = "collection-visit-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
+        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+      };
+    }
+
+    {
+      name = "color-convert-1.9.3.tgz";
+      path = fetchurl {
+        name = "color-convert-1.9.3.tgz";
+        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
+        sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
+      };
+    }
+
+    {
+      name = "color-name-1.1.3.tgz";
+      path = fetchurl {
+        name = "color-name-1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    }
+
+    {
+      name = "color-name-1.1.4.tgz";
+      path = fetchurl {
+        name = "color-name-1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
+        sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
+      };
+    }
+
+    {
+      name = "color-string-1.5.3.tgz";
+      path = fetchurl {
+        name = "color-string-1.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz";
+        sha1 = "c9bbc5f01b58b5492f3d6857459cb6590ce204cc";
+      };
+    }
+
+    {
+      name = "color-3.0.0.tgz";
+      path = fetchurl {
+        name = "color-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz";
+        sha1 = "d920b4328d534a3ac8295d68f7bd4ba6c427be9a";
+      };
+    }
+
+    {
+      name = "color-3.1.0.tgz";
+      path = fetchurl {
+        name = "color-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz";
+        sha1 = "d8e9fb096732875774c84bf922815df0308d0ffc";
+      };
+    }
+
+    {
+      name = "colornames-1.1.1.tgz";
+      path = fetchurl {
+        name = "colornames-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz";
+        sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96";
+      };
+    }
+
+    {
+      name = "colors-1.0.3.tgz";
+      path = fetchurl {
+        name = "colors-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz";
+        sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
+      };
+    }
+
+    {
+      name = "colors-1.3.2.tgz";
+      path = fetchurl {
+        name = "colors-1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/colors/-/colors-1.3.2.tgz";
+        sha1 = "2df8ff573dfbf255af562f8ce7181d6b971a359b";
+      };
+    }
+
+    {
+      name = "colorspace-1.1.1.tgz";
+      path = fetchurl {
+        name = "colorspace-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.1.tgz";
+        sha1 = "9ac2491e1bc6f8fb690e2176814f8d091636d972";
+      };
+    }
+
+    {
+      name = "columnify-1.5.4.tgz";
+      path = fetchurl {
+        name = "columnify-1.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz";
+        sha1 = "4737ddf1c7b69a8a7c340570782e947eec8e78bb";
+      };
+    }
+
+    {
+      name = "combined-stream-1.0.7.tgz";
+      path = fetchurl {
+        name = "combined-stream-1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz";
+        sha1 = "2d1d24317afb8abe95d6d2c0b07b57813539d828";
+      };
+    }
+
+    {
+      name = "commander-2.15.1.tgz";
+      path = fetchurl {
+        name = "commander-2.15.1.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz";
+        sha1 = "df46e867d0fc2aec66a34662b406a9ccafff5b0f";
+      };
+    }
+
+    {
+      name = "commander-2.9.0.tgz";
+      path = fetchurl {
+        name = "commander-2.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz";
+        sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+      };
+    }
+
+    {
+      name = "commander-2.19.0.tgz";
+      path = fetchurl {
+        name = "commander-2.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz";
+        sha1 = "f6198aa84e5b83c46054b94ddedbfed5ee9ff12a";
+      };
+    }
+
+    {
+      name = "compact2string-1.4.0.tgz";
+      path = fetchurl {
+        name = "compact2string-1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/compact2string/-/compact2string-1.4.0.tgz";
+        sha1 = "a99cd96ea000525684b269683ae2222d6eea7b49";
+      };
+    }
+
+    {
+      name = "component-bind-1.0.0.tgz";
+      path = fetchurl {
+        name = "component-bind-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz";
+        sha1 = "00c608ab7dcd93897c0009651b1d3a8e1e73bbd1";
+      };
+    }
+
+    {
+      name = "component-emitter-1.1.2.tgz";
+      path = fetchurl {
+        name = "component-emitter-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz";
+        sha1 = "296594f2753daa63996d2af08d15a95116c9aec3";
+      };
+    }
+
+    {
+      name = "component-emitter-1.2.1.tgz";
+      path = fetchurl {
+        name = "component-emitter-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz";
+        sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6";
+      };
+    }
+
+    {
+      name = "component-inherit-0.0.3.tgz";
+      path = fetchurl {
+        name = "component-inherit-0.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz";
+        sha1 = "645fc4adf58b72b649d5cae65135619db26ff143";
+      };
+    }
+
+    {
+      name = "concat-map-0.0.1.tgz";
+      path = fetchurl {
+        name = "concat-map-0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    }
+
+    {
+      name = "concat-stream-1.6.2.tgz";
+      path = fetchurl {
+        name = "concat-stream-1.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+      };
+    }
+
+    {
+      name = "concurrently-4.1.0.tgz";
+      path = fetchurl {
+        name = "concurrently-4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/concurrently/-/concurrently-4.1.0.tgz";
+        sha1 = "17fdf067da71210685d9ea554423ef239da30d33";
+      };
+    }
+
+    {
+      name = "config-chain-1.1.12.tgz";
+      path = fetchurl {
+        name = "config-chain-1.1.12.tgz";
+        url  = "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz";
+        sha1 = "0fde8d091200eb5e808caf25fe618c02f48e4efa";
+      };
+    }
+
+    {
+      name = "config-3.0.0.tgz";
+      path = fetchurl {
+        name = "config-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/config/-/config-3.0.0.tgz";
+        sha1 = "a71cdbb22d225df9eff20b95178d65a63c452367";
+      };
+    }
+
+    {
+      name = "configstore-3.1.2.tgz";
+      path = fetchurl {
+        name = "configstore-3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz";
+        sha1 = "c6f25defaeef26df12dd33414b001fe81a543f8f";
+      };
+    }
+
+    {
+      name = "console-control-strings-1.1.0.tgz";
+      path = fetchurl {
+        name = "console-control-strings-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
+        sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+      };
+    }
+
+    {
+      name = "content-disposition-0.5.1.tgz";
+      path = fetchurl {
+        name = "content-disposition-0.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz";
+        sha1 = "87476c6a67c8daa87e32e87616df883ba7fb071b";
+      };
+    }
+
+    {
+      name = "content-disposition-0.5.2.tgz";
+      path = fetchurl {
+        name = "content-disposition-0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz";
+        sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
+      };
+    }
+
+    {
+      name = "content-security-policy-builder-2.0.0.tgz";
+      path = fetchurl {
+        name = "content-security-policy-builder-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz";
+        sha1 = "8749a1d542fcbe82237281ea9f716ce68b394dd2";
+      };
+    }
+
+    {
+      name = "content-type-1.0.4.tgz";
+      path = fetchurl {
+        name = "content-type-1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
+        sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+      };
+    }
+
+    {
+      name = "cookie-parser-1.4.3.tgz";
+      path = fetchurl {
+        name = "cookie-parser-1.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.3.tgz";
+        sha1 = "0fe31fa19d000b95f4aadf1f53fdc2b8a203baa5";
+      };
+    }
+
+    {
+      name = "cookie-signature-1.0.6.tgz";
+      path = fetchurl {
+        name = "cookie-signature-1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
+        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+      };
+    }
+
+    {
+      name = "cookie-0.1.5.tgz";
+      path = fetchurl {
+        name = "cookie-0.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/cookie/-/cookie-0.1.5.tgz";
+        sha1 = "6ab9948a4b1ae21952cd2588530a4722d4044d7c";
+      };
+    }
+
+    {
+      name = "cookie-0.3.1.tgz";
+      path = fetchurl {
+        name = "cookie-0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz";
+        sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
+      };
+    }
+
+    {
+      name = "cookiejar-2.1.2.tgz";
+      path = fetchurl {
+        name = "cookiejar-2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz";
+        sha1 = "dd8a235530752f988f9a0844f3fc589e3111125c";
+      };
+    }
+
+    {
+      name = "copy-concurrently-1.0.5.tgz";
+      path = fetchurl {
+        name = "copy-concurrently-1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
+        sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
+      };
+    }
+
+    {
+      name = "copy-descriptor-0.1.1.tgz";
+      path = fetchurl {
+        name = "copy-descriptor-0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+      };
+    }
+
+    {
+      name = "core-js-2.5.7.tgz";
+      path = fetchurl {
+        name = "core-js-2.5.7.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz";
+        sha1 = "f972608ff0cead68b841a16a932d0b183791814e";
+      };
+    }
+
+    {
+      name = "core-util-is-1.0.2.tgz";
+      path = fetchurl {
+        name = "core-util-is-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    }
+
+    {
+      name = "cors-2.8.5.tgz";
+      path = fetchurl {
+        name = "cors-2.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz";
+        sha1 = "eac11da51592dd86b9f06f6e7ac293b3df875d29";
+      };
+    }
+
+    {
+      name = "cosmiconfig-5.0.6.tgz";
+      path = fetchurl {
+        name = "cosmiconfig-5.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz";
+        sha1 = "dca6cf680a0bd03589aff684700858c81abeeb39";
+      };
+    }
+
+    {
+      name = "cosmiconfig-5.0.7.tgz";
+      path = fetchurl {
+        name = "cosmiconfig-5.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz";
+        sha1 = "39826b292ee0d78eda137dfa3173bd1c21a43b04";
+      };
+    }
+
+    {
+      name = "create-error-class-3.0.2.tgz";
+      path = fetchurl {
+        name = "create-error-class-3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz";
+        sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
+      };
+    }
+
+    {
+      name = "create-torrent-3.33.0.tgz";
+      path = fetchurl {
+        name = "create-torrent-3.33.0.tgz";
+        url  = "https://registry.yarnpkg.com/create-torrent/-/create-torrent-3.33.0.tgz";
+        sha1 = "8a7a2aa2213a799c266c40e4c12f1468ede25105";
+      };
+    }
+
+    {
+      name = "cron-parser-2.7.3.tgz";
+      path = fetchurl {
+        name = "cron-parser-2.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/cron-parser/-/cron-parser-2.7.3.tgz";
+        sha1 = "12603f89f5375af353a9357be2543d3172eac651";
+      };
+    }
+
+    {
+      name = "cross-spawn-5.1.0.tgz";
+      path = fetchurl {
+        name = "cross-spawn-5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz";
+        sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449";
+      };
+    }
+
+    {
+      name = "cross-spawn-6.0.5.tgz";
+      path = fetchurl {
+        name = "cross-spawn-6.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
+        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
+      };
+    }
+
+    {
+      name = "crypt-0.0.2.tgz";
+      path = fetchurl {
+        name = "crypt-0.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz";
+        sha1 = "88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b";
+      };
+    }
+
+    {
+      name = "crypto-random-string-1.0.0.tgz";
+      path = fetchurl {
+        name = "crypto-random-string-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz";
+        sha1 = "a230f64f568310e1498009940790ec99545bca7e";
+      };
+    }
+
+    {
+      name = "cycle-1.0.3.tgz";
+      path = fetchurl {
+        name = "cycle-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz";
+        sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
+      };
+    }
+
+    {
+      name = "cyclist-0.2.2.tgz";
+      path = fetchurl {
+        name = "cyclist-0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz";
+        sha1 = "1b33792e11e914a2fd6d6ed6447464444e5fa640";
+      };
+    }
+
+    {
+      name = "d-1.0.0.tgz";
+      path = fetchurl {
+        name = "d-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz";
+        sha1 = "754bb5bfe55451da69a58b94d45f4c5b0462d58f";
+      };
+    }
+
+    {
+      name = "dashdash-1.14.1.tgz";
+      path = fetchurl {
+        name = "dashdash-1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
+        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+      };
+    }
+
+    {
+      name = "dasherize-2.0.0.tgz";
+      path = fetchurl {
+        name = "dasherize-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/dasherize/-/dasherize-2.0.0.tgz";
+        sha1 = "6d809c9cd0cf7bb8952d80fc84fa13d47ddb1308";
+      };
+    }
+
+    {
+      name = "date-fns-1.29.0.tgz";
+      path = fetchurl {
+        name = "date-fns-1.29.0.tgz";
+        url  = "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz";
+        sha1 = "12e609cdcb935127311d04d33334e2960a2a54e6";
+      };
+    }
+
+    {
+      name = "deasync-0.1.14.tgz";
+      path = fetchurl {
+        name = "deasync-0.1.14.tgz";
+        url  = "https://registry.yarnpkg.com/deasync/-/deasync-0.1.14.tgz";
+        sha1 = "232ea2252b443948cad033d792eb3b24b0a3d828";
+      };
+    }
+
+    {
+      name = "debug-2.2.0.tgz";
+      path = fetchurl {
+        name = "debug-2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz";
+        sha1 = "f87057e995b1a1f6ae6a4960664137bc56f039da";
+      };
+    }
+
+    {
+      name = "debug-2.3.3.tgz";
+      path = fetchurl {
+        name = "debug-2.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz";
+        sha1 = "40c453e67e6e13c901ddec317af8986cda9eff8c";
+      };
+    }
+
+    {
+      name = "debug-2.6.9.tgz";
+      path = fetchurl {
+        name = "debug-2.6.9.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+      };
+    }
+
+    {
+      name = "debug-3.1.0.tgz";
+      path = fetchurl {
+        name = "debug-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
+        sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
+      };
+    }
+
+    {
+      name = "debug-3.2.6.tgz";
+      path = fetchurl {
+        name = "debug-3.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
+        sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
+      };
+    }
+
+    {
+      name = "debug-4.1.0.tgz";
+      path = fetchurl {
+        name = "debug-4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz";
+        sha1 = "373687bffa678b38b1cd91f861b63850035ddc87";
+      };
+    }
+
+    {
+      name = "debug-4.1.1.tgz";
+      path = fetchurl {
+        name = "debug-4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz";
+        sha1 = "3b72260255109c6b589cee050f1d516139664791";
+      };
+    }
+
+    {
+      name = "debuglog-1.0.1.tgz";
+      path = fetchurl {
+        name = "debuglog-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz";
+        sha1 = "aa24ffb9ac3df9a2351837cfb2d279360cd78492";
+      };
+    }
+
+    {
+      name = "decamelize-1.2.0.tgz";
+      path = fetchurl {
+        name = "decamelize-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    }
+
+    {
+      name = "decode-uri-component-0.2.0.tgz";
+      path = fetchurl {
+        name = "decode-uri-component-0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+      };
+    }
+
+    {
+      name = "decompress-response-3.3.0.tgz";
+      path = fetchurl {
+        name = "decompress-response-3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz";
+        sha1 = "80a4dd323748384bfa248083622aedec982adff3";
+      };
+    }
+
+    {
+      name = "dedent-0.7.0.tgz";
+      path = fetchurl {
+        name = "dedent-0.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz";
+        sha1 = "2495ddbaf6eb874abb0e1be9df22d2e5a544326c";
+      };
+    }
+
+    {
+      name = "deep-eql-0.1.3.tgz";
+      path = fetchurl {
+        name = "deep-eql-0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz";
+        sha1 = "ef558acab8de25206cd713906d74e56930eb69f2";
+      };
+    }
+
+    {
+      name = "deep-eql-3.0.1.tgz";
+      path = fetchurl {
+        name = "deep-eql-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz";
+        sha1 = "dfc9404400ad1c8fe023e7da1df1c147c4b444df";
+      };
+    }
+
+    {
+      name = "deep-equal-0.2.2.tgz";
+      path = fetchurl {
+        name = "deep-equal-0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-0.2.2.tgz";
+        sha1 = "84b745896f34c684e98f2ce0e42abaf43bba017d";
+      };
+    }
+
+    {
+      name = "deep-extend-0.6.0.tgz";
+      path = fetchurl {
+        name = "deep-extend-0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
+        sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
+      };
+    }
+
+    {
+      name = "deep-is-0.1.3.tgz";
+      path = fetchurl {
+        name = "deep-is-0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+      };
+    }
+
+    {
+      name = "deep-object-diff-1.1.0.tgz";
+      path = fetchurl {
+        name = "deep-object-diff-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.0.tgz";
+        sha1 = "d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a";
+      };
+    }
+
+    {
+      name = "defaults-1.0.3.tgz";
+      path = fetchurl {
+        name = "defaults-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz";
+        sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d";
+      };
+    }
+
+    {
+      name = "define-properties-1.1.3.tgz";
+      path = fetchurl {
+        name = "define-properties-1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
+        sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
+      };
+    }
+
+    {
+      name = "define-property-0.2.5.tgz";
+      path = fetchurl {
+        name = "define-property-0.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
+        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+      };
+    }
+
+    {
+      name = "define-property-1.0.0.tgz";
+      path = fetchurl {
+        name = "define-property-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
+        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+      };
+    }
+
+    {
+      name = "define-property-2.0.2.tgz";
+      path = fetchurl {
+        name = "define-property-2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
+        sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
+      };
+    }
+
+    {
+      name = "defined-1.0.0.tgz";
+      path = fetchurl {
+        name = "defined-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz";
+        sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
+      };
+    }
+
+    {
+      name = "del-3.0.0.tgz";
+      path = fetchurl {
+        name = "del-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz";
+        sha1 = "53ecf699ffcbcb39637691ab13baf160819766e5";
+      };
+    }
+
+    {
+      name = "delayed-stream-1.0.0.tgz";
+      path = fetchurl {
+        name = "delayed-stream-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    }
+
+    {
+      name = "delegates-1.0.0.tgz";
+      path = fetchurl {
+        name = "delegates-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+      };
+    }
+
+    {
+      name = "denque-1.4.0.tgz";
+      path = fetchurl {
+        name = "denque-1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/denque/-/denque-1.4.0.tgz";
+        sha1 = "79e2f0490195502107f24d9553f374837dabc916";
+      };
+    }
+
+    {
+      name = "depd-1.1.2.tgz";
+      path = fetchurl {
+        name = "depd-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
+        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+      };
+    }
+
+    {
+      name = "descrevit-0.1.1.tgz";
+      path = fetchurl {
+        name = "descrevit-0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/descrevit/-/descrevit-0.1.1.tgz";
+        sha1 = "c0f5840de0a0f7b1b8b4078569b173327947d5da";
+      };
+    }
+
+    {
+      name = "destroy-1.0.4.tgz";
+      path = fetchurl {
+        name = "destroy-1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
+        sha1 = "978857442c44749e4206613e37946205826abd80";
+      };
+    }
+
+    {
+      name = "detect-indent-5.0.0.tgz";
+      path = fetchurl {
+        name = "detect-indent-5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz";
+        sha1 = "3871cc0a6a002e8c3e5b3cf7f336264675f06b9d";
+      };
+    }
+
+    {
+      name = "detect-libc-1.0.3.tgz";
+      path = fetchurl {
+        name = "detect-libc-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
+        sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+      };
+    }
+
+    {
+      name = "detect-newline-2.1.0.tgz";
+      path = fetchurl {
+        name = "detect-newline-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz";
+        sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
+      };
+    }
+
+    {
+      name = "dezalgo-1.0.3.tgz";
+      path = fetchurl {
+        name = "dezalgo-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz";
+        sha1 = "7f742de066fc748bc8db820569dddce49bf0d456";
+      };
+    }
+
+    {
+      name = "diagnostics-1.1.1.tgz";
+      path = fetchurl {
+        name = "diagnostics-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz";
+        sha1 = "cab6ac33df70c9d9a727490ae43ac995a769b22a";
+      };
+    }
+
+    {
+      name = "dicer-0.2.5.tgz";
+      path = fetchurl {
+        name = "dicer-0.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz";
+        sha1 = "5996c086bb33218c812c090bddc09cd12facb70f";
+      };
+    }
+
+    {
+      name = "diff-3.5.0.tgz";
+      path = fetchurl {
+        name = "diff-3.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz";
+        sha1 = "800c0dd1e0a8bfbc95835c202ad220fe317e5a12";
+      };
+    }
+
+    {
+      name = "dns-prefetch-control-0.1.0.tgz";
+      path = fetchurl {
+        name = "dns-prefetch-control-0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz";
+        sha1 = "60ddb457774e178f1f9415f0cabb0e85b0b300b2";
+      };
+    }
+
+    {
+      name = "docopt-0.6.2.tgz";
+      path = fetchurl {
+        name = "docopt-0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz";
+        sha1 = "b28e9e2220da5ec49f7ea5bb24a47787405eeb11";
+      };
+    }
+
+    {
+      name = "doctrine-0.7.2.tgz";
+      path = fetchurl {
+        name = "doctrine-0.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz";
+        sha1 = "7cb860359ba3be90e040b26b729ce4bfa654c523";
+      };
+    }
+
+    {
+      name = "doctrine-1.5.0.tgz";
+      path = fetchurl {
+        name = "doctrine-1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz";
+        sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
+      };
+    }
+
+    {
+      name = "dont-sniff-mimetype-1.0.0.tgz";
+      path = fetchurl {
+        name = "dont-sniff-mimetype-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz";
+        sha1 = "5932890dc9f4e2f19e5eb02a20026e5e5efc8f58";
+      };
+    }
+
+    {
+      name = "dot-json-1.0.4.tgz";
+      path = fetchurl {
+        name = "dot-json-1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/dot-json/-/dot-json-1.0.4.tgz";
+        sha1 = "b5c5818eb526a7917ac02df017fe9fba37b11195";
+      };
+    }
+
+    {
+      name = "dot-prop-4.2.0.tgz";
+      path = fetchurl {
+        name = "dot-prop-4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
+        sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
+      };
+    }
+
+    {
+      name = "dotenv-5.0.1.tgz";
+      path = fetchurl {
+        name = "dotenv-5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz";
+        sha1 = "a5317459bd3d79ab88cff6e44057a6a3fbb1fcef";
+      };
+    }
+
+    {
+      name = "dottie-2.0.1.tgz";
+      path = fetchurl {
+        name = "dottie-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/dottie/-/dottie-2.0.1.tgz";
+        sha1 = "697ad9d72004db7574d21f892466a3c285893659";
+      };
+    }
+
+    {
+      name = "double-ended-queue-2.1.0-0.tgz";
+      path = fetchurl {
+        name = "double-ended-queue-2.1.0-0.tgz";
+        url  = "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz";
+        sha1 = "103d3527fd31528f40188130c841efdd78264e5c";
+      };
+    }
+
+    {
+      name = "dtrace-provider-0.8.7.tgz";
+      path = fetchurl {
+        name = "dtrace-provider-0.8.7.tgz";
+        url  = "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.7.tgz";
+        sha1 = "dc939b4d3e0620cfe0c1cd803d0d2d7ed04ffd04";
+      };
+    }
+
+    {
+      name = "duplexer3-0.1.4.tgz";
+      path = fetchurl {
+        name = "duplexer3-0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz";
+        sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
+      };
+    }
+
+    {
+      name = "duplexify-3.6.1.tgz";
+      path = fetchurl {
+        name = "duplexify-3.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz";
+        sha1 = "b1a7a29c4abfd639585efaecce80d666b1e34125";
+      };
+    }
+
+    {
+      name = "ecc-jsbn-0.1.2.tgz";
+      path = fetchurl {
+        name = "ecc-jsbn-0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+      };
+    }
+
+    {
+      name = "ecdsa-sig-formatter-1.0.10.tgz";
+      path = fetchurl {
+        name = "ecdsa-sig-formatter-1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz";
+        sha1 = "1c595000f04a8897dfb85000892a0f4c33af86c3";
+      };
+    }
+
+    {
+      name = "editor-1.0.0.tgz";
+      path = fetchurl {
+        name = "editor-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz";
+        sha1 = "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742";
+      };
+    }
+
+    {
+      name = "ee-first-1.1.1.tgz";
+      path = fetchurl {
+        name = "ee-first-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
+        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+      };
+    }
+
+    {
+      name = "elegant-spinner-1.0.1.tgz";
+      path = fetchurl {
+        name = "elegant-spinner-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz";
+        sha1 = "db043521c95d7e303fd8f345bedc3349cfb0729e";
+      };
+    }
+
+    {
+      name = "elliptic-3.0.3.tgz";
+      path = fetchurl {
+        name = "elliptic-3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-3.0.3.tgz";
+        sha1 = "865c9b420bfbe55006b9f969f97a0d2c44966595";
+      };
+    }
+
+    {
+      name = "enabled-1.0.2.tgz";
+      path = fetchurl {
+        name = "enabled-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz";
+        sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
+      };
+    }
+
+    {
+      name = "encodeurl-1.0.2.tgz";
+      path = fetchurl {
+        name = "encodeurl-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
+        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+      };
+    }
+
+    {
+      name = "encoding-0.1.12.tgz";
+      path = fetchurl {
+        name = "encoding-0.1.12.tgz";
+        url  = "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz";
+        sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
+      };
+    }
+
+    {
+      name = "end-of-stream-1.4.1.tgz";
+      path = fetchurl {
+        name = "end-of-stream-1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz";
+        sha1 = "ed29634d19baba463b6ce6b80a37213eab71ec43";
+      };
+    }
+
+    {
+      name = "engine.io-client-1.8.3.tgz";
+      path = fetchurl {
+        name = "engine.io-client-1.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz";
+        sha1 = "1798ed93451246453d4c6f635d7a201fe940d5ab";
+      };
+    }
+
+    {
+      name = "engine.io-client-3.3.1.tgz";
+      path = fetchurl {
+        name = "engine.io-client-3.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.1.tgz";
+        sha1 = "afedb4a07b2ea48b7190c3136bfea98fdd4f0f03";
+      };
+    }
+
+    {
+      name = "engine.io-parser-1.3.2.tgz";
+      path = fetchurl {
+        name = "engine.io-parser-1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz";
+        sha1 = "937b079f0007d0893ec56d46cb220b8cb435220a";
+      };
+    }
+
+    {
+      name = "engine.io-parser-2.1.3.tgz";
+      path = fetchurl {
+        name = "engine.io-parser-2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz";
+        sha1 = "757ab970fbf2dfb32c7b74b033216d5739ef79a6";
+      };
+    }
+
+    {
+      name = "engine.io-1.8.3.tgz";
+      path = fetchurl {
+        name = "engine.io-1.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz";
+        sha1 = "8de7f97895d20d39b85f88eeee777b2bd42b13d4";
+      };
+    }
+
+    {
+      name = "engine.io-3.3.2.tgz";
+      path = fetchurl {
+        name = "engine.io-3.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/engine.io/-/engine.io-3.3.2.tgz";
+        sha1 = "18cbc8b6f36e9461c5c0f81df2b830de16058a59";
+      };
+    }
+
+    {
+      name = "env-variable-0.0.5.tgz";
+      path = fetchurl {
+        name = "env-variable-0.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.5.tgz";
+        sha1 = "913dd830bef11e96a039c038d4130604eba37f88";
+      };
+    }
+
+    {
+      name = "err-code-1.1.2.tgz";
+      path = fetchurl {
+        name = "err-code-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz";
+        sha1 = "06e0116d3028f6aef4806849eb0ea6a748ae6960";
+      };
+    }
+
+    {
+      name = "errno-0.1.7.tgz";
+      path = fetchurl {
+        name = "errno-0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
+        sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
+      };
+    }
+
+    {
+      name = "error-ex-1.3.2.tgz";
+      path = fetchurl {
+        name = "error-ex-1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
+        sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+      };
+    }
+
+    {
+      name = "es5-ext-0.10.46.tgz";
+      path = fetchurl {
+        name = "es5-ext-0.10.46.tgz";
+        url  = "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz";
+        sha1 = "efd99f67c5a7ec789baa3daa7f79870388f7f572";
+      };
+    }
+
+    {
+      name = "es6-iterator-2.0.3.tgz";
+      path = fetchurl {
+        name = "es6-iterator-2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz";
+        sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
+      };
+    }
+
+    {
+      name = "es6-map-0.1.5.tgz";
+      path = fetchurl {
+        name = "es6-map-0.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz";
+        sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0";
+      };
+    }
+
+    {
+      name = "es6-promise-4.2.5.tgz";
+      path = fetchurl {
+        name = "es6-promise-4.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz";
+        sha1 = "da6d0d5692efb461e082c14817fe2427d8f5d054";
+      };
+    }
+
+    {
+      name = "es6-promisify-5.0.0.tgz";
+      path = fetchurl {
+        name = "es6-promisify-5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz";
+        sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203";
+      };
+    }
+
+    {
+      name = "es6-promisify-6.0.1.tgz";
+      path = fetchurl {
+        name = "es6-promisify-6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.0.1.tgz";
+        sha1 = "6edaa45f3bd570ffe08febce66f7116be4b1cdb6";
+      };
+    }
+
+    {
+      name = "es6-set-0.1.5.tgz";
+      path = fetchurl {
+        name = "es6-set-0.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz";
+        sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1";
+      };
+    }
+
+    {
+      name = "es6-shim-0.35.3.tgz";
+      path = fetchurl {
+        name = "es6-shim-0.35.3.tgz";
+        url  = "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.3.tgz";
+        sha1 = "9bfb7363feffff87a6cdb6cd93e405ec3c4b6f26";
+      };
+    }
+
+    {
+      name = "es6-symbol-3.1.1.tgz";
+      path = fetchurl {
+        name = "es6-symbol-3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz";
+        sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
+      };
+    }
+
+    {
+      name = "es6-weak-map-2.0.2.tgz";
+      path = fetchurl {
+        name = "es6-weak-map-2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz";
+        sha1 = "5e3ab32251ffd1538a1f8e5ffa1357772f92d96f";
+      };
+    }
+
+    {
+      name = "escape-html-1.0.3.tgz";
+      path = fetchurl {
+        name = "escape-html-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    }
+
+    {
+      name = "escape-string-regexp-1.0.5.tgz";
+      path = fetchurl {
+        name = "escape-string-regexp-1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    }
+
+    {
+      name = "escope-3.6.0.tgz";
+      path = fetchurl {
+        name = "escope-3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz";
+        sha1 = "e01975e812781a163a6dadfdd80398dc64c889c3";
+      };
+    }
+
+    {
+      name = "eslint-2.13.1.tgz";
+      path = fetchurl {
+        name = "eslint-2.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz";
+        sha1 = "e4cc8fa0f009fb829aaae23855a29360be1f6c11";
+      };
+    }
+
+    {
+      name = "espree-3.5.4.tgz";
+      path = fetchurl {
+        name = "espree-3.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz";
+        sha1 = "b0f447187c8a8bed944b815a660bddf5deb5d1a7";
+      };
+    }
+
+    {
+      name = "esprima-4.0.1.tgz";
+      path = fetchurl {
+        name = "esprima-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
+        sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
+      };
+    }
+
+    {
+      name = "esrecurse-4.2.1.tgz";
+      path = fetchurl {
+        name = "esrecurse-4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
+        sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
+      };
+    }
+
+    {
+      name = "estraverse-4.2.0.tgz";
+      path = fetchurl {
+        name = "estraverse-4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz";
+        sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
+      };
+    }
+
+    {
+      name = "esutils-1.1.6.tgz";
+      path = fetchurl {
+        name = "esutils-1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz";
+        sha1 = "c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375";
+      };
+    }
+
+    {
+      name = "esutils-2.0.2.tgz";
+      path = fetchurl {
+        name = "esutils-2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
+        sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+      };
+    }
+
+    {
+      name = "etag-1.7.0.tgz";
+      path = fetchurl {
+        name = "etag-1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz";
+        sha1 = "03d30b5f67dd6e632d2945d30d6652731a34d5d8";
+      };
+    }
+
+    {
+      name = "etag-1.8.1.tgz";
+      path = fetchurl {
+        name = "etag-1.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
+        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+      };
+    }
+
+    {
+      name = "event-emitter-0.3.5.tgz";
+      path = fetchurl {
+        name = "event-emitter-0.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz";
+        sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
+      };
+    }
+
+    {
+      name = "execa-0.10.0.tgz";
+      path = fetchurl {
+        name = "execa-0.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz";
+        sha1 = "ff456a8f53f90f8eccc71a96d11bdfc7f082cb50";
+      };
+    }
+
+    {
+      name = "execa-0.7.0.tgz";
+      path = fetchurl {
+        name = "execa-0.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz";
+        sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777";
+      };
+    }
+
+    {
+      name = "execa-1.0.0.tgz";
+      path = fetchurl {
+        name = "execa-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz";
+        sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8";
+      };
+    }
+
+    {
+      name = "exit-hook-1.1.1.tgz";
+      path = fetchurl {
+        name = "exit-hook-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz";
+        sha1 = "f05ca233b48c05d54fff07765df8507e95c02ff8";
+      };
+    }
+
+    {
+      name = "expand-brackets-2.1.4.tgz";
+      path = fetchurl {
+        name = "expand-brackets-2.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
+        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+      };
+    }
+
+    {
+      name = "expand-template-2.0.3.tgz";
+      path = fetchurl {
+        name = "expand-template-2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz";
+        sha1 = "6e14b3fcee0f3a6340ecb57d2e8918692052a47c";
+      };
+    }
+
+    {
+      name = "expect-ct-0.1.1.tgz";
+      path = fetchurl {
+        name = "expect-ct-0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/expect-ct/-/expect-ct-0.1.1.tgz";
+        sha1 = "de84476a2dbcb85000d5903737e9bc8a5ba7b897";
+      };
+    }
+
+    {
+      name = "express-oauth-server-2.0.0.tgz";
+      path = fetchurl {
+        name = "express-oauth-server-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/express-oauth-server/-/express-oauth-server-2.0.0.tgz";
+        sha1 = "57b08665c1201532f52c4c02f19709238b99a48d";
+      };
+    }
+
+    {
+      name = "express-rate-limit-3.3.2.tgz";
+      path = fetchurl {
+        name = "express-rate-limit-3.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-3.3.2.tgz";
+        sha1 = "c5b2fc770d533878ce01a5dbbfadca340f3b8915";
+      };
+    }
+
+    {
+      name = "express-validator-5.3.0.tgz";
+      path = fetchurl {
+        name = "express-validator-5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/express-validator/-/express-validator-5.3.0.tgz";
+        sha1 = "18a4e4a6e6410e3b9d492fb4ffcb4556fec51806";
+      };
+    }
+
+    {
+      name = "express-4.13.4.tgz";
+      path = fetchurl {
+        name = "express-4.13.4.tgz";
+        url  = "https://registry.yarnpkg.com/express/-/express-4.13.4.tgz";
+        sha1 = "3c0b76f3c77590c8345739061ec0bd3ba067ec24";
+      };
+    }
+
+    {
+      name = "express-4.16.4.tgz";
+      path = fetchurl {
+        name = "express-4.16.4.tgz";
+        url  = "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz";
+        sha1 = "fddef61926109e24c515ea97fd2f1bdbf62df12e";
+      };
+    }
+
+    {
+      name = "extend-shallow-2.0.1.tgz";
+      path = fetchurl {
+        name = "extend-shallow-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
+        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+      };
+    }
+
+    {
+      name = "extend-shallow-3.0.2.tgz";
+      path = fetchurl {
+        name = "extend-shallow-3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
+        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+      };
+    }
+
+    {
+      name = "extend-3.0.2.tgz";
+      path = fetchurl {
+        name = "extend-3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
+        sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+      };
+    }
+
+    {
+      name = "extglob-2.0.4.tgz";
+      path = fetchurl {
+        name = "extglob-2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
+        sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
+      };
+    }
+
+    {
+      name = "extsprintf-1.2.0.tgz";
+      path = fetchurl {
+        name = "extsprintf-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz";
+        sha1 = "5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529";
+      };
+    }
+
+    {
+      name = "extsprintf-1.3.0.tgz";
+      path = fetchurl {
+        name = "extsprintf-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
+        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+      };
+    }
+
+    {
+      name = "extsprintf-1.4.0.tgz";
+      path = fetchurl {
+        name = "extsprintf-1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
+        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+      };
+    }
+
+    {
+      name = "eyes-0.1.8.tgz";
+      path = fetchurl {
+        name = "eyes-0.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz";
+        sha1 = "62cf120234c683785d902348a800ef3e0cc20bc0";
+      };
+    }
+
+    {
+      name = "fast-deep-equal-2.0.1.tgz";
+      path = fetchurl {
+        name = "fast-deep-equal-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+        sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+      };
+    }
+
+    {
+      name = "fast-json-stable-stringify-2.0.0.tgz";
+      path = fetchurl {
+        name = "fast-json-stable-stringify-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+        sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+      };
+    }
+
+    {
+      name = "fast-levenshtein-2.0.6.tgz";
+      path = fetchurl {
+        name = "fast-levenshtein-2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+      };
+    }
+
+    {
+      name = "fast-safe-stringify-2.0.6.tgz";
+      path = fetchurl {
+        name = "fast-safe-stringify-2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz";
+        sha1 = "04b26106cc56681f51a044cfc0d76cf0008ac2c2";
+      };
+    }
+
+    {
+      name = "feature-policy-0.2.0.tgz";
+      path = fetchurl {
+        name = "feature-policy-0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/feature-policy/-/feature-policy-0.2.0.tgz";
+        sha1 = "22096de49ab240176878ffe2bde2f6ff04d48c43";
+      };
+    }
+
+    {
+      name = "fecha-2.3.3.tgz";
+      path = fetchurl {
+        name = "fecha-2.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz";
+        sha1 = "948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd";
+      };
+    }
+
+    {
+      name = "figgy-pudding-3.5.1.tgz";
+      path = fetchurl {
+        name = "figgy-pudding-3.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
+        sha1 = "862470112901c727a0e495a80744bd5baa1d6790";
+      };
+    }
+
+    {
+      name = "figures-1.7.0.tgz";
+      path = fetchurl {
+        name = "figures-1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz";
+        sha1 = "cbe1e3affcf1cd44b80cadfed28dc793a9701d2e";
+      };
+    }
+
+    {
+      name = "figures-2.0.0.tgz";
+      path = fetchurl {
+        name = "figures-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
+        sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+      };
+    }
+
+    {
+      name = "file-entry-cache-1.3.1.tgz";
+      path = fetchurl {
+        name = "file-entry-cache-1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz";
+        sha1 = "44c61ea607ae4be9c1402f41f44270cbfe334ff8";
+      };
+    }
+
+    {
+      name = "filestream-4.1.3.tgz";
+      path = fetchurl {
+        name = "filestream-4.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/filestream/-/filestream-4.1.3.tgz";
+        sha1 = "948fcaade8221f715f5ecaddc54862faaacc9325";
+      };
+    }
+
+    {
+      name = "fill-range-4.0.0.tgz";
+      path = fetchurl {
+        name = "fill-range-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
+        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+      };
+    }
+
+    {
+      name = "finalhandler-0.4.1.tgz";
+      path = fetchurl {
+        name = "finalhandler-0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.4.1.tgz";
+        sha1 = "85a17c6c59a94717d262d61230d4b0ebe3d4a14d";
+      };
+    }
+
+    {
+      name = "finalhandler-1.1.1.tgz";
+      path = fetchurl {
+        name = "finalhandler-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz";
+        sha1 = "eebf4ed840079c83f4249038c9d703008301b105";
+      };
+    }
+
+    {
+      name = "find-npm-prefix-1.0.2.tgz";
+      path = fetchurl {
+        name = "find-npm-prefix-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz";
+        sha1 = "8d8ce2c78b3b4b9e66c8acc6a37c231eb841cfdf";
+      };
+    }
+
+    {
+      name = "find-parent-dir-0.3.0.tgz";
+      path = fetchurl {
+        name = "find-parent-dir-0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz";
+        sha1 = "33c44b429ab2b2f0646299c5f9f718f376ff8d54";
+      };
+    }
+
+    {
+      name = "find-up-2.1.0.tgz";
+      path = fetchurl {
+        name = "find-up-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz";
+        sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+      };
+    }
+
+    {
+      name = "find-up-3.0.0.tgz";
+      path = fetchurl {
+        name = "find-up-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
+        sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
+      };
+    }
+
+    {
+      name = "flat-cache-1.3.4.tgz";
+      path = fetchurl {
+        name = "flat-cache-1.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz";
+        sha1 = "2c2ef77525cc2929007dfffa1dd314aa9c9dee6f";
+      };
+    }
+
+    {
+      name = "flat-4.1.0.tgz";
+      path = fetchurl {
+        name = "flat-4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz";
+        sha1 = "090bec8b05e39cba309747f1d588f04dbaf98db2";
+      };
+    }
+
+    {
+      name = "flatten-1.0.2.tgz";
+      path = fetchurl {
+        name = "flatten-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz";
+        sha1 = "dae46a9d78fbe25292258cc1e780a41d95c03782";
+      };
+    }
+
+    {
+      name = "flexbuffer-0.0.6.tgz";
+      path = fetchurl {
+        name = "flexbuffer-0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/flexbuffer/-/flexbuffer-0.0.6.tgz";
+        sha1 = "039fdf23f8823e440c38f3277e6fef1174215b30";
+      };
+    }
+
+    {
+      name = "fluent-ffmpeg-2.1.2.tgz";
+      path = fetchurl {
+        name = "fluent-ffmpeg-2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz";
+        sha1 = "c952de2240f812ebda0aa8006d7776ee2acf7d74";
+      };
+    }
+
+    {
+      name = "flush-write-stream-1.0.3.tgz";
+      path = fetchurl {
+        name = "flush-write-stream-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz";
+        sha1 = "c5d586ef38af6097650b49bc41b55fabb19f35bd";
+      };
+    }
+
+    {
+      name = "for-in-1.0.2.tgz";
+      path = fetchurl {
+        name = "for-in-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
+        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+      };
+    }
+
+    {
+      name = "forever-agent-0.6.1.tgz";
+      path = fetchurl {
+        name = "forever-agent-0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
+        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+      };
+    }
+
+    {
+      name = "form-data-2.3.3.tgz";
+      path = fetchurl {
+        name = "form-data-2.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
+        sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
+      };
+    }
+
+    {
+      name = "format-util-1.0.3.tgz";
+      path = fetchurl {
+        name = "format-util-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/format-util/-/format-util-1.0.3.tgz";
+        sha1 = "032dca4a116262a12c43f4c3ec8566416c5b2d95";
+      };
+    }
+
+    {
+      name = "formidable-1.2.1.tgz";
+      path = fetchurl {
+        name = "formidable-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz";
+        sha1 = "70fb7ca0290ee6ff961090415f4b3df3d2082659";
+      };
+    }
+
+    {
+      name = "forwarded-0.1.2.tgz";
+      path = fetchurl {
+        name = "forwarded-0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
+        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+      };
+    }
+
+    {
+      name = "fragment-cache-0.2.1.tgz";
+      path = fetchurl {
+        name = "fragment-cache-0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
+        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+      };
+    }
+
+    {
+      name = "frameguard-3.0.0.tgz";
+      path = fetchurl {
+        name = "frameguard-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/frameguard/-/frameguard-3.0.0.tgz";
+        sha1 = "7bcad469ee7b96e91d12ceb3959c78235a9272e9";
+      };
+    }
+
+    {
+      name = "fresh-0.3.0.tgz";
+      path = fetchurl {
+        name = "fresh-0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz";
+        sha1 = "651f838e22424e7566de161d8358caa199f83d4f";
+      };
+    }
+
+    {
+      name = "fresh-0.5.2.tgz";
+      path = fetchurl {
+        name = "fresh-0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
+        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+      };
+    }
+
+    {
+      name = "from2-1.3.0.tgz";
+      path = fetchurl {
+        name = "from2-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/from2/-/from2-1.3.0.tgz";
+        sha1 = "88413baaa5f9a597cfde9221d86986cd3c061dfd";
+      };
+    }
+
+    {
+      name = "from2-2.3.0.tgz";
+      path = fetchurl {
+        name = "from2-2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz";
+        sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+      };
+    }
+
+    {
+      name = "front-matter-2.1.2.tgz";
+      path = fetchurl {
+        name = "front-matter-2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/front-matter/-/front-matter-2.1.2.tgz";
+        sha1 = "f75983b9f2f413be658c93dfd7bd8ce4078f5cdb";
+      };
+    }
+
+    {
+      name = "fs-chunk-store-1.7.0.tgz";
+      path = fetchurl {
+        name = "fs-chunk-store-1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-chunk-store/-/fs-chunk-store-1.7.0.tgz";
+        sha1 = "1c4bcbe93c99af10aa04b65348f2bb27377a4010";
+      };
+    }
+
+    {
+      name = "fs-constants-1.0.0.tgz";
+      path = fetchurl {
+        name = "fs-constants-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz";
+        sha1 = "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad";
+      };
+    }
+
+    {
+      name = "fs-copy-file-sync-1.1.1.tgz";
+      path = fetchurl {
+        name = "fs-copy-file-sync-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/fs-copy-file-sync/-/fs-copy-file-sync-1.1.1.tgz";
+        sha1 = "11bf32c096c10d126e5f6b36d06eece776062918";
+      };
+    }
+
+    {
+      name = "fs-extra-3.0.1.tgz";
+      path = fetchurl {
+        name = "fs-extra-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz";
+        sha1 = "3794f378c58b342ea7dbbb23095109c4b3b62291";
+      };
+    }
+
+    {
+      name = "fs-extra-7.0.1.tgz";
+      path = fetchurl {
+        name = "fs-extra-7.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz";
+        sha1 = "4f189c44aa123b895f722804f55ea23eadc348e9";
+      };
+    }
+
+    {
+      name = "fs-minipass-1.2.5.tgz";
+      path = fetchurl {
+        name = "fs-minipass-1.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz";
+        sha1 = "06c277218454ec288df77ada54a03b8702aacb9d";
+      };
+    }
+
+    {
+      name = "fs-vacuum-1.2.10.tgz";
+      path = fetchurl {
+        name = "fs-vacuum-1.2.10.tgz";
+        url  = "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz";
+        sha1 = "b7629bec07a4031a2548fdf99f5ecf1cc8b31e36";
+      };
+    }
+
+    {
+      name = "fs-write-stream-atomic-1.0.10.tgz";
+      path = fetchurl {
+        name = "fs-write-stream-atomic-1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
+        sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
+      };
+    }
+
+    {
+      name = "fs.realpath-1.0.0.tgz";
+      path = fetchurl {
+        name = "fs.realpath-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    }
+
+    {
+      name = "fsevents-1.2.4.tgz";
+      path = fetchurl {
+        name = "fsevents-1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz";
+        sha1 = "f41dcb1af2582af3692da36fc55cbd8e1041c426";
+      };
+    }
+
+    {
+      name = "fstream-1.0.11.tgz";
+      path = fetchurl {
+        name = "fstream-1.0.11.tgz";
+        url  = "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz";
+        sha1 = "5c1fb1f117477114f0632a0eb4b71b3cb0fd3171";
+      };
+    }
+
+    {
+      name = "g-status-2.0.2.tgz";
+      path = fetchurl {
+        name = "g-status-2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz";
+        sha1 = "270fd32119e8fc9496f066fe5fe88e0a6bc78b97";
+      };
+    }
+
+    {
+      name = "gauge-2.7.4.tgz";
+      path = fetchurl {
+        name = "gauge-2.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
+        sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+      };
+    }
+
+    {
+      name = "generate-function-2.3.1.tgz";
+      path = fetchurl {
+        name = "generate-function-2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz";
+        sha1 = "f069617690c10c868e73b8465746764f97c3479f";
+      };
+    }
+
+    {
+      name = "generate-object-property-1.2.0.tgz";
+      path = fetchurl {
+        name = "generate-object-property-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz";
+        sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0";
+      };
+    }
+
+    {
+      name = "generic-pool-3.4.2.tgz";
+      path = fetchurl {
+        name = "generic-pool-3.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.4.2.tgz";
+        sha1 = "92ff7196520d670839a67308092a12aadf2f6a59";
+      };
+    }
+
+    {
+      name = "genfun-5.0.0.tgz";
+      path = fetchurl {
+        name = "genfun-5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz";
+        sha1 = "9dd9710a06900a5c4a5bf57aca5da4e52fe76537";
+      };
+    }
+
+    {
+      name = "gentle-fs-2.0.1.tgz";
+      path = fetchurl {
+        name = "gentle-fs-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/gentle-fs/-/gentle-fs-2.0.1.tgz";
+        sha1 = "585cfd612bfc5cd52471fdb42537f016a5ce3687";
+      };
+    }
+
+    {
+      name = "get-browser-rtc-1.0.2.tgz";
+      path = fetchurl {
+        name = "get-browser-rtc-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.0.2.tgz";
+        sha1 = "bbcd40c8451a7ed4ef5c373b8169a409dd1d11d9";
+      };
+    }
+
+    {
+      name = "get-caller-file-1.0.3.tgz";
+      path = fetchurl {
+        name = "get-caller-file-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
+        sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
+      };
+    }
+
+    {
+      name = "get-func-name-2.0.0.tgz";
+      path = fetchurl {
+        name = "get-func-name-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz";
+        sha1 = "ead774abee72e20409433a066366023dd6887a41";
+      };
+    }
+
+    {
+      name = "get-own-enumerable-property-symbols-3.0.0.tgz";
+      path = fetchurl {
+        name = "get-own-enumerable-property-symbols-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz";
+        sha1 = "b877b49a5c16aefac3655f2ed2ea5b684df8d203";
+      };
+    }
+
+    {
+      name = "get-stdin-6.0.0.tgz";
+      path = fetchurl {
+        name = "get-stdin-6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz";
+        sha1 = "9e09bf712b360ab9225e812048f71fde9c89657b";
+      };
+    }
+
+    {
+      name = "get-stream-3.0.0.tgz";
+      path = fetchurl {
+        name = "get-stream-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz";
+        sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+      };
+    }
+
+    {
+      name = "get-stream-4.1.0.tgz";
+      path = fetchurl {
+        name = "get-stream-4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
+        sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
+      };
+    }
+
+    {
+      name = "get-value-2.0.6.tgz";
+      path = fetchurl {
+        name = "get-value-2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
+        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+      };
+    }
+
+    {
+      name = "getpass-0.1.7.tgz";
+      path = fetchurl {
+        name = "getpass-0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+      };
+    }
+
+    {
+      name = "github-from-package-0.0.0.tgz";
+      path = fetchurl {
+        name = "github-from-package-0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz";
+        sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
+      };
+    }
+
+    {
+      name = "glob-parent-3.1.0.tgz";
+      path = fetchurl {
+        name = "glob-parent-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz";
+        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+      };
+    }
+
+    {
+      name = "glob-7.1.2.tgz";
+      path = fetchurl {
+        name = "glob-7.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz";
+        sha1 = "c19c9df9a028702d678612384a6552404c636d15";
+      };
+    }
+
+    {
+      name = "glob-6.0.4.tgz";
+      path = fetchurl {
+        name = "glob-6.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz";
+        sha1 = "0f08860f6a155127b2fadd4f9ce24b1aab6e4d22";
+      };
+    }
+
+    {
+      name = "glob-7.1.3.tgz";
+      path = fetchurl {
+        name = "glob-7.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz";
+        sha1 = "3960832d3f1574108342dafd3a67b332c0969df1";
+      };
+    }
+
+    {
+      name = "global-dirs-0.1.1.tgz";
+      path = fetchurl {
+        name = "global-dirs-0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz";
+        sha1 = "b319c0dd4607f353f3be9cca4c72fc148c49f445";
+      };
+    }
+
+    {
+      name = "globals-9.18.0.tgz";
+      path = fetchurl {
+        name = "globals-9.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz";
+        sha1 = "aa3896b3e69b487f17e31ed2143d69a8e30c2d8a";
+      };
+    }
+
+    {
+      name = "globby-6.1.0.tgz";
+      path = fetchurl {
+        name = "globby-6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz";
+        sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
+      };
+    }
+
+    {
+      name = "globule-1.2.1.tgz";
+      path = fetchurl {
+        name = "globule-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz";
+        sha1 = "5dffb1b191f22d20797a9369b49eab4e9839696d";
+      };
+    }
+
+    {
+      name = "gonzales-pe-sl-4.2.3.tgz";
+      path = fetchurl {
+        name = "gonzales-pe-sl-4.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/gonzales-pe-sl/-/gonzales-pe-sl-4.2.3.tgz";
+        sha1 = "6a868bc380645f141feeb042c6f97fcc71b59fe6";
+      };
+    }
+
+    {
+      name = "got-6.7.1.tgz";
+      path = fetchurl {
+        name = "got-6.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz";
+        sha1 = "240cd05785a9a18e561dc1b44b41c763ef1e8db0";
+      };
+    }
+
+    {
+      name = "graceful-fs-4.1.15.tgz";
+      path = fetchurl {
+        name = "graceful-fs-4.1.15.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz";
+        sha1 = "ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00";
+      };
+    }
+
+    {
+      name = "graceful-readlink-1.0.1.tgz";
+      path = fetchurl {
+        name = "graceful-readlink-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+        sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+      };
+    }
+
+    {
+      name = "growl-1.10.5.tgz";
+      path = fetchurl {
+        name = "growl-1.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz";
+        sha1 = "f2735dc2283674fa67478b10181059355c369e5e";
+      };
+    }
+
+    {
+      name = "har-schema-2.0.0.tgz";
+      path = fetchurl {
+        name = "har-schema-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
+        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+      };
+    }
+
+    {
+      name = "har-validator-5.1.3.tgz";
+      path = fetchurl {
+        name = "har-validator-5.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
+        sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
+      };
+    }
+
+    {
+      name = "has-ansi-2.0.0.tgz";
+      path = fetchurl {
+        name = "has-ansi-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
+        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+      };
+    }
+
+    {
+      name = "has-binary2-1.0.3.tgz";
+      path = fetchurl {
+        name = "has-binary2-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz";
+        sha1 = "7776ac627f3ea77250cfc332dab7ddf5e4f5d11d";
+      };
+    }
+
+    {
+      name = "has-binary-0.1.7.tgz";
+      path = fetchurl {
+        name = "has-binary-0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz";
+        sha1 = "68e61eb16210c9545a0a5cce06a873912fe1e68c";
+      };
+    }
+
+    {
+      name = "has-cors-1.1.0.tgz";
+      path = fetchurl {
+        name = "has-cors-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz";
+        sha1 = "5e474793f7ea9843d1bb99c23eef49ff126fff39";
+      };
+    }
+
+    {
+      name = "has-flag-2.0.0.tgz";
+      path = fetchurl {
+        name = "has-flag-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz";
+        sha1 = "e8207af1cc7b30d446cc70b734b5e8be18f88d51";
+      };
+    }
+
+    {
+      name = "has-flag-3.0.0.tgz";
+      path = fetchurl {
+        name = "has-flag-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    }
+
+    {
+      name = "has-unicode-2.0.1.tgz";
+      path = fetchurl {
+        name = "has-unicode-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
+        sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+      };
+    }
+
+    {
+      name = "has-value-0.3.1.tgz";
+      path = fetchurl {
+        name = "has-value-0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
+        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+      };
+    }
+
+    {
+      name = "has-value-1.0.0.tgz";
+      path = fetchurl {
+        name = "has-value-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
+        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+      };
+    }
+
+    {
+      name = "has-values-0.1.4.tgz";
+      path = fetchurl {
+        name = "has-values-0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
+        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+      };
+    }
+
+    {
+      name = "has-values-1.0.0.tgz";
+      path = fetchurl {
+        name = "has-values-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
+        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+      };
+    }
+
+    {
+      name = "hash.js-1.1.7.tgz";
+      path = fetchurl {
+        name = "hash.js-1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz";
+        sha1 = "0babca538e8d4ee4a0f8988d68866537a003cf42";
+      };
+    }
+
+    {
+      name = "hashish-0.0.4.tgz";
+      path = fetchurl {
+        name = "hashish-0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/hashish/-/hashish-0.0.4.tgz";
+        sha1 = "6d60bc6ffaf711b6afd60e426d077988014e6554";
+      };
+    }
+
+    {
+      name = "he-1.1.1.tgz";
+      path = fetchurl {
+        name = "he-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz";
+        sha1 = "93410fd21b009735151f8868c2f271f3427e23fd";
+      };
+    }
+
+    {
+      name = "helmet-crossdomain-0.3.0.tgz";
+      path = fetchurl {
+        name = "helmet-crossdomain-0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/helmet-crossdomain/-/helmet-crossdomain-0.3.0.tgz";
+        sha1 = "707e2df930f13ad61f76ed08e1bb51ab2b2e85fa";
+      };
+    }
+
+    {
+      name = "helmet-csp-2.7.1.tgz";
+      path = fetchurl {
+        name = "helmet-csp-2.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.7.1.tgz";
+        sha1 = "e8e0b5186ffd4db625cfcce523758adbfadb9dca";
+      };
+    }
+
+    {
+      name = "helmet-3.15.0.tgz";
+      path = fetchurl {
+        name = "helmet-3.15.0.tgz";
+        url  = "https://registry.yarnpkg.com/helmet/-/helmet-3.15.0.tgz";
+        sha1 = "fe0bb80e05d9eec589e3cbecaf5384409a3a64c9";
+      };
+    }
+
+    {
+      name = "hh-mm-ss-1.2.0.tgz";
+      path = fetchurl {
+        name = "hh-mm-ss-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/hh-mm-ss/-/hh-mm-ss-1.2.0.tgz";
+        sha1 = "6d0f0b8280824a634cb1d1f20e0bc7bc8b689948";
+      };
+    }
+
+    {
+      name = "hide-powered-by-1.0.0.tgz";
+      path = fetchurl {
+        name = "hide-powered-by-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/hide-powered-by/-/hide-powered-by-1.0.0.tgz";
+        sha1 = "4a85ad65881f62857fc70af7174a1184dccce32b";
+      };
+    }
+
+    {
+      name = "hosted-git-info-2.7.1.tgz";
+      path = fetchurl {
+        name = "hosted-git-info-2.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz";
+        sha1 = "97f236977bd6e125408930ff6de3eec6281ec047";
+      };
+    }
+
+    {
+      name = "hpkp-2.0.0.tgz";
+      path = fetchurl {
+        name = "hpkp-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/hpkp/-/hpkp-2.0.0.tgz";
+        sha1 = "10e142264e76215a5d30c44ec43de64dee6d1672";
+      };
+    }
+
+    {
+      name = "hsts-2.1.0.tgz";
+      path = fetchurl {
+        name = "hsts-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/hsts/-/hsts-2.1.0.tgz";
+        sha1 = "cbd6c918a2385fee1dd5680bfb2b3a194c0121cc";
+      };
+    }
+
+    {
+      name = "http-cache-semantics-3.8.1.tgz";
+      path = fetchurl {
+        name = "http-cache-semantics-3.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz";
+        sha1 = "39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2";
+      };
+    }
+
+    {
+      name = "http-errors-1.6.3.tgz";
+      path = fetchurl {
+        name = "http-errors-1.6.3.tgz";
+        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz";
+        sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
+      };
+    }
+
+    {
+      name = "http-errors-1.3.1.tgz";
+      path = fetchurl {
+        name = "http-errors-1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz";
+        sha1 = "197e22cdebd4198585e8694ef6786197b91ed942";
+      };
+    }
+
+    {
+      name = "http-proxy-agent-2.1.0.tgz";
+      path = fetchurl {
+        name = "http-proxy-agent-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz";
+        sha1 = "e4821beef5b2142a2026bd73926fe537631c5405";
+      };
+    }
+
+    {
+      name = "http-signature-1.2.0.tgz";
+      path = fetchurl {
+        name = "http-signature-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
+        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+      };
+    }
+
+    {
+      name = "https-proxy-agent-2.2.1.tgz";
+      path = fetchurl {
+        name = "https-proxy-agent-2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz";
+        sha1 = "51552970fa04d723e04c56d04178c3f92592bbc0";
+      };
+    }
+
+    {
+      name = "humanize-ms-1.2.1.tgz";
+      path = fetchurl {
+        name = "humanize-ms-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz";
+        sha1 = "c46e3159a293f6b896da29316d8b6fe8bb79bbed";
+      };
+    }
+
+    {
+      name = "husky-1.2.0.tgz";
+      path = fetchurl {
+        name = "husky-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/husky/-/husky-1.2.0.tgz";
+        sha1 = "d631dda1e4a9ee8ba69a10b0c51a0e2c66e711e5";
+      };
+    }
+
+    {
+      name = "i-0.3.6.tgz";
+      path = fetchurl {
+        name = "i-0.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/i/-/i-0.3.6.tgz";
+        sha1 = "d96c92732076f072711b6b10fd7d4f65ad8ee23d";
+      };
+    }
+
+    {
+      name = "iconv-lite-0.4.23.tgz";
+      path = fetchurl {
+        name = "iconv-lite-0.4.23.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz";
+        sha1 = "297871f63be507adcfbfca715d0cd0eed84e9a63";
+      };
+    }
+
+    {
+      name = "iconv-lite-0.4.24.tgz";
+      path = fetchurl {
+        name = "iconv-lite-0.4.24.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
+      };
+    }
+
+    {
+      name = "ienoopen-1.0.0.tgz";
+      path = fetchurl {
+        name = "ienoopen-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ienoopen/-/ienoopen-1.0.0.tgz";
+        sha1 = "346a428f474aac8f50cf3784ea2d0f16f62bda6b";
+      };
+    }
+
+    {
+      name = "iferr-0.1.5.tgz";
+      path = fetchurl {
+        name = "iferr-0.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz";
+        sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
+      };
+    }
+
+    {
+      name = "iferr-1.0.2.tgz";
+      path = fetchurl {
+        name = "iferr-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/iferr/-/iferr-1.0.2.tgz";
+        sha1 = "e9fde49a9da06dc4a4194c6c9ed6d08305037a6d";
+      };
+    }
+
+    {
+      name = "ignore-by-default-1.0.1.tgz";
+      path = fetchurl {
+        name = "ignore-by-default-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz";
+        sha1 = "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09";
+      };
+    }
+
+    {
+      name = "ignore-walk-3.0.1.tgz";
+      path = fetchurl {
+        name = "ignore-walk-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz";
+        sha1 = "a83e62e7d272ac0e3b551aaa82831a19b69f82f8";
+      };
+    }
+
+    {
+      name = "ignore-3.3.10.tgz";
+      path = fetchurl {
+        name = "ignore-3.3.10.tgz";
+        url  = "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz";
+        sha1 = "0a97fb876986e8081c631160f8f9f389157f0043";
+      };
+    }
+
+    {
+      name = "immediate-chunk-store-2.0.0.tgz";
+      path = fetchurl {
+        name = "immediate-chunk-store-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/immediate-chunk-store/-/immediate-chunk-store-2.0.0.tgz";
+        sha1 = "f313fd0cc71396d8911ad031179e1cccfda3da18";
+      };
+    }
+
+    {
+      name = "import-fresh-2.0.0.tgz";
+      path = fetchurl {
+        name = "import-fresh-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz";
+        sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
+      };
+    }
+
+    {
+      name = "import-lazy-2.1.0.tgz";
+      path = fetchurl {
+        name = "import-lazy-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz";
+        sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
+      };
+    }
+
+    {
+      name = "imurmurhash-0.1.4.tgz";
+      path = fetchurl {
+        name = "imurmurhash-0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    }
+
+    {
+      name = "indent-string-3.2.0.tgz";
+      path = fetchurl {
+        name = "indent-string-3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz";
+        sha1 = "4a5fd6d27cc332f37e5419a504dbb837105c9289";
+      };
+    }
+
+    {
+      name = "indexof-0.0.1.tgz";
+      path = fetchurl {
+        name = "indexof-0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz";
+        sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
+      };
+    }
+
+    {
+      name = "inflection-1.12.0.tgz";
+      path = fetchurl {
+        name = "inflection-1.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz";
+        sha1 = "a200935656d6f5f6bc4dc7502e1aecb703228416";
+      };
+    }
+
+    {
+      name = "inflight-1.0.6.tgz";
+      path = fetchurl {
+        name = "inflight-1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    }
+
+    {
+      name = "inherits-2.0.3.tgz";
+      path = fetchurl {
+        name = "inherits-2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+      };
+    }
+
+    {
+      name = "inherits-2.0.1.tgz";
+      path = fetchurl {
+        name = "inherits-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
+        sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+      };
+    }
+
+    {
+      name = "ini-1.3.5.tgz";
+      path = fetchurl {
+        name = "ini-1.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
+        sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+      };
+    }
+
+    {
+      name = "init-package-json-1.10.3.tgz";
+      path = fetchurl {
+        name = "init-package-json-1.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.10.3.tgz";
+        sha1 = "45ffe2f610a8ca134f2bd1db5637b235070f6cbe";
+      };
+    }
+
+    {
+      name = "inquirer-0.12.0.tgz";
+      path = fetchurl {
+        name = "inquirer-0.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz";
+        sha1 = "1ef2bfd63504df0bc75785fff8c2c41df12f077e";
+      };
+    }
+
+    {
+      name = "invert-kv-1.0.0.tgz";
+      path = fetchurl {
+        name = "invert-kv-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz";
+        sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
+      };
+    }
+
+    {
+      name = "invert-kv-2.0.0.tgz";
+      path = fetchurl {
+        name = "invert-kv-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
+        sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
+      };
+    }
+
+    {
+      name = "ioredis-3.2.2.tgz";
+      path = fetchurl {
+        name = "ioredis-3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/ioredis/-/ioredis-3.2.2.tgz";
+        sha1 = "b7d5ff3afd77bb9718bb2821329b894b9a44c00b";
+      };
+    }
+
+    {
+      name = "ip-anonymize-0.0.6.tgz";
+      path = fetchurl {
+        name = "ip-anonymize-0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/ip-anonymize/-/ip-anonymize-0.0.6.tgz";
+        sha1 = "d2c513e448e874e8cc380d03404691b94b018e68";
+      };
+    }
+
+    {
+      name = "ip-regex-2.1.0.tgz";
+      path = fetchurl {
+        name = "ip-regex-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz";
+        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+      };
+    }
+
+    {
+      name = "ip-set-1.0.1.tgz";
+      path = fetchurl {
+        name = "ip-set-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ip-set/-/ip-set-1.0.1.tgz";
+        sha1 = "633b66d0bd6c8d0de968d053263c9120d3b6727e";
+      };
+    }
+
+    {
+      name = "ip-1.1.5.tgz";
+      path = fetchurl {
+        name = "ip-1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
+        sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+      };
+    }
+
+    {
+      name = "ipaddr.js-1.0.5.tgz";
+      path = fetchurl {
+        name = "ipaddr.js-1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.0.5.tgz";
+        sha1 = "5fa78cf301b825c78abc3042d812723049ea23c7";
+      };
+    }
+
+    {
+      name = "ipaddr.js-1.8.0.tgz";
+      path = fetchurl {
+        name = "ipaddr.js-1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz";
+        sha1 = "eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e";
+      };
+    }
+
+    {
+      name = "ipaddr.js-1.8.1.tgz";
+      path = fetchurl {
+        name = "ipaddr.js-1.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz";
+        sha1 = "fa4b79fa47fd3def5e3b159825161c0a519c9427";
+      };
+    }
+
+    {
+      name = "ipv6-normalize-1.0.1.tgz";
+      path = fetchurl {
+        name = "ipv6-normalize-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ipv6-normalize/-/ipv6-normalize-1.0.1.tgz";
+        sha1 = "1b3258290d365fa83239e89907dde4592e7620a8";
+      };
+    }
+
+    {
+      name = "is-accessor-descriptor-0.1.6.tgz";
+      path = fetchurl {
+        name = "is-accessor-descriptor-0.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+      };
+    }
+
+    {
+      name = "is-accessor-descriptor-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-accessor-descriptor-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+        sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
+      };
+    }
+
+    {
+      name = "is-arrayish-0.2.1.tgz";
+      path = fetchurl {
+        name = "is-arrayish-0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
+        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+      };
+    }
+
+    {
+      name = "is-arrayish-0.3.2.tgz";
+      path = fetchurl {
+        name = "is-arrayish-0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz";
+        sha1 = "4574a2ae56f7ab206896fb431eaeed066fdf8f03";
+      };
+    }
+
+    {
+      name = "is-ascii-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-ascii-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-ascii/-/is-ascii-1.0.0.tgz";
+        sha1 = "f02ad0259a0921cd199ff21ce1b09e0f6b4e3929";
+      };
+    }
+
+    {
+      name = "is-binary-path-1.0.1.tgz";
+      path = fetchurl {
+        name = "is-binary-path-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
+        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+      };
+    }
+
+    {
+      name = "is-bluebird-1.0.2.tgz";
+      path = fetchurl {
+        name = "is-bluebird-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-bluebird/-/is-bluebird-1.0.2.tgz";
+        sha1 = "096439060f4aa411abee19143a84d6a55346d6e2";
+      };
+    }
+
+    {
+      name = "is-buffer-1.1.6.tgz";
+      path = fetchurl {
+        name = "is-buffer-1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+        sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+      };
+    }
+
+    {
+      name = "is-buffer-2.0.3.tgz";
+      path = fetchurl {
+        name = "is-buffer-2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz";
+        sha1 = "4ecf3fcf749cbd1e472689e109ac66261a25e725";
+      };
+    }
+
+    {
+      name = "is-builtin-module-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-builtin-module-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz";
+        sha1 = "540572d34f7ac3119f8f76c30cbc1b1e037affbe";
+      };
+    }
+
+    {
+      name = "is-ci-1.2.1.tgz";
+      path = fetchurl {
+        name = "is-ci-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz";
+        sha1 = "e3779c8ee17fccf428488f6e281187f2e632841c";
+      };
+    }
+
+    {
+      name = "is-cidr-2.0.7.tgz";
+      path = fetchurl {
+        name = "is-cidr-2.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/is-cidr/-/is-cidr-2.0.7.tgz";
+        sha1 = "0fd4b863c26b2eb2d157ed21060c4f3f8dd356ce";
+      };
+    }
+
+    {
+      name = "is-cidr-3.0.0.tgz";
+      path = fetchurl {
+        name = "is-cidr-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-cidr/-/is-cidr-3.0.0.tgz";
+        sha1 = "1acf35c9e881063cd5f696d48959b30fed3eed56";
+      };
+    }
+
+    {
+      name = "is-data-descriptor-0.1.4.tgz";
+      path = fetchurl {
+        name = "is-data-descriptor-0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+      };
+    }
+
+    {
+      name = "is-data-descriptor-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-data-descriptor-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+        sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
+      };
+    }
+
+    {
+      name = "is-descriptor-0.1.6.tgz";
+      path = fetchurl {
+        name = "is-descriptor-0.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
+        sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
+      };
+    }
+
+    {
+      name = "is-descriptor-1.0.2.tgz";
+      path = fetchurl {
+        name = "is-descriptor-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
+        sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
+      };
+    }
+
+    {
+      name = "is-directory-0.3.1.tgz";
+      path = fetchurl {
+        name = "is-directory-0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz";
+        sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
+      };
+    }
+
+    {
+      name = "is-extendable-0.1.1.tgz";
+      path = fetchurl {
+        name = "is-extendable-0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
+        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+      };
+    }
+
+    {
+      name = "is-extendable-1.0.1.tgz";
+      path = fetchurl {
+        name = "is-extendable-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
+        sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+      };
+    }
+
+    {
+      name = "is-extglob-2.1.1.tgz";
+      path = fetchurl {
+        name = "is-extglob-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    }
+
+    {
+      name = "is-file-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-file-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-file/-/is-file-1.0.0.tgz";
+        sha1 = "28a44cfbd9d3db193045f22b65fce8edf9620596";
+      };
+    }
+
+    {
+      name = "is-fullwidth-code-point-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-fullwidth-code-point-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+      };
+    }
+
+    {
+      name = "is-fullwidth-code-point-2.0.0.tgz";
+      path = fetchurl {
+        name = "is-fullwidth-code-point-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    }
+
+    {
+      name = "is-generator-1.0.3.tgz";
+      path = fetchurl {
+        name = "is-generator-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-generator/-/is-generator-1.0.3.tgz";
+        sha1 = "c14c21057ed36e328db80347966c693f886389f3";
+      };
+    }
+
+    {
+      name = "is-glob-3.1.0.tgz";
+      path = fetchurl {
+        name = "is-glob-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
+        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+      };
+    }
+
+    {
+      name = "is-glob-4.0.0.tgz";
+      path = fetchurl {
+        name = "is-glob-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz";
+        sha1 = "9521c76845cc2610a85203ddf080a958c2ffabc0";
+      };
+    }
+
+    {
+      name = "is-installed-globally-0.1.0.tgz";
+      path = fetchurl {
+        name = "is-installed-globally-0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz";
+        sha1 = "0dfd98f5a9111716dd535dda6492f67bf3d25a80";
+      };
+    }
+
+    {
+      name = "is-my-ip-valid-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-my-ip-valid-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz";
+        sha1 = "7b351b8e8edd4d3995d4d066680e664d94696824";
+      };
+    }
+
+    {
+      name = "is-my-json-valid-2.19.0.tgz";
+      path = fetchurl {
+        name = "is-my-json-valid-2.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.19.0.tgz";
+        sha1 = "8fd6e40363cd06b963fa877d444bfb5eddc62175";
+      };
+    }
+
+    {
+      name = "is-nan-1.2.1.tgz";
+      path = fetchurl {
+        name = "is-nan-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-nan/-/is-nan-1.2.1.tgz";
+        sha1 = "9faf65b6fb6db24b7f5c0628475ea71f988401e2";
+      };
+    }
+
+    {
+      name = "is-npm-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-npm-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz";
+        sha1 = "f2fb63a65e4905b406c86072765a1a4dc793b9f4";
+      };
+    }
+
+    {
+      name = "is-number-3.0.0.tgz";
+      path = fetchurl {
+        name = "is-number-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
+        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+      };
+    }
+
+    {
+      name = "is-obj-1.0.1.tgz";
+      path = fetchurl {
+        name = "is-obj-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz";
+        sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
+      };
+    }
+
+    {
+      name = "is-observable-1.1.0.tgz";
+      path = fetchurl {
+        name = "is-observable-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz";
+        sha1 = "b3e986c8f44de950867cab5403f5a3465005975e";
+      };
+    }
+
+    {
+      name = "is-path-cwd-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-path-cwd-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz";
+        sha1 = "d225ec23132e89edd38fda767472e62e65f1106d";
+      };
+    }
+
+    {
+      name = "is-path-in-cwd-1.0.1.tgz";
+      path = fetchurl {
+        name = "is-path-in-cwd-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz";
+        sha1 = "5ac48b345ef675339bd6c7a48a912110b241cf52";
+      };
+    }
+
+    {
+      name = "is-path-inside-1.0.1.tgz";
+      path = fetchurl {
+        name = "is-path-inside-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz";
+        sha1 = "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036";
+      };
+    }
+
+    {
+      name = "is-plain-object-2.0.4.tgz";
+      path = fetchurl {
+        name = "is-plain-object-2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
+        sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
+      };
+    }
+
+    {
+      name = "is-promise-2.1.0.tgz";
+      path = fetchurl {
+        name = "is-promise-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
+        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
+      };
+    }
+
+    {
+      name = "is-property-1.0.2.tgz";
+      path = fetchurl {
+        name = "is-property-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz";
+        sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
+      };
+    }
+
+    {
+      name = "is-redirect-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-redirect-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz";
+        sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24";
+      };
+    }
+
+    {
+      name = "is-regexp-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-regexp-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz";
+        sha1 = "fd2d883545c46bac5a633e7b9a09e87fa2cb5069";
+      };
+    }
+
+    {
+      name = "is-resolvable-1.1.0.tgz";
+      path = fetchurl {
+        name = "is-resolvable-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz";
+        sha1 = "fb18f87ce1feb925169c9a407c19318a3206ed88";
+      };
+    }
+
+    {
+      name = "is-retry-allowed-1.1.0.tgz";
+      path = fetchurl {
+        name = "is-retry-allowed-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz";
+        sha1 = "11a060568b67339444033d0125a61a20d564fb34";
+      };
+    }
+
+    {
+      name = "is-stream-1.1.0.tgz";
+      path = fetchurl {
+        name = "is-stream-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
+        sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+      };
+    }
+
+    {
+      name = "is-typedarray-1.0.0.tgz";
+      path = fetchurl {
+        name = "is-typedarray-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    }
+
+    {
+      name = "is-windows-1.0.2.tgz";
+      path = fetchurl {
+        name = "is-windows-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
+        sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+      };
+    }
+
+    {
+      name = "isarray-0.0.1.tgz";
+      path = fetchurl {
+        name = "isarray-0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
+        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+      };
+    }
+
+    {
+      name = "isarray-1.0.0.tgz";
+      path = fetchurl {
+        name = "isarray-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    }
+
+    {
+      name = "isarray-2.0.1.tgz";
+      path = fetchurl {
+        name = "isarray-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz";
+        sha1 = "a37d94ed9cda2d59865c9f76fe596ee1f338741e";
+      };
+    }
+
+    {
+      name = "isexe-2.0.0.tgz";
+      path = fetchurl {
+        name = "isexe-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    }
+
+    {
+      name = "iso-639-3-1.1.0.tgz";
+      path = fetchurl {
+        name = "iso-639-3-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/iso-639-3/-/iso-639-3-1.1.0.tgz";
+        sha1 = "83722daf55490a707c318ae18a33ba3bab06c843";
+      };
+    }
+
+    {
+      name = "isobject-2.1.0.tgz";
+      path = fetchurl {
+        name = "isobject-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
+        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+      };
+    }
+
+    {
+      name = "isobject-3.0.1.tgz";
+      path = fetchurl {
+        name = "isobject-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
+        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+      };
+    }
+
+    {
+      name = "isstream-0.1.2.tgz";
+      path = fetchurl {
+        name = "isstream-0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
+        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+      };
+    }
+
+    {
+      name = "jest-get-type-22.4.3.tgz";
+      path = fetchurl {
+        name = "jest-get-type-22.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz";
+        sha1 = "e3a8504d8479342dd4420236b322869f18900ce4";
+      };
+    }
+
+    {
+      name = "jest-validate-23.6.0.tgz";
+      path = fetchurl {
+        name = "jest-validate-23.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz";
+        sha1 = "36761f99d1ed33fcd425b4e4c5595d62b6597474";
+      };
+    }
+
+    {
+      name = "js-tokens-3.0.2.tgz";
+      path = fetchurl {
+        name = "js-tokens-3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz";
+        sha1 = "9866df395102130e38f7f996bceb65443209c25b";
+      };
+    }
+
+    {
+      name = "js-yaml-3.12.0.tgz";
+      path = fetchurl {
+        name = "js-yaml-3.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz";
+        sha1 = "eaed656ec8344f10f527c6bfa1b6e2244de167d1";
+      };
+    }
+
+    {
+      name = "jsbn-0.1.1.tgz";
+      path = fetchurl {
+        name = "jsbn-0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
+        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+      };
+    }
+
+    {
+      name = "json-parse-better-errors-1.0.2.tgz";
+      path = fetchurl {
+        name = "json-parse-better-errors-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+        sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
+      };
+    }
+
+    {
+      name = "json-schema-ref-parser-6.0.2.tgz";
+      path = fetchurl {
+        name = "json-schema-ref-parser-6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-6.0.2.tgz";
+        sha1 = "c17bfed06fa7ff8f1ade36067d087b46f5465ef8";
+      };
+    }
+
+    {
+      name = "json-schema-traverse-0.4.1.tgz";
+      path = fetchurl {
+        name = "json-schema-traverse-0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+        sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+      };
+    }
+
+    {
+      name = "json-schema-0.2.3.tgz";
+      path = fetchurl {
+        name = "json-schema-0.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
+        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+      };
+    }
+
+    {
+      name = "json-stable-stringify-1.0.1.tgz";
+      path = fetchurl {
+        name = "json-stable-stringify-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz";
+        sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af";
+      };
+    }
+
+    {
+      name = "json-stringify-safe-5.0.1.tgz";
+      path = fetchurl {
+        name = "json-stringify-safe-5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+      };
+    }
+
+    {
+      name = "json3-3.3.2.tgz";
+      path = fetchurl {
+        name = "json3-3.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz";
+        sha1 = "3c0434743df93e2f5c42aee7b19bcb483575f4e1";
+      };
+    }
+
+    {
+      name = "json5-1.0.1.tgz";
+      path = fetchurl {
+        name = "json5-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
+        sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
+      };
+    }
+
+    {
+      name = "jsonfile-3.0.1.tgz";
+      path = fetchurl {
+        name = "jsonfile-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz";
+        sha1 = "a5ecc6f65f53f662c4415c7675a0331d0992ec66";
+      };
+    }
+
+    {
+      name = "jsonfile-4.0.0.tgz";
+      path = fetchurl {
+        name = "jsonfile-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
+        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+      };
+    }
+
+    {
+      name = "jsonify-0.0.0.tgz";
+      path = fetchurl {
+        name = "jsonify-0.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz";
+        sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+      };
+    }
+
+    {
+      name = "jsonld-signatures";
+      path = fetchurl {
+        name = "jsonld-signatures";
+        url  = "https://github.com/Chocobozzz/jsonld-signatures/archive/77660963e722eb4541d2d255f9d9d4216329665f.tar.gz";
+        sha256 = "0prld6q913bsh6kyfq43ny7cw5s1ixki5d4z1kw932shw9piqv5m";
+      };
+    }
+
+    {
+      name = "jsonld-0.5.21.tgz";
+      path = fetchurl {
+        name = "jsonld-0.5.21.tgz";
+        url  = "https://registry.yarnpkg.com/jsonld/-/jsonld-0.5.21.tgz";
+        sha1 = "4d5b78d717eb92bcd1ac9d88e34efad95370c0bf";
+      };
+    }
+
+    {
+      name = "jsonld-1.1.0.tgz";
+      path = fetchurl {
+        name = "jsonld-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonld/-/jsonld-1.1.0.tgz";
+        sha1 = "afcb168c44557a7bddead4d4513c3cbcae3bc5b9";
+      };
+    }
+
+    {
+      name = "jsonparse-1.3.1.tgz";
+      path = fetchurl {
+        name = "jsonparse-1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz";
+        sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
+      };
+    }
+
+    {
+      name = "jsonpointer.js-0.4.0.tgz";
+      path = fetchurl {
+        name = "jsonpointer.js-0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonpointer.js/-/jsonpointer.js-0.4.0.tgz";
+        sha1 = "002cb123f767aafdeb0196132ce5c4f9941ccaba";
+      };
+    }
+
+    {
+      name = "jsonpointer-4.0.1.tgz";
+      path = fetchurl {
+        name = "jsonpointer-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz";
+        sha1 = "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9";
+      };
+    }
+
+    {
+      name = "jsonschema-draft4-1.0.0.tgz";
+      path = fetchurl {
+        name = "jsonschema-draft4-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsonschema-draft4/-/jsonschema-draft4-1.0.0.tgz";
+        sha1 = "f0af2005054f0f0ade7ea2118614b69dc512d865";
+      };
+    }
+
+    {
+      name = "jsonschema-1.2.4.tgz";
+      path = fetchurl {
+        name = "jsonschema-1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.4.tgz";
+        sha1 = "a46bac5d3506a254465bc548876e267c6d0d6464";
+      };
+    }
+
+    {
+      name = "jsprim-1.4.1.tgz";
+      path = fetchurl {
+        name = "jsprim-1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
+        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+      };
+    }
+
+    {
+      name = "junk-2.1.0.tgz";
+      path = fetchurl {
+        name = "junk-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/junk/-/junk-2.1.0.tgz";
+        sha1 = "f431b4b7f072dc500a5f10ce7f4ec71930e70134";
+      };
+    }
+
+    {
+      name = "jwa-1.1.6.tgz";
+      path = fetchurl {
+        name = "jwa-1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/jwa/-/jwa-1.1.6.tgz";
+        sha1 = "87240e76c9808dbde18783cf2264ef4929ee50e6";
+      };
+    }
+
+    {
+      name = "jws-3.1.5.tgz";
+      path = fetchurl {
+        name = "jws-3.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/jws/-/jws-3.1.5.tgz";
+        sha1 = "80d12d05b293d1e841e7cb8b4e69e561adcf834f";
+      };
+    }
+
+    {
+      name = "k-bucket-4.0.1.tgz";
+      path = fetchurl {
+        name = "k-bucket-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/k-bucket/-/k-bucket-4.0.1.tgz";
+        sha1 = "3fc2e5693f0b7bff90d7b6b476edd6087955d542";
+      };
+    }
+
+    {
+      name = "k-bucket-5.0.0.tgz";
+      path = fetchurl {
+        name = "k-bucket-5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/k-bucket/-/k-bucket-5.0.0.tgz";
+        sha1 = "ef7a401fcd4c37cd31dceaa6ae4440ca91055e01";
+      };
+    }
+
+    {
+      name = "k-rpc-socket-1.8.0.tgz";
+      path = fetchurl {
+        name = "k-rpc-socket-1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/k-rpc-socket/-/k-rpc-socket-1.8.0.tgz";
+        sha1 = "9a4dd6a4f3795ed847ffa156579cc389990bd1f2";
+      };
+    }
+
+    {
+      name = "k-rpc-5.0.0.tgz";
+      path = fetchurl {
+        name = "k-rpc-5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/k-rpc/-/k-rpc-5.0.0.tgz";
+        sha1 = "a72651860c96db440579e4c9f38dce8a42b481a8";
+      };
+    }
+
+    {
+      name = "kind-of-3.2.2.tgz";
+      path = fetchurl {
+        name = "kind-of-3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
+        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+      };
+    }
+
+    {
+      name = "kind-of-4.0.0.tgz";
+      path = fetchurl {
+        name = "kind-of-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
+        sha1 = "20813df3d712928b207378691a45066fae72dd57";
+      };
+    }
+
+    {
+      name = "kind-of-5.1.0.tgz";
+      path = fetchurl {
+        name = "kind-of-5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
+        sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
+      };
+    }
+
+    {
+      name = "kind-of-6.0.2.tgz";
+      path = fetchurl {
+        name = "kind-of-6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz";
+        sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051";
+      };
+    }
+
+    {
+      name = "known-css-properties-0.3.0.tgz";
+      path = fetchurl {
+        name = "known-css-properties-0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.3.0.tgz";
+        sha1 = "a3d135bbfc60ee8c6eacf2f7e7e6f2d4755e49a4";
+      };
+    }
+
+    {
+      name = "kuler-1.0.1.tgz";
+      path = fetchurl {
+        name = "kuler-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz";
+        sha1 = "ef7c784f36c9fb6e16dd3150d152677b2b0228a6";
+      };
+    }
+
+    {
+      name = "last-one-wins-1.0.4.tgz";
+      path = fetchurl {
+        name = "last-one-wins-1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/last-one-wins/-/last-one-wins-1.0.4.tgz";
+        sha1 = "c1bfd0cbcb46790ec9156b8d1aee8fcb86cda22a";
+      };
+    }
+
+    {
+      name = "latest-version-3.1.0.tgz";
+      path = fetchurl {
+        name = "latest-version-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz";
+        sha1 = "a205383fea322b33b5ae3b18abee0dc2f356ee15";
+      };
+    }
+
+    {
+      name = "lazy-property-1.0.0.tgz";
+      path = fetchurl {
+        name = "lazy-property-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lazy-property/-/lazy-property-1.0.0.tgz";
+        sha1 = "84ddc4b370679ba8bd4cdcfa4c06b43d57111147";
+      };
+    }
+
+    {
+      name = "lcid-1.0.0.tgz";
+      path = fetchurl {
+        name = "lcid-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz";
+        sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
+      };
+    }
+
+    {
+      name = "lcid-2.0.0.tgz";
+      path = fetchurl {
+        name = "lcid-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
+        sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
+      };
+    }
+
+    {
+      name = "ldap-filter-0.2.2.tgz";
+      path = fetchurl {
+        name = "ldap-filter-0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.2.2.tgz";
+        sha1 = "f2b842be0b86da3352798505b31ebcae590d77d0";
+      };
+    }
+
+    {
+      name = "ldapjs-1.0.2.tgz";
+      path = fetchurl {
+        name = "ldapjs-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/ldapjs/-/ldapjs-1.0.2.tgz";
+        sha1 = "544ff7032b7b83c68f0701328d9297aa694340f9";
+      };
+    }
+
+    {
+      name = "leven-2.1.0.tgz";
+      path = fetchurl {
+        name = "leven-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz";
+        sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
+      };
+    }
+
+    {
+      name = "levn-0.3.0.tgz";
+      path = fetchurl {
+        name = "levn-0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
+        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+      };
+    }
+
+    {
+      name = "libcipm-2.0.2.tgz";
+      path = fetchurl {
+        name = "libcipm-2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/libcipm/-/libcipm-2.0.2.tgz";
+        sha1 = "4f38c2b37acf2ec156936cef1cbf74636568fc7b";
+      };
+    }
+
+    {
+      name = "libnpmhook-4.0.1.tgz";
+      path = fetchurl {
+        name = "libnpmhook-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-4.0.1.tgz";
+        sha1 = "63641654de772cbeb96a88527a7fd5456ec3c2d7";
+      };
+    }
+
+    {
+      name = "libnpx-10.2.0.tgz";
+      path = fetchurl {
+        name = "libnpx-10.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/libnpx/-/libnpx-10.2.0.tgz";
+        sha1 = "1bf4a1c9f36081f64935eb014041da10855e3102";
+      };
+    }
+
+    {
+      name = "libxmljs-0.19.5.tgz";
+      path = fetchurl {
+        name = "libxmljs-0.19.5.tgz";
+        url  = "https://registry.yarnpkg.com/libxmljs/-/libxmljs-0.19.5.tgz";
+        sha1 = "b2f34cc12fd6a3e43670c604c42a902f339ea54d";
+      };
+    }
+
+    {
+      name = "lint-staged-8.1.0.tgz";
+      path = fetchurl {
+        name = "lint-staged-8.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.0.tgz";
+        sha1 = "dbc3ae2565366d8f20efb9f9799d076da64863f2";
+      };
+    }
+
+    {
+      name = "listr-silent-renderer-1.1.1.tgz";
+      path = fetchurl {
+        name = "listr-silent-renderer-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz";
+        sha1 = "924b5a3757153770bf1a8e3fbf74b8bbf3f9242e";
+      };
+    }
+
+    {
+      name = "listr-update-renderer-0.5.0.tgz";
+      path = fetchurl {
+        name = "listr-update-renderer-0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz";
+        sha1 = "4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2";
+      };
+    }
+
+    {
+      name = "listr-verbose-renderer-0.5.0.tgz";
+      path = fetchurl {
+        name = "listr-verbose-renderer-0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz";
+        sha1 = "f1132167535ea4c1261102b9f28dac7cba1e03db";
+      };
+    }
+
+    {
+      name = "listr-0.14.3.tgz";
+      path = fetchurl {
+        name = "listr-0.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz";
+        sha1 = "2fea909604e434be464c50bddba0d496928fa586";
+      };
+    }
+
+    {
+      name = "load-ip-set-2.1.0.tgz";
+      path = fetchurl {
+        name = "load-ip-set-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/load-ip-set/-/load-ip-set-2.1.0.tgz";
+        sha1 = "2d50b737cae41de4e413d213991d4083a3e1784b";
+      };
+    }
+
+    {
+      name = "locate-path-2.0.0.tgz";
+      path = fetchurl {
+        name = "locate-path-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz";
+        sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+      };
+    }
+
+    {
+      name = "locate-path-3.0.0.tgz";
+      path = fetchurl {
+        name = "locate-path-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
+        sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
+      };
+    }
+
+    {
+      name = "lock-verify-2.0.2.tgz";
+      path = fetchurl {
+        name = "lock-verify-2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/lock-verify/-/lock-verify-2.0.2.tgz";
+        sha1 = "148e4f85974915c9e3c34d694b7de9ecb18ee7a8";
+      };
+    }
+
+    {
+      name = "lockfile-1.0.4.tgz";
+      path = fetchurl {
+        name = "lockfile-1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz";
+        sha1 = "07f819d25ae48f87e538e6578b6964a4981a5609";
+      };
+    }
+
+    {
+      name = "lodash._baseuniq-4.6.0.tgz";
+      path = fetchurl {
+        name = "lodash._baseuniq-4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz";
+        sha1 = "0ebb44e456814af7905c6212fa2c9b2d51b841e8";
+      };
+    }
+
+    {
+      name = "lodash._createset-4.0.3.tgz";
+      path = fetchurl {
+        name = "lodash._createset-4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz";
+        sha1 = "0f4659fbb09d75194fa9e2b88a6644d363c9fe26";
+      };
+    }
+
+    {
+      name = "lodash._root-3.0.1.tgz";
+      path = fetchurl {
+        name = "lodash._root-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz";
+        sha1 = "fba1c4524c19ee9a5f8136b4609f017cf4ded692";
+      };
+    }
+
+    {
+      name = "lodash.assign-4.2.0.tgz";
+      path = fetchurl {
+        name = "lodash.assign-4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz";
+        sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7";
+      };
+    }
+
+    {
+      name = "lodash.bind-4.2.1.tgz";
+      path = fetchurl {
+        name = "lodash.bind-4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz";
+        sha1 = "7ae3017e939622ac31b7d7d7dcb1b34db1690d35";
+      };
+    }
+
+    {
+      name = "lodash.capitalize-4.2.1.tgz";
+      path = fetchurl {
+        name = "lodash.capitalize-4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz";
+        sha1 = "f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9";
+      };
+    }
+
+    {
+      name = "lodash.clone-4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.clone-4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz";
+        sha1 = "195870450f5a13192478df4bc3d23d2dea1907b6";
+      };
+    }
+
+    {
+      name = "lodash.clonedeep-4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.clonedeep-4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+      };
+    }
+
+    {
+      name = "lodash.debounce-4.0.8.tgz";
+      path = fetchurl {
+        name = "lodash.debounce-4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz";
+        sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
+      };
+    }
+
+    {
+      name = "lodash.defaults-4.2.0.tgz";
+      path = fetchurl {
+        name = "lodash.defaults-4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz";
+        sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c";
+      };
+    }
+
+    {
+      name = "lodash.difference-4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.difference-4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz";
+        sha1 = "9ccb4e505d486b91651345772885a2df27fd017c";
+      };
+    }
+
+    {
+      name = "lodash.flatten-4.4.0.tgz";
+      path = fetchurl {
+        name = "lodash.flatten-4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
+        sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
+      };
+    }
+
+    {
+      name = "lodash.foreach-4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.foreach-4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz";
+        sha1 = "1a6a35eace401280c7f06dddec35165ab27e3e53";
+      };
+    }
+
+    {
+      name = "lodash.get-4.4.2.tgz";
+      path = fetchurl {
+        name = "lodash.get-4.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz";
+        sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
+      };
+    }
+
+    {
+      name = "lodash.isempty-4.4.0.tgz";
+      path = fetchurl {
+        name = "lodash.isempty-4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz";
+        sha1 = "6f86cbedd8be4ec987be9aaf33c9684db1b31e7e";
+      };
+    }
+
+    {
+      name = "lodash.isequal-4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.isequal-4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz";
+        sha1 = "415c4478f2bcc30120c22ce10ed3226f7d3e18e0";
+      };
+    }
+
+    {
+      name = "lodash.kebabcase-4.1.1.tgz";
+      path = fetchurl {
+        name = "lodash.kebabcase-4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz";
+        sha1 = "8489b1cb0d29ff88195cceca448ff6d6cc295c36";
+      };
+    }
+
+    {
+      name = "lodash.keys-4.2.0.tgz";
+      path = fetchurl {
+        name = "lodash.keys-4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz";
+        sha1 = "a08602ac12e4fb83f91fc1fb7a360a4d9ba35205";
+      };
+    }
+
+    {
+      name = "lodash.noop-3.0.1.tgz";
+      path = fetchurl {
+        name = "lodash.noop-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz";
+        sha1 = "38188f4d650a3a474258439b96ec45b32617133c";
+      };
+    }
+
+    {
+      name = "lodash.partial-4.2.1.tgz";
+      path = fetchurl {
+        name = "lodash.partial-4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.partial/-/lodash.partial-4.2.1.tgz";
+        sha1 = "49f3d8cfdaa3bff8b3a91d127e923245418961d4";
+      };
+    }
+
+    {
+      name = "lodash.pick-4.4.0.tgz";
+      path = fetchurl {
+        name = "lodash.pick-4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz";
+        sha1 = "52f05610fff9ded422611441ed1fc123a03001b3";
+      };
+    }
+
+    {
+      name = "lodash.sample-4.2.1.tgz";
+      path = fetchurl {
+        name = "lodash.sample-4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.sample/-/lodash.sample-4.2.1.tgz";
+        sha1 = "5e4291b0c753fa1abeb0aab8fb29df1b66f07f6d";
+      };
+    }
+
+    {
+      name = "lodash.shuffle-4.2.0.tgz";
+      path = fetchurl {
+        name = "lodash.shuffle-4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-4.2.0.tgz";
+        sha1 = "145b5053cf875f6f5c2a33f48b6e9948c6ec7b4b";
+      };
+    }
+
+    {
+      name = "lodash.union-4.6.0.tgz";
+      path = fetchurl {
+        name = "lodash.union-4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz";
+        sha1 = "48bb5088409f16f1821666641c44dd1aaae3cd88";
+      };
+    }
+
+    {
+      name = "lodash.uniq-4.5.0.tgz";
+      path = fetchurl {
+        name = "lodash.uniq-4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+        sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+      };
+    }
+
+    {
+      name = "lodash.values-4.3.0.tgz";
+      path = fetchurl {
+        name = "lodash.values-4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz";
+        sha1 = "a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347";
+      };
+    }
+
+    {
+      name = "lodash.without-4.4.0.tgz";
+      path = fetchurl {
+        name = "lodash.without-4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz";
+        sha1 = "3cd4574a00b67bae373a94b748772640507b7aac";
+      };
+    }
+
+    {
+      name = "lodash-4.17.4.tgz";
+      path = fetchurl {
+        name = "lodash-4.17.4.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz";
+        sha1 = "78203a4d1c328ae1d86dca6460e369b57f4055ae";
+      };
+    }
+
+    {
+      name = "lodash-3.10.1.tgz";
+      path = fetchurl {
+        name = "lodash-3.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz";
+        sha1 = "5bf45e8e49ba4189e17d482789dfd15bd140b7b6";
+      };
+    }
+
+    {
+      name = "lodash-4.17.11.tgz";
+      path = fetchurl {
+        name = "lodash-4.17.11.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz";
+        sha1 = "b39ea6229ef607ecd89e2c8df12536891cac9b8d";
+      };
+    }
+
+    {
+      name = "log-symbols-1.0.2.tgz";
+      path = fetchurl {
+        name = "log-symbols-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz";
+        sha1 = "376ff7b58ea3086a0f09facc74617eca501e1a18";
+      };
+    }
+
+    {
+      name = "log-symbols-2.2.0.tgz";
+      path = fetchurl {
+        name = "log-symbols-2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz";
+        sha1 = "5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a";
+      };
+    }
+
+    {
+      name = "log-update-2.3.0.tgz";
+      path = fetchurl {
+        name = "log-update-2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz";
+        sha1 = "88328fd7d1ce7938b29283746f0b1bc126b24708";
+      };
+    }
+
+    {
+      name = "logform-1.10.0.tgz";
+      path = fetchurl {
+        name = "logform-1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/logform/-/logform-1.10.0.tgz";
+        sha1 = "c9d5598714c92b546e23f4e78147c40f1e02012e";
+      };
+    }
+
+    {
+      name = "lowercase-keys-1.0.1.tgz";
+      path = fetchurl {
+        name = "lowercase-keys-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
+        sha1 = "6f9e30b47084d971a7c820ff15a6c5167b74c26f";
+      };
+    }
+
+    {
+      name = "lru-cache-4.1.5.tgz";
+      path = fetchurl {
+        name = "lru-cache-4.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz";
+        sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd";
+      };
+    }
+
+    {
+      name = "lru-queue-0.1.0.tgz";
+      path = fetchurl {
+        name = "lru-queue-0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz";
+        sha1 = "2738bd9f0d3cf4f84490c5736c48699ac632cda3";
+      };
+    }
+
+    {
+      name = "lru-3.1.0.tgz";
+      path = fetchurl {
+        name = "lru-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/lru/-/lru-3.1.0.tgz";
+        sha1 = "ea7fb8546d83733396a13091d76cfeb4c06837d5";
+      };
+    }
+
+    {
+      name = "magnet-uri-5.2.4.tgz";
+      path = fetchurl {
+        name = "magnet-uri-5.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/magnet-uri/-/magnet-uri-5.2.4.tgz";
+        sha1 = "7afe5b736af04445aff744c93a890a3710077688";
+      };
+    }
+
+    {
+      name = "maildev-1.0.0-rc3.tgz";
+      path = fetchurl {
+        name = "maildev-1.0.0-rc3.tgz";
+        url  = "https://registry.yarnpkg.com/maildev/-/maildev-1.0.0-rc3.tgz";
+        sha1 = "89429d47b07633e3269a74e484991eecdf3a3857";
+      };
+    }
+
+    {
+      name = "mailparser-0.6.2.tgz";
+      path = fetchurl {
+        name = "mailparser-0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/mailparser/-/mailparser-0.6.2.tgz";
+        sha1 = "03c486039bdf4df6cd3b6adcaaac4107dfdbc068";
+      };
+    }
+
+    {
+      name = "make-dir-1.3.0.tgz";
+      path = fetchurl {
+        name = "make-dir-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz";
+        sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c";
+      };
+    }
+
+    {
+      name = "make-error-1.3.5.tgz";
+      path = fetchurl {
+        name = "make-error-1.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz";
+        sha1 = "efe4e81f6db28cadd605c70f29c831b58ef776c8";
+      };
+    }
+
+    {
+      name = "make-fetch-happen-4.0.1.tgz";
+      path = fetchurl {
+        name = "make-fetch-happen-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz";
+        sha1 = "141497cb878f243ba93136c83d8aba12c216c083";
+      };
+    }
+
+    {
+      name = "make-fetch-happen-3.0.0.tgz";
+      path = fetchurl {
+        name = "make-fetch-happen-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz";
+        sha1 = "7b661d2372fc4710ab5cc8e1fa3c290eea69a961";
+      };
+    }
+
+    {
+      name = "map-age-cleaner-0.1.3.tgz";
+      path = fetchurl {
+        name = "map-age-cleaner-0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
+        sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
+      };
+    }
+
+    {
+      name = "map-cache-0.2.2.tgz";
+      path = fetchurl {
+        name = "map-cache-0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
+        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+      };
+    }
+
+    {
+      name = "map-visit-1.0.0.tgz";
+      path = fetchurl {
+        name = "map-visit-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
+        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+      };
+    }
+
+    {
+      name = "marked-man-0.2.1.tgz";
+      path = fetchurl {
+        name = "marked-man-0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/marked-man/-/marked-man-0.2.1.tgz";
+        sha1 = "f259271481de3b507263489f5221b7c5acfd2383";
+      };
+    }
+
+    {
+      name = "marked-0.3.19.tgz";
+      path = fetchurl {
+        name = "marked-0.3.19.tgz";
+        url  = "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz";
+        sha1 = "5d47f709c4c9fc3c216b6d46127280f40b39d790";
+      };
+    }
+
+    {
+      name = "matcher-1.1.1.tgz";
+      path = fetchurl {
+        name = "matcher-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz";
+        sha1 = "51d8301e138f840982b338b116bb0c09af62c1c2";
+      };
+    }
+
+    {
+      name = "md5-2.2.1.tgz";
+      path = fetchurl {
+        name = "md5-2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz";
+        sha1 = "53ab38d5fe3c8891ba465329ea23fac0540126f9";
+      };
+    }
+
+    {
+      name = "meant-1.0.1.tgz";
+      path = fetchurl {
+        name = "meant-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz";
+        sha1 = "66044fea2f23230ec806fb515efea29c44d2115d";
+      };
+    }
+
+    {
+      name = "media-typer-0.3.0.tgz";
+      path = fetchurl {
+        name = "media-typer-0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
+        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+      };
+    }
+
+    {
+      name = "mediasource-2.2.2.tgz";
+      path = fetchurl {
+        name = "mediasource-2.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/mediasource/-/mediasource-2.2.2.tgz";
+        sha1 = "2fe826f14e51da97fa4bf87be7b808a0b11d3a4c";
+      };
+    }
+
+    {
+      name = "mem-1.1.0.tgz";
+      path = fetchurl {
+        name = "mem-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz";
+        sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76";
+      };
+    }
+
+    {
+      name = "mem-4.0.0.tgz";
+      path = fetchurl {
+        name = "mem-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz";
+        sha1 = "6437690d9471678f6cc83659c00cbafcd6b0cdaf";
+      };
+    }
+
+    {
+      name = "memoizee-0.4.14.tgz";
+      path = fetchurl {
+        name = "memoizee-0.4.14.tgz";
+        url  = "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz";
+        sha1 = "07a00f204699f9a95c2d9e77218271c7cd610d57";
+      };
+    }
+
+    {
+      name = "memory-chunk-store-1.3.0.tgz";
+      path = fetchurl {
+        name = "memory-chunk-store-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/memory-chunk-store/-/memory-chunk-store-1.3.0.tgz";
+        sha1 = "ae99e7e3b58b52db43d49d94722930d39459d0c4";
+      };
+    }
+
+    {
+      name = "merge-descriptors-1.0.1.tgz";
+      path = fetchurl {
+        name = "merge-descriptors-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+      };
+    }
+
+    {
+      name = "merge-1.2.1.tgz";
+      path = fetchurl {
+        name = "merge-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz";
+        sha1 = "38bebf80c3220a8a487b6fcfb3941bb11720c145";
+      };
+    }
+
+    {
+      name = "methods-1.1.2.tgz";
+      path = fetchurl {
+        name = "methods-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
+        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+      };
+    }
+
+    {
+      name = "micromatch-3.1.10.tgz";
+      path = fetchurl {
+        name = "micromatch-3.1.10.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
+        sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
+      };
+    }
+
+    {
+      name = "mime-db-1.37.0.tgz";
+      path = fetchurl {
+        name = "mime-db-1.37.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz";
+        sha1 = "0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8";
+      };
+    }
+
+    {
+      name = "mime-types-2.1.21.tgz";
+      path = fetchurl {
+        name = "mime-types-2.1.21.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz";
+        sha1 = "28995aa1ecb770742fe6ae7e58f9181c744b3f96";
+      };
+    }
+
+    {
+      name = "mime-1.3.4.tgz";
+      path = fetchurl {
+        name = "mime-1.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz";
+        sha1 = "115f9e3b6b3daf2959983cb38f149a2d40eb5d53";
+      };
+    }
+
+    {
+      name = "mime-1.4.1.tgz";
+      path = fetchurl {
+        name = "mime-1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz";
+        sha1 = "121f9ebc49e3766f311a76e1fa1c8003c4b03aa6";
+      };
+    }
+
+    {
+      name = "mime-1.6.0.tgz";
+      path = fetchurl {
+        name = "mime-1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
+        sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+      };
+    }
+
+    {
+      name = "mime-2.4.0.tgz";
+      path = fetchurl {
+        name = "mime-2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz";
+        sha1 = "e051fd881358585f3279df333fe694da0bcffdd6";
+      };
+    }
+
+    {
+      name = "mimelib-0.3.1.tgz";
+      path = fetchurl {
+        name = "mimelib-0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/mimelib/-/mimelib-0.3.1.tgz";
+        sha1 = "787add2415d827acb3af6ec4bca1ea9596418853";
+      };
+    }
+
+    {
+      name = "mimic-fn-1.2.0.tgz";
+      path = fetchurl {
+        name = "mimic-fn-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
+        sha1 = "820c86a39334640e99516928bd03fca88057d022";
+      };
+    }
+
+    {
+      name = "mimic-response-1.0.1.tgz";
+      path = fetchurl {
+        name = "mimic-response-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz";
+        sha1 = "4923538878eef42063cb8a3e3b0798781487ab1b";
+      };
+    }
+
+    {
+      name = "minimalistic-assert-1.0.1.tgz";
+      path = fetchurl {
+        name = "minimalistic-assert-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
+        sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
+      };
+    }
+
+    {
+      name = "minimatch-3.0.4.tgz";
+      path = fetchurl {
+        name = "minimatch-3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+      };
+    }
+
+    {
+      name = "minimist-0.0.8.tgz";
+      path = fetchurl {
+        name = "minimist-0.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      };
+    }
+
+    {
+      name = "minimist-1.1.3.tgz";
+      path = fetchurl {
+        name = "minimist-1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz";
+        sha1 = "3bedfd91a92d39016fcfaa1c681e8faa1a1efda8";
+      };
+    }
+
+    {
+      name = "minimist-1.2.0.tgz";
+      path = fetchurl {
+        name = "minimist-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
+        sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+      };
+    }
+
+    {
+      name = "minipass-2.3.5.tgz";
+      path = fetchurl {
+        name = "minipass-2.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz";
+        sha1 = "cacebe492022497f656b0f0f51e2682a9ed2d848";
+      };
+    }
+
+    {
+      name = "minizlib-1.1.1.tgz";
+      path = fetchurl {
+        name = "minizlib-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.1.tgz";
+        sha1 = "6734acc045a46e61d596a43bb9d9cd326e19cc42";
+      };
+    }
+
+    {
+      name = "mississippi-2.0.0.tgz";
+      path = fetchurl {
+        name = "mississippi-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz";
+        sha1 = "3442a508fafc28500486feea99409676e4ee5a6f";
+      };
+    }
+
+    {
+      name = "mississippi-3.0.0.tgz";
+      path = fetchurl {
+        name = "mississippi-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz";
+        sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022";
+      };
+    }
+
+    {
+      name = "mixin-deep-1.3.1.tgz";
+      path = fetchurl {
+        name = "mixin-deep-1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz";
+        sha1 = "a49e7268dce1a0d9698e45326c5626df3543d0fe";
+      };
+    }
+
+    {
+      name = "mkdirp-0.5.1.tgz";
+      path = fetchurl {
+        name = "mkdirp-0.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
+        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+      };
+    }
+
+    {
+      name = "mocha-5.2.0.tgz";
+      path = fetchurl {
+        name = "mocha-5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz";
+        sha1 = "6d8ae508f59167f940f2b5b3c4a612ae50c90ae6";
+      };
+    }
+
+    {
+      name = "moment-timezone-0.5.23.tgz";
+      path = fetchurl {
+        name = "moment-timezone-0.5.23.tgz";
+        url  = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.23.tgz";
+        sha1 = "7cbb00db2c14c71b19303cb47b0fb0a6d8651463";
+      };
+    }
+
+    {
+      name = "moment-2.22.2.tgz";
+      path = fetchurl {
+        name = "moment-2.22.2.tgz";
+        url  = "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz";
+        sha1 = "3c257f9839fc0e93ff53149632239eb90783ff66";
+      };
+    }
+
+    {
+      name = "moment-2.24.0.tgz";
+      path = fetchurl {
+        name = "moment-2.24.0.tgz";
+        url  = "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz";
+        sha1 = "0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b";
+      };
+    }
+
+    {
+      name = "morgan-1.9.1.tgz";
+      path = fetchurl {
+        name = "morgan-1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz";
+        sha1 = "0a8d16734a1d9afbc824b99df87e738e58e2da59";
+      };
+    }
+
+    {
+      name = "move-concurrently-1.0.1.tgz";
+      path = fetchurl {
+        name = "move-concurrently-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz";
+        sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
+      };
+    }
+
+    {
+      name = "mp4-box-encoding-1.3.0.tgz";
+      path = fetchurl {
+        name = "mp4-box-encoding-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/mp4-box-encoding/-/mp4-box-encoding-1.3.0.tgz";
+        sha1 = "2a6f750947ff68c3a498fd76cd6424c53d995d48";
+      };
+    }
+
+    {
+      name = "mp4-stream-2.0.3.tgz";
+      path = fetchurl {
+        name = "mp4-stream-2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/mp4-stream/-/mp4-stream-2.0.3.tgz";
+        sha1 = "30acee07709d323f8dcd87a07b3ce9c3c4bfb364";
+      };
+    }
+
+    {
+      name = "ms-0.7.1.tgz";
+      path = fetchurl {
+        name = "ms-0.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz";
+        sha1 = "9cd13c03adbff25b65effde7ce864ee952017098";
+      };
+    }
+
+    {
+      name = "ms-0.7.2.tgz";
+      path = fetchurl {
+        name = "ms-0.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz";
+        sha1 = "ae25cf2512b3885a1d95d7f037868d8431124765";
+      };
+    }
+
+    {
+      name = "ms-2.0.0.tgz";
+      path = fetchurl {
+        name = "ms-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    }
+
+    {
+      name = "ms-2.1.1.tgz";
+      path = fetchurl {
+        name = "ms-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
+        sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
+      };
+    }
+
+    {
+      name = "multer-1.4.1.tgz";
+      path = fetchurl {
+        name = "multer-1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/multer/-/multer-1.4.1.tgz";
+        sha1 = "24b12a416a22fec2ade810539184bf138720159e";
+      };
+    }
+
+    {
+      name = "multistream-2.1.1.tgz";
+      path = fetchurl {
+        name = "multistream-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/multistream/-/multistream-2.1.1.tgz";
+        sha1 = "629d3a29bd76623489980d04519a2c365948148c";
+      };
+    }
+
+    {
+      name = "mute-stream-0.0.5.tgz";
+      path = fetchurl {
+        name = "mute-stream-0.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz";
+        sha1 = "8fbfabb0a98a253d3184331f9e8deb7372fac6c0";
+      };
+    }
+
+    {
+      name = "mute-stream-0.0.7.tgz";
+      path = fetchurl {
+        name = "mute-stream-0.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
+        sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
+      };
+    }
+
+    {
+      name = "mv-2.1.1.tgz";
+      path = fetchurl {
+        name = "mv-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz";
+        sha1 = "ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2";
+      };
+    }
+
+    {
+      name = "nan-2.11.1.tgz";
+      path = fetchurl {
+        name = "nan-2.11.1.tgz";
+        url  = "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz";
+        sha1 = "90e22bccb8ca57ea4cd37cc83d3819b52eea6766";
+      };
+    }
+
+    {
+      name = "nan-2.10.0.tgz";
+      path = fetchurl {
+        name = "nan-2.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz";
+        sha1 = "96d0cd610ebd58d4b4de9cc0c6828cda99c7548f";
+      };
+    }
+
+    {
+      name = "nanomatch-1.2.13.tgz";
+      path = fetchurl {
+        name = "nanomatch-1.2.13.tgz";
+        url  = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
+        sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
+      };
+    }
+
+    {
+      name = "napi-build-utils-1.0.1.tgz";
+      path = fetchurl {
+        name = "napi-build-utils-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.1.tgz";
+        sha1 = "1381a0f92c39d66bf19852e7873432fc2123e508";
+      };
+    }
+
+    {
+      name = "ncp-1.0.1.tgz";
+      path = fetchurl {
+        name = "ncp-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ncp/-/ncp-1.0.1.tgz";
+        sha1 = "d15367e5cb87432ba117d2bf80fdf45aecfb4246";
+      };
+    }
+
+    {
+      name = "ncp-2.0.0.tgz";
+      path = fetchurl {
+        name = "ncp-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz";
+        sha1 = "195a21d6c46e361d2fb1281ba38b91e9df7bdbb3";
+      };
+    }
+
+    {
+      name = "needle-2.2.4.tgz";
+      path = fetchurl {
+        name = "needle-2.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz";
+        sha1 = "51931bff82533b1928b7d1d69e01f1b00ffd2a4e";
+      };
+    }
+
+    {
+      name = "negotiator-0.5.3.tgz";
+      path = fetchurl {
+        name = "negotiator-0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.5.3.tgz";
+        sha1 = "269d5c476810ec92edbe7b6c2f28316384f9a7e8";
+      };
+    }
+
+    {
+      name = "negotiator-0.6.1.tgz";
+      path = fetchurl {
+        name = "negotiator-0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz";
+        sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9";
+      };
+    }
+
+    {
+      name = "netmask-1.0.6.tgz";
+      path = fetchurl {
+        name = "netmask-1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz";
+        sha1 = "20297e89d86f6f6400f250d9f4f6b4c1945fcd35";
+      };
+    }
+
+    {
+      name = "netrc-parser-3.1.6.tgz";
+      path = fetchurl {
+        name = "netrc-parser-3.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/netrc-parser/-/netrc-parser-3.1.6.tgz";
+        sha1 = "7243c9ec850b8e805b9bdc7eae7b1450d4a96e72";
+      };
+    }
+
+    {
+      name = "next-event-1.0.0.tgz";
+      path = fetchurl {
+        name = "next-event-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/next-event/-/next-event-1.0.0.tgz";
+        sha1 = "e7778acde2e55802e0ad1879c39cf6f75eda61d8";
+      };
+    }
+
+    {
+      name = "next-tick-1.0.0.tgz";
+      path = fetchurl {
+        name = "next-tick-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz";
+        sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
+      };
+    }
+
+    {
+      name = "nice-try-1.0.5.tgz";
+      path = fetchurl {
+        name = "nice-try-1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
+        sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
+      };
+    }
+
+    {
+      name = "nocache-2.0.0.tgz";
+      path = fetchurl {
+        name = "nocache-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/nocache/-/nocache-2.0.0.tgz";
+        sha1 = "202b48021a0c4cbde2df80de15a17443c8b43980";
+      };
+    }
+
+    {
+      name = "node-abi-2.5.0.tgz";
+      path = fetchurl {
+        name = "node-abi-2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-abi/-/node-abi-2.5.0.tgz";
+        sha1 = "942e1a78bce764bc0c1672d5821e492b9d032052";
+      };
+    }
+
+    {
+      name = "node-addon-api-1.6.2.tgz";
+      path = fetchurl {
+        name = "node-addon-api-1.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.6.2.tgz";
+        sha1 = "d8aad9781a5cfc4132cc2fecdbdd982534265217";
+      };
+    }
+
+    {
+      name = "node-fetch-npm-2.0.2.tgz";
+      path = fetchurl {
+        name = "node-fetch-npm-2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz";
+        sha1 = "7258c9046182dca345b4208eda918daf33697ff7";
+      };
+    }
+
+    {
+      name = "node-forge-0.7.6.tgz";
+      path = fetchurl {
+        name = "node-forge-0.7.6.tgz";
+        url  = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz";
+        sha1 = "fdf3b418aee1f94f0ef642cd63486c77ca9724ac";
+      };
+    }
+
+    {
+      name = "node-gyp-build-3.4.0.tgz";
+      path = fetchurl {
+        name = "node-gyp-build-3.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.4.0.tgz";
+        sha1 = "f8f62507e65f152488b28aac25d04b9d79748cf7";
+      };
+    }
+
+    {
+      name = "node-gyp-3.8.0.tgz";
+      path = fetchurl {
+        name = "node-gyp-3.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz";
+        sha1 = "540304261c330e80d0d5edce253a68cb3964218c";
+      };
+    }
+
+    {
+      name = "node-pre-gyp-0.11.0.tgz";
+      path = fetchurl {
+        name = "node-pre-gyp-0.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz";
+        sha1 = "db1f33215272f692cd38f03238e3e9b47c5dd054";
+      };
+    }
+
+    {
+      name = "node-pre-gyp-0.10.3.tgz";
+      path = fetchurl {
+        name = "node-pre-gyp-0.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz";
+        sha1 = "3070040716afdc778747b61b6887bf78880b80fc";
+      };
+    }
+
+    {
+      name = "nodemailer-fetch-1.3.0.tgz";
+      path = fetchurl {
+        name = "nodemailer-fetch-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.3.0.tgz";
+        sha1 = "9f37f6a5b80c1cb5d697ca2bfbde41a6582a50b0";
+      };
+    }
+
+    {
+      name = "nodemailer-fetch-1.6.0.tgz";
+      path = fetchurl {
+        name = "nodemailer-fetch-1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz";
+        sha1 = "79c4908a1c0f5f375b73fe888da9828f6dc963a4";
+      };
+    }
+
+    {
+      name = "nodemailer-shared-1.0.4.tgz";
+      path = fetchurl {
+        name = "nodemailer-shared-1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.0.4.tgz";
+        sha1 = "8b5c5c35bfb29a47dda7d38303f3a4fb47ba38ae";
+      };
+    }
+
+    {
+      name = "nodemailer-shared-1.1.0.tgz";
+      path = fetchurl {
+        name = "nodemailer-shared-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz";
+        sha1 = "cf5994e2fd268d00f5cf0fa767a08169edb07ec0";
+      };
+    }
+
+    {
+      name = "nodemailer-4.7.0.tgz";
+      path = fetchurl {
+        name = "nodemailer-4.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/nodemailer/-/nodemailer-4.7.0.tgz";
+        sha1 = "4420e06abfffd77d0618f184ea49047db84f4ad8";
+      };
+    }
+
+    {
+      name = "nodemon-1.18.7.tgz";
+      path = fetchurl {
+        name = "nodemon-1.18.7.tgz";
+        url  = "https://registry.yarnpkg.com/nodemon/-/nodemon-1.18.7.tgz";
+        sha1 = "716b66bf3e89ac4fcfb38a9e61887a03fc82efbb";
+      };
+    }
+
+    {
+      name = "noop-logger-0.1.1.tgz";
+      path = fetchurl {
+        name = "noop-logger-0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz";
+        sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
+      };
+    }
+
+    {
+      name = "nopt-3.0.6.tgz";
+      path = fetchurl {
+        name = "nopt-3.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz";
+        sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
+      };
+    }
+
+    {
+      name = "nopt-4.0.1.tgz";
+      path = fetchurl {
+        name = "nopt-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz";
+        sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
+      };
+    }
+
+    {
+      name = "nopt-1.0.10.tgz";
+      path = fetchurl {
+        name = "nopt-1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz";
+        sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
+      };
+    }
+
+    {
+      name = "normalize-package-data-2.4.0.tgz";
+      path = fetchurl {
+        name = "normalize-package-data-2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+        sha1 = "12f95a307d58352075a04907b84ac8be98ac012f";
+      };
+    }
+
+    {
+      name = "normalize-path-2.1.1.tgz";
+      path = fetchurl {
+        name = "normalize-path-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
+        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+      };
+    }
+
+    {
+      name = "npm-audit-report-1.3.1.tgz";
+      path = fetchurl {
+        name = "npm-audit-report-1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-1.3.1.tgz";
+        sha1 = "e79ea1fcb5ffaf3031102b389d5222c2b0459632";
+      };
+    }
+
+    {
+      name = "npm-bundled-1.0.5.tgz";
+      path = fetchurl {
+        name = "npm-bundled-1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz";
+        sha1 = "3c1732b7ba936b3a10325aef616467c0ccbcc979";
+      };
+    }
+
+    {
+      name = "npm-cache-filename-1.0.2.tgz";
+      path = fetchurl {
+        name = "npm-cache-filename-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz";
+        sha1 = "ded306c5b0bfc870a9e9faf823bc5f283e05ae11";
+      };
+    }
+
+    {
+      name = "npm-install-checks-3.0.0.tgz";
+      path = fetchurl {
+        name = "npm-install-checks-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-3.0.0.tgz";
+        sha1 = "d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7";
+      };
+    }
+
+    {
+      name = "npm-lifecycle-2.1.0.tgz";
+      path = fetchurl {
+        name = "npm-lifecycle-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-2.1.0.tgz";
+        sha1 = "1eda2eedb82db929e3a0c50341ab0aad140ed569";
+      };
+    }
+
+    {
+      name = "npm-logical-tree-1.2.1.tgz";
+      path = fetchurl {
+        name = "npm-logical-tree-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz";
+        sha1 = "44610141ca24664cad35d1e607176193fd8f5b88";
+      };
+    }
+
+    {
+      name = "npm-package-arg-6.1.0.tgz";
+      path = fetchurl {
+        name = "npm-package-arg-6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz";
+        sha1 = "15ae1e2758a5027efb4c250554b85a737db7fcc1";
+      };
+    }
+
+    {
+      name = "npm-packlist-1.1.12.tgz";
+      path = fetchurl {
+        name = "npm-packlist-1.1.12.tgz";
+        url  = "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz";
+        sha1 = "22bde2ebc12e72ca482abd67afc51eb49377243a";
+      };
+    }
+
+    {
+      name = "npm-path-2.0.4.tgz";
+      path = fetchurl {
+        name = "npm-path-2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz";
+        sha1 = "c641347a5ff9d6a09e4d9bce5580c4f505278e64";
+      };
+    }
+
+    {
+      name = "npm-pick-manifest-2.2.3.tgz";
+      path = fetchurl {
+        name = "npm-pick-manifest-2.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz";
+        sha1 = "32111d2a9562638bb2c8f2bf27f7f3092c8fae40";
+      };
+    }
+
+    {
+      name = "npm-profile-3.0.2.tgz";
+      path = fetchurl {
+        name = "npm-profile-3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/npm-profile/-/npm-profile-3.0.2.tgz";
+        sha1 = "58d568f1b56ef769602fd0aed8c43fa0e0de0f57";
+      };
+    }
+
+    {
+      name = "npm-registry-client-8.6.0.tgz";
+      path = fetchurl {
+        name = "npm-registry-client-8.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz";
+        sha1 = "7f1529f91450732e89f8518e0f21459deea3e4c4";
+      };
+    }
+
+    {
+      name = "npm-registry-fetch-1.1.1.tgz";
+      path = fetchurl {
+        name = "npm-registry-fetch-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-1.1.1.tgz";
+        sha1 = "710bc5947d9ee2c549375072dab6d5d17baf2eb2";
+      };
+    }
+
+    {
+      name = "npm-registry-fetch-3.8.0.tgz";
+      path = fetchurl {
+        name = "npm-registry-fetch-3.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-3.8.0.tgz";
+        sha1 = "aa7d9a7c92aff94f48dba0984bdef4bd131c88cc";
+      };
+    }
+
+    {
+      name = "npm-run-path-2.0.2.tgz";
+      path = fetchurl {
+        name = "npm-run-path-2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
+        sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+      };
+    }
+
+    {
+      name = "npm-user-validate-1.0.0.tgz";
+      path = fetchurl {
+        name = "npm-user-validate-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.0.tgz";
+        sha1 = "8ceca0f5cea04d4e93519ef72d0557a75122e951";
+      };
+    }
+
+    {
+      name = "npm-which-3.0.1.tgz";
+      path = fetchurl {
+        name = "npm-which-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz";
+        sha1 = "9225f26ec3a285c209cae67c3b11a6b4ab7140aa";
+      };
+    }
+
+    {
+      name = "npm-6.4.1.tgz";
+      path = fetchurl {
+        name = "npm-6.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/npm/-/npm-6.4.1.tgz";
+        sha1 = "4f39f9337b557a28faed4a771d5c8802d6b4288b";
+      };
+    }
+
+    {
+      name = "npmlog-4.1.2.tgz";
+      path = fetchurl {
+        name = "npmlog-4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
+        sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
+      };
+    }
+
+    {
+      name = "number-is-nan-1.0.1.tgz";
+      path = fetchurl {
+        name = "number-is-nan-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+      };
+    }
+
+    {
+      name = "oauth-sign-0.9.0.tgz";
+      path = fetchurl {
+        name = "oauth-sign-0.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
+        sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
+      };
+    }
+
+    {
+      name = "oauth2-server-3.0.0.tgz";
+      path = fetchurl {
+        name = "oauth2-server-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/oauth2-server/-/oauth2-server-3.0.0.tgz";
+        sha1 = "c46276b74c3d28634d59ee981f76b58a6459cc28";
+      };
+    }
+
+    {
+      name = "object-assign-4.1.0.tgz";
+      path = fetchurl {
+        name = "object-assign-4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz";
+        sha1 = "7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0";
+      };
+    }
+
+    {
+      name = "object-assign-4.1.1.tgz";
+      path = fetchurl {
+        name = "object-assign-4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    }
+
+    {
+      name = "object-component-0.0.3.tgz";
+      path = fetchurl {
+        name = "object-component-0.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz";
+        sha1 = "f0c69aa50efc95b866c186f400a33769cb2f1291";
+      };
+    }
+
+    {
+      name = "object-copy-0.1.0.tgz";
+      path = fetchurl {
+        name = "object-copy-0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
+        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+      };
+    }
+
+    {
+      name = "object-keys-1.0.12.tgz";
+      path = fetchurl {
+        name = "object-keys-1.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz";
+        sha1 = "09c53855377575310cca62f55bb334abff7b3ed2";
+      };
+    }
+
+    {
+      name = "object-visit-1.0.1.tgz";
+      path = fetchurl {
+        name = "object-visit-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
+        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+      };
+    }
+
+    {
+      name = "object.pick-1.3.0.tgz";
+      path = fetchurl {
+        name = "object.pick-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
+        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+      };
+    }
+
+    {
+      name = "on-finished-2.3.0.tgz";
+      path = fetchurl {
+        name = "on-finished-2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
+        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+      };
+    }
+
+    {
+      name = "on-headers-1.0.1.tgz";
+      path = fetchurl {
+        name = "on-headers-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz";
+        sha1 = "928f5d0f470d49342651ea6794b0857c100693f7";
+      };
+    }
+
+    {
+      name = "once-1.4.0.tgz";
+      path = fetchurl {
+        name = "once-1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    }
+
+    {
+      name = "one-time-0.0.4.tgz";
+      path = fetchurl {
+        name = "one-time-0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz";
+        sha1 = "f8cdf77884826fe4dff93e3a9cc37b1e4480742e";
+      };
+    }
+
+    {
+      name = "onetime-1.1.0.tgz";
+      path = fetchurl {
+        name = "onetime-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz";
+        sha1 = "a1f7838f8314c516f05ecefcbc4ccfe04b4ed789";
+      };
+    }
+
+    {
+      name = "onetime-2.0.1.tgz";
+      path = fetchurl {
+        name = "onetime-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
+        sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+      };
+    }
+
+    {
+      name = "ono-4.0.10.tgz";
+      path = fetchurl {
+        name = "ono-4.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/ono/-/ono-4.0.10.tgz";
+        sha1 = "f7f9c6d1b76270a499d8664c95a740d44175134c";
+      };
+    }
+
+    {
+      name = "open-0.0.5.tgz";
+      path = fetchurl {
+        name = "open-0.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz";
+        sha1 = "42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc";
+      };
+    }
+
+    {
+      name = "openapi-schema-validation-0.4.2.tgz";
+      path = fetchurl {
+        name = "openapi-schema-validation-0.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/openapi-schema-validation/-/openapi-schema-validation-0.4.2.tgz";
+        sha1 = "895c29021be02e000f71c51f859da52118eb1e21";
+      };
+    }
+
+    {
+      name = "opener-1.5.1.tgz";
+      path = fetchurl {
+        name = "opener-1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz";
+        sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed";
+      };
+    }
+
+    {
+      name = "optionator-0.8.2.tgz";
+      path = fetchurl {
+        name = "optionator-0.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz";
+        sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
+      };
+    }
+
+    {
+      name = "options-0.0.6.tgz";
+      path = fetchurl {
+        name = "options-0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz";
+        sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f";
+      };
+    }
+
+    {
+      name = "os-homedir-1.0.2.tgz";
+      path = fetchurl {
+        name = "os-homedir-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz";
+        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+      };
+    }
+
+    {
+      name = "os-locale-2.1.0.tgz";
+      path = fetchurl {
+        name = "os-locale-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz";
+        sha1 = "42bc2900a6b5b8bd17376c8e882b65afccf24bf2";
+      };
+    }
+
+    {
+      name = "os-locale-3.0.1.tgz";
+      path = fetchurl {
+        name = "os-locale-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz";
+        sha1 = "3b014fbf01d87f60a1e5348d80fe870dc82c4620";
+      };
+    }
+
+    {
+      name = "os-tmpdir-1.0.2.tgz";
+      path = fetchurl {
+        name = "os-tmpdir-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+      };
+    }
+
+    {
+      name = "osenv-0.1.5.tgz";
+      path = fetchurl {
+        name = "osenv-0.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz";
+        sha1 = "85cdfafaeb28e8677f416e287592b5f3f49ea410";
+      };
+    }
+
+    {
+      name = "p-defer-1.0.0.tgz";
+      path = fetchurl {
+        name = "p-defer-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
+        sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+      };
+    }
+
+    {
+      name = "p-finally-1.0.0.tgz";
+      path = fetchurl {
+        name = "p-finally-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
+        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+      };
+    }
+
+    {
+      name = "p-is-promise-1.1.0.tgz";
+      path = fetchurl {
+        name = "p-is-promise-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz";
+        sha1 = "9c9456989e9f6588017b0434d56097675c3da05e";
+      };
+    }
+
+    {
+      name = "p-limit-1.3.0.tgz";
+      path = fetchurl {
+        name = "p-limit-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz";
+        sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8";
+      };
+    }
+
+    {
+      name = "p-limit-2.0.0.tgz";
+      path = fetchurl {
+        name = "p-limit-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz";
+        sha1 = "e624ed54ee8c460a778b3c9f3670496ff8a57aec";
+      };
+    }
+
+    {
+      name = "p-locate-2.0.0.tgz";
+      path = fetchurl {
+        name = "p-locate-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz";
+        sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+      };
+    }
+
+    {
+      name = "p-locate-3.0.0.tgz";
+      path = fetchurl {
+        name = "p-locate-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
+        sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
+      };
+    }
+
+    {
+      name = "p-map-1.2.0.tgz";
+      path = fetchurl {
+        name = "p-map-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz";
+        sha1 = "e4e94f311eabbc8633a1e79908165fca26241b6b";
+      };
+    }
+
+    {
+      name = "p-map-2.0.0.tgz";
+      path = fetchurl {
+        name = "p-map-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz";
+        sha1 = "be18c5a5adeb8e156460651421aceca56c213a50";
+      };
+    }
+
+    {
+      name = "p-try-1.0.0.tgz";
+      path = fetchurl {
+        name = "p-try-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz";
+        sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+      };
+    }
+
+    {
+      name = "p-try-2.0.0.tgz";
+      path = fetchurl {
+        name = "p-try-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz";
+        sha1 = "85080bb87c64688fa47996fe8f7dfbe8211760b1";
+      };
+    }
+
+    {
+      name = "package-json-versionify-1.0.4.tgz";
+      path = fetchurl {
+        name = "package-json-versionify-1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/package-json-versionify/-/package-json-versionify-1.0.4.tgz";
+        sha1 = "5860587a944873a6b7e6d26e8e51ffb22315bf17";
+      };
+    }
+
+    {
+      name = "package-json-4.0.1.tgz";
+      path = fetchurl {
+        name = "package-json-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz";
+        sha1 = "8869a0401253661c4c4ca3da6c2121ed555f5eed";
+      };
+    }
+
+    {
+      name = "packet-reader-0.3.1.tgz";
+      path = fetchurl {
+        name = "packet-reader-0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/packet-reader/-/packet-reader-0.3.1.tgz";
+        sha1 = "cd62e60af8d7fea8a705ec4ff990871c46871f27";
+      };
+    }
+
+    {
+      name = "pacote-8.1.6.tgz";
+      path = fetchurl {
+        name = "pacote-8.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/pacote/-/pacote-8.1.6.tgz";
+        sha1 = "8e647564d38156367e7a9dc47a79ca1ab278d46e";
+      };
+    }
+
+    {
+      name = "parallel-transform-1.1.0.tgz";
+      path = fetchurl {
+        name = "parallel-transform-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz";
+        sha1 = "d410f065b05da23081fcd10f28854c29bda33b06";
+      };
+    }
+
+    {
+      name = "parse-json-4.0.0.tgz";
+      path = fetchurl {
+        name = "parse-json-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz";
+        sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+      };
+    }
+
+    {
+      name = "parse-numeric-range-0.0.2.tgz";
+      path = fetchurl {
+        name = "parse-numeric-range-0.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-0.0.2.tgz";
+        sha1 = "b4f09d413c7adbcd987f6e9233c7b4b210c938e4";
+      };
+    }
+
+    {
+      name = "parse-torrent-6.1.2.tgz";
+      path = fetchurl {
+        name = "parse-torrent-6.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/parse-torrent/-/parse-torrent-6.1.2.tgz";
+        sha1 = "99da5bdd23435a1cb7e8e7a63847c4efb21b1956";
+      };
+    }
+
+    {
+      name = "parsejson-0.0.3.tgz";
+      path = fetchurl {
+        name = "parsejson-0.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz";
+        sha1 = "ab7e3759f209ece99437973f7d0f1f64ae0e64ab";
+      };
+    }
+
+    {
+      name = "parseqs-0.0.5.tgz";
+      path = fetchurl {
+        name = "parseqs-0.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz";
+        sha1 = "d5208a3738e46766e291ba2ea173684921a8b89d";
+      };
+    }
+
+    {
+      name = "parseuri-0.0.5.tgz";
+      path = fetchurl {
+        name = "parseuri-0.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz";
+        sha1 = "80204a50d4dbb779bfdc6ebe2778d90e4bce320a";
+      };
+    }
+
+    {
+      name = "parseurl-1.3.2.tgz";
+      path = fetchurl {
+        name = "parseurl-1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz";
+        sha1 = "fc289d4ed8993119460c156253262cdc8de65bf3";
+      };
+    }
+
+    {
+      name = "pascalcase-0.1.1.tgz";
+      path = fetchurl {
+        name = "pascalcase-0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
+        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+      };
+    }
+
+    {
+      name = "password-generator-2.2.0.tgz";
+      path = fetchurl {
+        name = "password-generator-2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/password-generator/-/password-generator-2.2.0.tgz";
+        sha1 = "fc75cff795110923e054a5a71623433240bf5e49";
+      };
+    }
+
+    {
+      name = "path-dirname-1.0.2.tgz";
+      path = fetchurl {
+        name = "path-dirname-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz";
+        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+      };
+    }
+
+    {
+      name = "path-exists-3.0.0.tgz";
+      path = fetchurl {
+        name = "path-exists-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
+        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+      };
+    }
+
+    {
+      name = "path-is-absolute-1.0.1.tgz";
+      path = fetchurl {
+        name = "path-is-absolute-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    }
+
+    {
+      name = "path-is-inside-1.0.2.tgz";
+      path = fetchurl {
+        name = "path-is-inside-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz";
+        sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+      };
+    }
+
+    {
+      name = "path-key-2.0.1.tgz";
+      path = fetchurl {
+        name = "path-key-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
+        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+      };
+    }
+
+    {
+      name = "path-parse-1.0.6.tgz";
+      path = fetchurl {
+        name = "path-parse-1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
+        sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+      };
+    }
+
+    {
+      name = "path-to-regexp-0.1.7.tgz";
+      path = fetchurl {
+        name = "path-to-regexp-0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+      };
+    }
+
+    {
+      name = "pathval-1.1.0.tgz";
+      path = fetchurl {
+        name = "pathval-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz";
+        sha1 = "b942e6d4bde653005ef6b71361def8727d0645e0";
+      };
+    }
+
+    {
+      name = "peek-stream-1.1.3.tgz";
+      path = fetchurl {
+        name = "peek-stream-1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.3.tgz";
+        sha1 = "3b35d84b7ccbbd262fff31dc10da56856ead6d67";
+      };
+    }
+
+    {
+      name = "pem-1.13.2.tgz";
+      path = fetchurl {
+        name = "pem-1.13.2.tgz";
+        url  = "https://registry.yarnpkg.com/pem/-/pem-1.13.2.tgz";
+        sha1 = "7b68acbb590fdc13772bca487983cb84cd7b443e";
+      };
+    }
+
+    {
+      name = "performance-now-2.1.0.tgz";
+      path = fetchurl {
+        name = "performance-now-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
+        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+      };
+    }
+
+    {
+      name = "pfeed-1.1.6.tgz";
+      path = fetchurl {
+        name = "pfeed-1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/pfeed/-/pfeed-1.1.6.tgz";
+        sha1 = "0de2a1c40b116fa236227237fa264c7956c185e8";
+      };
+    }
+
+    {
+      name = "pg-connection-string-0.1.3.tgz";
+      path = fetchurl {
+        name = "pg-connection-string-0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz";
+        sha1 = "da1847b20940e42ee1492beaf65d49d91b245df7";
+      };
+    }
+
+    {
+      name = "pg-pool-2.0.4.tgz";
+      path = fetchurl {
+        name = "pg-pool-2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.4.tgz";
+        sha1 = "05ad0f2d9437d89c94ccc4f4d0a44ac65ade865b";
+      };
+    }
+
+    {
+      name = "pg-types-1.12.1.tgz";
+      path = fetchurl {
+        name = "pg-types-1.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/pg-types/-/pg-types-1.12.1.tgz";
+        sha1 = "d64087e3903b58ffaad279e7595c52208a14c3d2";
+      };
+    }
+
+    {
+      name = "pg-7.7.1.tgz";
+      path = fetchurl {
+        name = "pg-7.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/pg/-/pg-7.7.1.tgz";
+        sha1 = "546b192ff484322b69689391f885de3ba91a30d4";
+      };
+    }
+
+    {
+      name = "pgpass-1.0.2.tgz";
+      path = fetchurl {
+        name = "pgpass-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz";
+        sha1 = "2a7bb41b6065b67907e91da1b07c1847c877b306";
+      };
+    }
+
+    {
+      name = "piece-length-1.0.0.tgz";
+      path = fetchurl {
+        name = "piece-length-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/piece-length/-/piece-length-1.0.0.tgz";
+        sha1 = "4db7167157fd69fef14caf7262cd39f189b24508";
+      };
+    }
+
+    {
+      name = "pify-2.3.0.tgz";
+      path = fetchurl {
+        name = "pify-2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
+        sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+      };
+    }
+
+    {
+      name = "pify-3.0.0.tgz";
+      path = fetchurl {
+        name = "pify-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
+        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+      };
+    }
+
+    {
+      name = "pinkie-promise-2.0.1.tgz";
+      path = fetchurl {
+        name = "pinkie-promise-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
+        sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
+      };
+    }
+
+    {
+      name = "pinkie-2.0.4.tgz";
+      path = fetchurl {
+        name = "pinkie-2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
+        sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+      };
+    }
+
+    {
+      name = "pkg-dir-3.0.0.tgz";
+      path = fetchurl {
+        name = "pkg-dir-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz";
+        sha1 = "2749020f239ed990881b1f71210d51eb6523bea3";
+      };
+    }
+
+    {
+      name = "pkginfo-0.3.1.tgz";
+      path = fetchurl {
+        name = "pkginfo-0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz";
+        sha1 = "5b29f6a81f70717142e09e765bbeab97b4f81e21";
+      };
+    }
+
+    {
+      name = "pkginfo-0.4.1.tgz";
+      path = fetchurl {
+        name = "pkginfo-0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz";
+        sha1 = "b5418ef0439de5425fc4995042dced14fb2a84ff";
+      };
+    }
+
+    {
+      name = "platform-1.3.5.tgz";
+      path = fetchurl {
+        name = "platform-1.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz";
+        sha1 = "fb6958c696e07e2918d2eeda0f0bc9448d733444";
+      };
+    }
+
+    {
+      name = "please-upgrade-node-3.1.1.tgz";
+      path = fetchurl {
+        name = "please-upgrade-node-3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz";
+        sha1 = "ed320051dfcc5024fae696712c8288993595e8ac";
+      };
+    }
+
+    {
+      name = "pluralize-1.2.1.tgz";
+      path = fetchurl {
+        name = "pluralize-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz";
+        sha1 = "d1a21483fd22bb41e58a12fa3421823140897c45";
+      };
+    }
+
+    {
+      name = "posix-character-classes-0.1.1.tgz";
+      path = fetchurl {
+        name = "posix-character-classes-0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+      };
+    }
+
+    {
+      name = "postgres-array-1.0.3.tgz";
+      path = fetchurl {
+        name = "postgres-array-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-array/-/postgres-array-1.0.3.tgz";
+        sha1 = "c561fc3b266b21451fc6555384f4986d78ec80f5";
+      };
+    }
+
+    {
+      name = "postgres-bytea-1.0.0.tgz";
+      path = fetchurl {
+        name = "postgres-bytea-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+        sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+      };
+    }
+
+    {
+      name = "postgres-date-1.0.3.tgz";
+      path = fetchurl {
+        name = "postgres-date-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.3.tgz";
+        sha1 = "e2d89702efdb258ff9d9cee0fe91bd06975257a8";
+      };
+    }
+
+    {
+      name = "postgres-interval-1.1.2.tgz";
+      path = fetchurl {
+        name = "postgres-interval-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.1.2.tgz";
+        sha1 = "bf71ff902635f21cb241a013fc421d81d1db15a9";
+      };
+    }
+
+    {
+      name = "prebuild-install-5.2.2.tgz";
+      path = fetchurl {
+        name = "prebuild-install-5.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.2.2.tgz";
+        sha1 = "237888f21bfda441d0ee5f5612484390bccd4046";
+      };
+    }
+
+    {
+      name = "precond-0.2.3.tgz";
+      path = fetchurl {
+        name = "precond-0.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz";
+        sha1 = "aa9591bcaa24923f1e0f4849d240f47efc1075ac";
+      };
+    }
+
+    {
+      name = "prelude-ls-1.1.2.tgz";
+      path = fetchurl {
+        name = "prelude-ls-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
+        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+      };
+    }
+
+    {
+      name = "prepend-http-1.0.4.tgz";
+      path = fetchurl {
+        name = "prepend-http-1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz";
+        sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
+      };
+    }
+
+    {
+      name = "pretty-format-23.6.0.tgz";
+      path = fetchurl {
+        name = "pretty-format-23.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz";
+        sha1 = "5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760";
+      };
+    }
+
+    {
+      name = "process-nextick-args-2.0.0.tgz";
+      path = fetchurl {
+        name = "process-nextick-args-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz";
+        sha1 = "a37d732f4271b4ab1ad070d35508e8290788ffaa";
+      };
+    }
+
+    {
+      name = "progress-1.1.8.tgz";
+      path = fetchurl {
+        name = "progress-1.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz";
+        sha1 = "e260c78f6161cdd9b0e56cc3e0a85de17c7a57be";
+      };
+    }
+
+    {
+      name = "promise-inflight-1.0.1.tgz";
+      path = fetchurl {
+        name = "promise-inflight-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
+        sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
+      };
+    }
+
+    {
+      name = "promise-retry-1.1.1.tgz";
+      path = fetchurl {
+        name = "promise-retry-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz";
+        sha1 = "6739e968e3051da20ce6497fb2b50f6911df3d6d";
+      };
+    }
+
+    {
+      name = "promisify-any-2.0.1.tgz";
+      path = fetchurl {
+        name = "promisify-any-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/promisify-any/-/promisify-any-2.0.1.tgz";
+        sha1 = "403e00a8813f175242ab50fe33a69f8eece47305";
+      };
+    }
+
+    {
+      name = "prompt-1.0.0.tgz";
+      path = fetchurl {
+        name = "prompt-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/prompt/-/prompt-1.0.0.tgz";
+        sha1 = "8e57123c396ab988897fb327fd3aedc3e735e4fe";
+      };
+    }
+
+    {
+      name = "promzard-0.3.0.tgz";
+      path = fetchurl {
+        name = "promzard-0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz";
+        sha1 = "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee";
+      };
+    }
+
+    {
+      name = "proto-list-1.2.4.tgz";
+      path = fetchurl {
+        name = "proto-list-1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz";
+        sha1 = "212d5bfe1318306a420f6402b8e26ff39647a849";
+      };
+    }
+
+    {
+      name = "protoduck-5.0.1.tgz";
+      path = fetchurl {
+        name = "protoduck-5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz";
+        sha1 = "03c3659ca18007b69a50fd82a7ebcc516261151f";
+      };
+    }
+
+    {
+      name = "proxy-addr-1.0.10.tgz";
+      path = fetchurl {
+        name = "proxy-addr-1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.0.10.tgz";
+        sha1 = "0d40a82f801fc355567d2ecb65efe3f077f121c5";
+      };
+    }
+
+    {
+      name = "proxy-addr-2.0.4.tgz";
+      path = fetchurl {
+        name = "proxy-addr-2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz";
+        sha1 = "ecfc733bf22ff8c6f407fa275327b9ab67e48b93";
+      };
+    }
+
+    {
+      name = "prr-1.0.1.tgz";
+      path = fetchurl {
+        name = "prr-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
+        sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
+      };
+    }
+
+    {
+      name = "pseudomap-1.0.2.tgz";
+      path = fetchurl {
+        name = "pseudomap-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz";
+        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+      };
+    }
+
+    {
+      name = "psl-1.1.29.tgz";
+      path = fetchurl {
+        name = "psl-1.1.29.tgz";
+        url  = "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz";
+        sha1 = "60f580d360170bb722a797cc704411e6da850c67";
+      };
+    }
+
+    {
+      name = "pstree.remy-1.1.2.tgz";
+      path = fetchurl {
+        name = "pstree.remy-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.2.tgz";
+        sha1 = "4448bbeb4b2af1fed242afc8dc7416a6f504951a";
+      };
+    }
+
+    {
+      name = "pump-1.0.3.tgz";
+      path = fetchurl {
+        name = "pump-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz";
+        sha1 = "5dfe8311c33bbf6fc18261f9f34702c47c08a954";
+      };
+    }
+
+    {
+      name = "pump-2.0.1.tgz";
+      path = fetchurl {
+        name = "pump-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz";
+        sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909";
+      };
+    }
+
+    {
+      name = "pump-3.0.0.tgz";
+      path = fetchurl {
+        name = "pump-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
+        sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
+      };
+    }
+
+    {
+      name = "pumpify-1.5.1.tgz";
+      path = fetchurl {
+        name = "pumpify-1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz";
+        sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce";
+      };
+    }
+
+    {
+      name = "punycode-1.4.1.tgz";
+      path = fetchurl {
+        name = "punycode-1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+      };
+    }
+
+    {
+      name = "punycode-2.1.1.tgz";
+      path = fetchurl {
+        name = "punycode-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+        sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+      };
+    }
+
+    {
+      name = "qrcode-terminal-0.12.0.tgz";
+      path = fetchurl {
+        name = "qrcode-terminal-0.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz";
+        sha1 = "bb5b699ef7f9f0505092a3748be4464fe71b5819";
+      };
+    }
+
+    {
+      name = "qs-4.0.0.tgz";
+      path = fetchurl {
+        name = "qs-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz";
+        sha1 = "c31d9b74ec27df75e543a86c78728ed8d4623607";
+      };
+    }
+
+    {
+      name = "qs-6.5.2.tgz";
+      path = fetchurl {
+        name = "qs-6.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
+        sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+      };
+    }
+
+    {
+      name = "qs-6.6.0.tgz";
+      path = fetchurl {
+        name = "qs-6.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/qs/-/qs-6.6.0.tgz";
+        sha1 = "a99c0f69a8d26bf7ef012f871cdabb0aee4424c2";
+      };
+    }
+
+    {
+      name = "query-string-6.2.0.tgz";
+      path = fetchurl {
+        name = "query-string-6.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/query-string/-/query-string-6.2.0.tgz";
+        sha1 = "468edeb542b7e0538f9f9b1aeb26f034f19c86e1";
+      };
+    }
+
+    {
+      name = "qw-1.0.1.tgz";
+      path = fetchurl {
+        name = "qw-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/qw/-/qw-1.0.1.tgz";
+        sha1 = "efbfdc740f9ad054304426acb183412cc8b996d4";
+      };
+    }
+
+    {
+      name = "random-access-file-2.0.1.tgz";
+      path = fetchurl {
+        name = "random-access-file-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/random-access-file/-/random-access-file-2.0.1.tgz";
+        sha1 = "dc22de79270e9a84cb36a2419b759725930dcaeb";
+      };
+    }
+
+    {
+      name = "random-access-storage-1.3.0.tgz";
+      path = fetchurl {
+        name = "random-access-storage-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/random-access-storage/-/random-access-storage-1.3.0.tgz";
+        sha1 = "d27e4d897b79dc4358afc2bbe553044e5c8cfe35";
+      };
+    }
+
+    {
+      name = "random-iterate-1.0.1.tgz";
+      path = fetchurl {
+        name = "random-iterate-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/random-iterate/-/random-iterate-1.0.1.tgz";
+        sha1 = "f7d97d92dee6665ec5f6da08c7f963cad4b2ac99";
+      };
+    }
+
+    {
+      name = "randombytes-2.0.6.tgz";
+      path = fetchurl {
+        name = "randombytes-2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz";
+        sha1 = "d302c522948588848a8d300c932b44c24231da80";
+      };
+    }
+
+    {
+      name = "range-parser-1.2.0.tgz";
+      path = fetchurl {
+        name = "range-parser-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz";
+        sha1 = "f49be6b487894ddc40dcc94a322f611092e00d5e";
+      };
+    }
+
+    {
+      name = "range-parser-1.0.3.tgz";
+      path = fetchurl {
+        name = "range-parser-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.0.3.tgz";
+        sha1 = "6872823535c692e2c2a0103826afd82c2e0ff175";
+      };
+    }
+
+    {
+      name = "range-slice-stream-2.0.0.tgz";
+      path = fetchurl {
+        name = "range-slice-stream-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/range-slice-stream/-/range-slice-stream-2.0.0.tgz";
+        sha1 = "1f25fc7a2cacf9ccd140c46f9cf670a1a7fe3ce6";
+      };
+    }
+
+    {
+      name = "raw-body-2.3.3.tgz";
+      path = fetchurl {
+        name = "raw-body-2.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz";
+        sha1 = "1b324ece6b5706e153855bc1148c65bb7f6ea0c3";
+      };
+    }
+
+    {
+      name = "rc-1.2.8.tgz";
+      path = fetchurl {
+        name = "rc-1.2.8.tgz";
+        url  = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
+        sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
+      };
+    }
+
+    {
+      name = "rdf-canonize-0.2.5.tgz";
+      path = fetchurl {
+        name = "rdf-canonize-0.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/rdf-canonize/-/rdf-canonize-0.2.5.tgz";
+        sha1 = "dc761d42a2e9e6bf6eec7e0e352fd5b10ff4e75a";
+      };
+    }
+
+    {
+      name = "read-cmd-shim-1.0.1.tgz";
+      path = fetchurl {
+        name = "read-cmd-shim-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz";
+        sha1 = "2d5d157786a37c055d22077c32c53f8329e91c7b";
+      };
+    }
+
+    {
+      name = "read-installed-4.0.3.tgz";
+      path = fetchurl {
+        name = "read-installed-4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz";
+        sha1 = "ff9b8b67f187d1e4c29b9feb31f6b223acd19067";
+      };
+    }
+
+    {
+      name = "read-package-json-2.0.13.tgz";
+      path = fetchurl {
+        name = "read-package-json-2.0.13.tgz";
+        url  = "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.13.tgz";
+        sha1 = "2e82ebd9f613baa6d2ebe3aa72cefe3f68e41f4a";
+      };
+    }
+
+    {
+      name = "read-package-tree-5.2.1.tgz";
+      path = fetchurl {
+        name = "read-package-tree-5.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/read-package-tree/-/read-package-tree-5.2.1.tgz";
+        sha1 = "6218b187d6fac82289ce4387bbbaf8eef536ad63";
+      };
+    }
+
+    {
+      name = "read-pkg-4.0.1.tgz";
+      path = fetchurl {
+        name = "read-pkg-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz";
+        sha1 = "963625378f3e1c4d48c85872b5a6ec7d5d093237";
+      };
+    }
+
+    {
+      name = "read-1.0.7.tgz";
+      path = fetchurl {
+        name = "read-1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz";
+        sha1 = "b3da19bd052431a97671d44a42634adf710b40c4";
+      };
+    }
+
+    {
+      name = "readable-stream-2.3.6.tgz";
+      path = fetchurl {
+        name = "readable-stream-2.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
+        sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
+      };
+    }
+
+    {
+      name = "readable-stream-1.1.14.tgz";
+      path = fetchurl {
+        name = "readable-stream-1.1.14.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz";
+        sha1 = "7cf4c54ef648e3813084c636dd2079e166c081d9";
+      };
+    }
+
+    {
+      name = "readable-stream-1.0.34.tgz";
+      path = fetchurl {
+        name = "readable-stream-1.0.34.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz";
+        sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
+      };
+    }
+
+    {
+      name = "readable-stream-3.0.6.tgz";
+      path = fetchurl {
+        name = "readable-stream-3.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz";
+        sha1 = "351302e4c68b5abd6a2ed55376a7f9a25be3057a";
+      };
+    }
+
+    {
+      name = "readable-wrap-1.0.0.tgz";
+      path = fetchurl {
+        name = "readable-wrap-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/readable-wrap/-/readable-wrap-1.0.0.tgz";
+        sha1 = "3b5a211c631e12303a54991c806c17e7ae206bff";
+      };
+    }
+
+    {
+      name = "readdir-scoped-modules-1.0.2.tgz";
+      path = fetchurl {
+        name = "readdir-scoped-modules-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz";
+        sha1 = "9fafa37d286be5d92cbaebdee030dc9b5f406747";
+      };
+    }
+
+    {
+      name = "readdirp-2.2.1.tgz";
+      path = fetchurl {
+        name = "readdirp-2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz";
+        sha1 = "0e87622a3325aa33e892285caf8b4e846529a525";
+      };
+    }
+
+    {
+      name = "readline2-1.0.1.tgz";
+      path = fetchurl {
+        name = "readline2-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz";
+        sha1 = "41059608ffc154757b715d9989d199ffbf372e35";
+      };
+    }
+
+    {
+      name = "record-cache-1.1.0.tgz";
+      path = fetchurl {
+        name = "record-cache-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/record-cache/-/record-cache-1.1.0.tgz";
+        sha1 = "f8a467a691a469584b26e88d36b18afdb3932037";
+      };
+    }
+
+    {
+      name = "redis-commands-1.4.0.tgz";
+      path = fetchurl {
+        name = "redis-commands-1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.4.0.tgz";
+        sha1 = "52f9cf99153efcce56a8f86af986bd04e988602f";
+      };
+    }
+
+    {
+      name = "redis-parser-2.6.0.tgz";
+      path = fetchurl {
+        name = "redis-parser-2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz";
+        sha1 = "52ed09dacac108f1a631c07e9b69941e7a19504b";
+      };
+    }
+
+    {
+      name = "redis-2.8.0.tgz";
+      path = fetchurl {
+        name = "redis-2.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz";
+        sha1 = "202288e3f58c49f6079d97af7a10e1303ae14b02";
+      };
+    }
+
+    {
+      name = "referrer-policy-1.1.0.tgz";
+      path = fetchurl {
+        name = "referrer-policy-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.1.0.tgz";
+        sha1 = "35774eb735bf50fb6c078e83334b472350207d79";
+      };
+    }
+
+    {
+      name = "reflect-metadata-0.1.12.tgz";
+      path = fetchurl {
+        name = "reflect-metadata-0.1.12.tgz";
+        url  = "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz";
+        sha1 = "311bf0c6b63cd782f228a81abe146a2bfa9c56f2";
+      };
+    }
+
+    {
+      name = "regex-not-1.0.2.tgz";
+      path = fetchurl {
+        name = "regex-not-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
+        sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
+      };
+    }
+
+    {
+      name = "registry-auth-token-3.3.2.tgz";
+      path = fetchurl {
+        name = "registry-auth-token-3.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz";
+        sha1 = "851fd49038eecb586911115af845260eec983f20";
+      };
+    }
+
+    {
+      name = "registry-url-3.1.0.tgz";
+      path = fetchurl {
+        name = "registry-url-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz";
+        sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942";
+      };
+    }
+
+    {
+      name = "remove-trailing-separator-1.1.0.tgz";
+      path = fetchurl {
+        name = "remove-trailing-separator-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+      };
+    }
+
+    {
+      name = "render-media-3.1.3.tgz";
+      path = fetchurl {
+        name = "render-media-3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/render-media/-/render-media-3.1.3.tgz";
+        sha1 = "aa8c8cd3f720049370067180709b551d3c566254";
+      };
+    }
+
+    {
+      name = "repeat-element-1.1.3.tgz";
+      path = fetchurl {
+        name = "repeat-element-1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
+        sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
+      };
+    }
+
+    {
+      name = "repeat-string-1.6.1.tgz";
+      path = fetchurl {
+        name = "repeat-string-1.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
+        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+      };
+    }
+
+    {
+      name = "request-2.88.0.tgz";
+      path = fetchurl {
+        name = "request-2.88.0.tgz";
+        url  = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz";
+        sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef";
+      };
+    }
+
+    {
+      name = "require-directory-2.1.1.tgz";
+      path = fetchurl {
+        name = "require-directory-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    }
+
+    {
+      name = "require-main-filename-1.0.1.tgz";
+      path = fetchurl {
+        name = "require-main-filename-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
+        sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+      };
+    }
+
+    {
+      name = "require-uncached-1.0.3.tgz";
+      path = fetchurl {
+        name = "require-uncached-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz";
+        sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3";
+      };
+    }
+
+    {
+      name = "resolve-from-1.0.1.tgz";
+      path = fetchurl {
+        name = "resolve-from-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz";
+        sha1 = "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226";
+      };
+    }
+
+    {
+      name = "resolve-from-2.0.0.tgz";
+      path = fetchurl {
+        name = "resolve-from-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz";
+        sha1 = "9480ab20e94ffa1d9e80a804c7ea147611966b57";
+      };
+    }
+
+    {
+      name = "resolve-from-3.0.0.tgz";
+      path = fetchurl {
+        name = "resolve-from-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz";
+        sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+      };
+    }
+
+    {
+      name = "resolve-from-4.0.0.tgz";
+      path = fetchurl {
+        name = "resolve-from-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
+      };
+    }
+
+    {
+      name = "resolve-pkg-1.0.0.tgz";
+      path = fetchurl {
+        name = "resolve-pkg-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-pkg/-/resolve-pkg-1.0.0.tgz";
+        sha1 = "e19a15e78aca2e124461dc92b2e3943ef93494d9";
+      };
+    }
+
+    {
+      name = "resolve-url-0.2.1.tgz";
+      path = fetchurl {
+        name = "resolve-url-0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
+        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+      };
+    }
+
+    {
+      name = "resolve-1.8.1.tgz";
+      path = fetchurl {
+        name = "resolve-1.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz";
+        sha1 = "82f1ec19a423ac1fbd080b0bab06ba36e84a7a26";
+      };
+    }
+
+    {
+      name = "restore-cursor-1.0.1.tgz";
+      path = fetchurl {
+        name = "restore-cursor-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz";
+        sha1 = "34661f46886327fed2991479152252df92daa541";
+      };
+    }
+
+    {
+      name = "restore-cursor-2.0.0.tgz";
+      path = fetchurl {
+        name = "restore-cursor-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
+        sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+      };
+    }
+
+    {
+      name = "ret-0.1.15.tgz";
+      path = fetchurl {
+        name = "ret-0.1.15.tgz";
+        url  = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
+        sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
+      };
+    }
+
+    {
+      name = "retry-as-promised-2.3.2.tgz";
+      path = fetchurl {
+        name = "retry-as-promised-2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/retry-as-promised/-/retry-as-promised-2.3.2.tgz";
+        sha1 = "cd974ee4fd9b5fe03cbf31871ee48221c07737b7";
+      };
+    }
+
+    {
+      name = "retry-0.10.1.tgz";
+      path = fetchurl {
+        name = "retry-0.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz";
+        sha1 = "e76388d217992c252750241d3d3956fed98d8ff4";
+      };
+    }
+
+    {
+      name = "retry-0.12.0.tgz";
+      path = fetchurl {
+        name = "retry-0.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz";
+        sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+      };
+    }
+
+    {
+      name = "revalidator-0.1.8.tgz";
+      path = fetchurl {
+        name = "revalidator-0.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/revalidator/-/revalidator-0.1.8.tgz";
+        sha1 = "fece61bfa0c1b52a206bd6b18198184bdd523a3b";
+      };
+    }
+
+    {
+      name = "rimraf-2.6.2.tgz";
+      path = fetchurl {
+        name = "rimraf-2.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz";
+        sha1 = "2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36";
+      };
+    }
+
+    {
+      name = "rimraf-2.4.5.tgz";
+      path = fetchurl {
+        name = "rimraf-2.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz";
+        sha1 = "ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da";
+      };
+    }
+
+    {
+      name = "run-async-0.1.0.tgz";
+      path = fetchurl {
+        name = "run-async-0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz";
+        sha1 = "c8ad4a5e110661e402a7d21b530e009f25f8e389";
+      };
+    }
+
+    {
+      name = "run-node-1.0.0.tgz";
+      path = fetchurl {
+        name = "run-node-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz";
+        sha1 = "46b50b946a2aa2d4947ae1d886e9856fd9cabe5e";
+      };
+    }
+
+    {
+      name = "run-parallel-limit-1.0.5.tgz";
+      path = fetchurl {
+        name = "run-parallel-limit-1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.0.5.tgz";
+        sha1 = "c29a4fd17b4df358cb52a8a697811a63c984f1b7";
+      };
+    }
+
+    {
+      name = "run-parallel-1.1.9.tgz";
+      path = fetchurl {
+        name = "run-parallel-1.1.9.tgz";
+        url  = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz";
+        sha1 = "c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679";
+      };
+    }
+
+    {
+      name = "run-queue-1.0.3.tgz";
+      path = fetchurl {
+        name = "run-queue-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz";
+        sha1 = "e848396f057d223f24386924618e25694161ec47";
+      };
+    }
+
+    {
+      name = "run-series-1.1.8.tgz";
+      path = fetchurl {
+        name = "run-series-1.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/run-series/-/run-series-1.1.8.tgz";
+        sha1 = "2c4558f49221e01cd6371ff4e0a1e203e460fc36";
+      };
+    }
+
+    {
+      name = "rusha-0.8.13.tgz";
+      path = fetchurl {
+        name = "rusha-0.8.13.tgz";
+        url  = "https://registry.yarnpkg.com/rusha/-/rusha-0.8.13.tgz";
+        sha1 = "9a084e7b860b17bff3015b92c67a6a336191513a";
+      };
+    }
+
+    {
+      name = "rx-lite-3.1.2.tgz";
+      path = fetchurl {
+        name = "rx-lite-3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz";
+        sha1 = "19ce502ca572665f3b647b10939f97fd1615f102";
+      };
+    }
+
+    {
+      name = "rxjs-6.3.3.tgz";
+      path = fetchurl {
+        name = "rxjs-6.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz";
+        sha1 = "3c6a7fa420e844a81390fb1158a9ec614f4bad55";
+      };
+    }
+
+    {
+      name = "safe-buffer-5.1.2.tgz";
+      path = fetchurl {
+        name = "safe-buffer-5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+      };
+    }
+
+    {
+      name = "safe-json-stringify-1.2.0.tgz";
+      path = fetchurl {
+        name = "safe-json-stringify-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz";
+        sha1 = "356e44bc98f1f93ce45df14bcd7c01cda86e0afd";
+      };
+    }
+
+    {
+      name = "safe-regex-1.1.0.tgz";
+      path = fetchurl {
+        name = "safe-regex-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
+        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+      };
+    }
+
+    {
+      name = "safer-buffer-2.1.2.tgz";
+      path = fetchurl {
+        name = "safer-buffer-2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+      };
+    }
+
+    {
+      name = "sass-lint-1.12.1.tgz";
+      path = fetchurl {
+        name = "sass-lint-1.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/sass-lint/-/sass-lint-1.12.1.tgz";
+        sha1 = "630f69c216aa206b8232fb2aa907bdf3336b6d83";
+      };
+    }
+
+    {
+      name = "sax-1.2.4.tgz";
+      path = fetchurl {
+        name = "sax-1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
+        sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
+      };
+    }
+
+    {
+      name = "scripty-1.8.0.tgz";
+      path = fetchurl {
+        name = "scripty-1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/scripty/-/scripty-1.8.0.tgz";
+        sha1 = "951f0b4bc3e235844b7f5355f58d31e012e0b806";
+      };
+    }
+
+    {
+      name = "semver-compare-1.0.0.tgz";
+      path = fetchurl {
+        name = "semver-compare-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz";
+        sha1 = "0dee216a1c941ab37e9efb1788f6afc5ff5537fc";
+      };
+    }
+
+    {
+      name = "semver-diff-2.1.0.tgz";
+      path = fetchurl {
+        name = "semver-diff-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz";
+        sha1 = "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36";
+      };
+    }
+
+    {
+      name = "semver-5.6.0.tgz";
+      path = fetchurl {
+        name = "semver-5.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz";
+        sha1 = "7e74256fbaa49c75aa7c7a205cc22799cac80004";
+      };
+    }
+
+    {
+      name = "semver-4.3.2.tgz";
+      path = fetchurl {
+        name = "semver-4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz";
+        sha1 = "c7a07158a80bedd052355b770d82d6640f803be7";
+      };
+    }
+
+    {
+      name = "semver-5.3.0.tgz";
+      path = fetchurl {
+        name = "semver-5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz";
+        sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
+      };
+    }
+
+    {
+      name = "send-0.13.1.tgz";
+      path = fetchurl {
+        name = "send-0.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/send/-/send-0.13.1.tgz";
+        sha1 = "a30d5f4c82c8a9bae9ad00a1d9b1bdbe6f199ed7";
+      };
+    }
+
+    {
+      name = "send-0.13.2.tgz";
+      path = fetchurl {
+        name = "send-0.13.2.tgz";
+        url  = "https://registry.yarnpkg.com/send/-/send-0.13.2.tgz";
+        sha1 = "765e7607c8055452bba6f0b052595350986036de";
+      };
+    }
+
+    {
+      name = "send-0.16.2.tgz";
+      path = fetchurl {
+        name = "send-0.16.2.tgz";
+        url  = "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz";
+        sha1 = "6ecca1e0f8c156d141597559848df64730a6bbc1";
+      };
+    }
+
+    {
+      name = "sequelize-typescript-0.6.6.tgz";
+      path = fetchurl {
+        name = "sequelize-typescript-0.6.6.tgz";
+        url  = "https://registry.yarnpkg.com/sequelize-typescript/-/sequelize-typescript-0.6.6.tgz";
+        sha1 = "926037b542dae9f4eff20609d095cc5e3a3640f3";
+      };
+    }
+
+    {
+      name = "sequelize-4.41.2.tgz";
+      path = fetchurl {
+        name = "sequelize-4.41.2.tgz";
+        url  = "https://registry.yarnpkg.com/sequelize/-/sequelize-4.41.2.tgz";
+        sha1 = "bb9ba30d72e9eeb883c9861cd0e2cac672010883";
+      };
+    }
+
+    {
+      name = "serve-static-1.10.3.tgz";
+      path = fetchurl {
+        name = "serve-static-1.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.10.3.tgz";
+        sha1 = "ce5a6ecd3101fed5ec09827dac22a9c29bfb0535";
+      };
+    }
+
+    {
+      name = "set-blocking-2.0.0.tgz";
+      path = fetchurl {
+        name = "set-blocking-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+      };
+    }
+
+    {
+      name = "set-value-0.4.3.tgz";
+      path = fetchurl {
+        name = "set-value-0.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz";
+        sha1 = "7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1";
+      };
+    }
+
+    {
+      name = "set-value-2.0.0.tgz";
+      path = fetchurl {
+        name = "set-value-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz";
+        sha1 = "71ae4a88f0feefbbf52d1ea604f3fb315ebb6274";
+      };
+    }
+
+    {
+      name = "setprototypeof-1.1.0.tgz";
+      path = fetchurl {
+        name = "setprototypeof-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz";
+        sha1 = "d0bd85536887b6fe7c0d818cb962d9d91c54e656";
+      };
+    }
+
+    {
+      name = "sha-2.0.1.tgz";
+      path = fetchurl {
+        name = "sha-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/sha/-/sha-2.0.1.tgz";
+        sha1 = "6030822fbd2c9823949f8f72ed6411ee5cf25aae";
+      };
+    }
+
+    {
+      name = "shebang-command-1.2.0.tgz";
+      path = fetchurl {
+        name = "shebang-command-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
+        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+      };
+    }
+
+    {
+      name = "shebang-regex-1.0.0.tgz";
+      path = fetchurl {
+        name = "shebang-regex-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
+        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+      };
+    }
+
+    {
+      name = "shelljs-0.6.1.tgz";
+      path = fetchurl {
+        name = "shelljs-0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz";
+        sha1 = "ec6211bed1920442088fe0f70b2837232ed2c8a8";
+      };
+    }
+
+    {
+      name = "shimmer-1.2.0.tgz";
+      path = fetchurl {
+        name = "shimmer-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.0.tgz";
+        sha1 = "f966f7555789763e74d8841193685a5e78736665";
+      };
+    }
+
+    {
+      name = "signal-exit-3.0.2.tgz";
+      path = fetchurl {
+        name = "signal-exit-3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
+        sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+      };
+    }
+
+    {
+      name = "simple-concat-1.0.0.tgz";
+      path = fetchurl {
+        name = "simple-concat-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz";
+        sha1 = "7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6";
+      };
+    }
+
+    {
+      name = "simple-get-2.8.1.tgz";
+      path = fetchurl {
+        name = "simple-get-2.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz";
+        sha1 = "0e22e91d4575d87620620bc91308d57a77f44b5d";
+      };
+    }
+
+    {
+      name = "simple-get-3.0.3.tgz";
+      path = fetchurl {
+        name = "simple-get-3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/simple-get/-/simple-get-3.0.3.tgz";
+        sha1 = "924528ac3f9d7718ce5e9ec1b1a69c0be4d62efa";
+      };
+    }
+
+    {
+      name = "simple-git-1.107.0.tgz";
+      path = fetchurl {
+        name = "simple-git-1.107.0.tgz";
+        url  = "https://registry.yarnpkg.com/simple-git/-/simple-git-1.107.0.tgz";
+        sha1 = "12cffaf261c14d6f450f7fdb86c21ccee968b383";
+      };
+    }
+
+    {
+      name = "simple-peer-9.1.2.tgz";
+      path = fetchurl {
+        name = "simple-peer-9.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/simple-peer/-/simple-peer-9.1.2.tgz";
+        sha1 = "f8afa5eb83f8a17d66e437e5ac54c1221eca4b39";
+      };
+    }
+
+    {
+      name = "simple-sha1-2.1.1.tgz";
+      path = fetchurl {
+        name = "simple-sha1-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/simple-sha1/-/simple-sha1-2.1.1.tgz";
+        sha1 = "93f3b7f2e8dfdc056c32793e5d47b58d311b140d";
+      };
+    }
+
+    {
+      name = "simple-swizzle-0.2.2.tgz";
+      path = fetchurl {
+        name = "simple-swizzle-0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+        sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+      };
+    }
+
+    {
+      name = "simple-websocket-7.2.0.tgz";
+      path = fetchurl {
+        name = "simple-websocket-7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/simple-websocket/-/simple-websocket-7.2.0.tgz";
+        sha1 = "c3190555d74399372b96b51435f2d8c4b04611df";
+      };
+    }
+
+    {
+      name = "sitemap-2.1.0.tgz";
+      path = fetchurl {
+        name = "sitemap-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/sitemap/-/sitemap-2.1.0.tgz";
+        sha1 = "1633cb88c196d755ad94becfb1c1bcacc6d3425a";
+      };
+    }
+
+    {
+      name = "slash-1.0.0.tgz";
+      path = fetchurl {
+        name = "slash-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz";
+        sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
+      };
+    }
+
+    {
+      name = "slash-2.0.0.tgz";
+      path = fetchurl {
+        name = "slash-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz";
+        sha1 = "de552851a1759df3a8f206535442f5ec4ddeab44";
+      };
+    }
+
+    {
+      name = "slice-ansi-0.0.4.tgz";
+      path = fetchurl {
+        name = "slice-ansi-0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz";
+        sha1 = "edbf8903f66f7ce2f8eafd6ceed65e264c831b35";
+      };
+    }
+
+    {
+      name = "slide-1.1.6.tgz";
+      path = fetchurl {
+        name = "slide-1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz";
+        sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707";
+      };
+    }
+
+    {
+      name = "smart-buffer-1.1.15.tgz";
+      path = fetchurl {
+        name = "smart-buffer-1.1.15.tgz";
+        url  = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-1.1.15.tgz";
+        sha1 = "7f114b5b65fab3e2a35aa775bb12f0d1c649bf16";
+      };
+    }
+
+    {
+      name = "smart-buffer-4.0.1.tgz";
+      path = fetchurl {
+        name = "smart-buffer-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz";
+        sha1 = "07ea1ca8d4db24eb4cac86537d7d18995221ace3";
+      };
+    }
+
+    {
+      name = "smtp-connection-2.3.1.tgz";
+      path = fetchurl {
+        name = "smtp-connection-2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/smtp-connection/-/smtp-connection-2.3.1.tgz";
+        sha1 = "d169c8f1c9a73854134cdabe6fb818237dfc4fba";
+      };
+    }
+
+    {
+      name = "smtp-server-1.16.1.tgz";
+      path = fetchurl {
+        name = "smtp-server-1.16.1.tgz";
+        url  = "https://registry.yarnpkg.com/smtp-server/-/smtp-server-1.16.1.tgz";
+        sha1 = "91d2dbd5e8bb9ed395b1a1774e8b60dd7b24e453";
+      };
+    }
+
+    {
+      name = "snapdragon-node-2.1.1.tgz";
+      path = fetchurl {
+        name = "snapdragon-node-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+        sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
+      };
+    }
+
+    {
+      name = "snapdragon-util-3.0.1.tgz";
+      path = fetchurl {
+        name = "snapdragon-util-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+        sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
+      };
+    }
+
+    {
+      name = "snapdragon-0.8.2.tgz";
+      path = fetchurl {
+        name = "snapdragon-0.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
+        sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
+      };
+    }
+
+    {
+      name = "socket.io-adapter-0.5.0.tgz";
+      path = fetchurl {
+        name = "socket.io-adapter-0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz";
+        sha1 = "cb6d4bb8bec81e1078b99677f9ced0046066bb8b";
+      };
+    }
+
+    {
+      name = "socket.io-adapter-1.1.1.tgz";
+      path = fetchurl {
+        name = "socket.io-adapter-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz";
+        sha1 = "2a805e8a14d6372124dd9159ad4502f8cb07f06b";
+      };
+    }
+
+    {
+      name = "socket.io-client-1.7.3.tgz";
+      path = fetchurl {
+        name = "socket.io-client-1.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz";
+        sha1 = "b30e86aa10d5ef3546601c09cde4765e381da377";
+      };
+    }
+
+    {
+      name = "socket.io-client-2.2.0.tgz";
+      path = fetchurl {
+        name = "socket.io-client-2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz";
+        sha1 = "84e73ee3c43d5020ccc1a258faeeb9aec2723af7";
+      };
+    }
+
+    {
+      name = "socket.io-parser-2.3.1.tgz";
+      path = fetchurl {
+        name = "socket.io-parser-2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz";
+        sha1 = "dd532025103ce429697326befd64005fcfe5b4a0";
+      };
+    }
+
+    {
+      name = "socket.io-parser-3.3.0.tgz";
+      path = fetchurl {
+        name = "socket.io-parser-3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz";
+        sha1 = "2b52a96a509fdf31440ba40fed6094c7d4f1262f";
+      };
+    }
+
+    {
+      name = "socket.io-1.7.3.tgz";
+      path = fetchurl {
+        name = "socket.io-1.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz";
+        sha1 = "b8af9caba00949e568e369f1327ea9be9ea2461b";
+      };
+    }
+
+    {
+      name = "socket.io-2.2.0.tgz";
+      path = fetchurl {
+        name = "socket.io-2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io/-/socket.io-2.2.0.tgz";
+        sha1 = "f0f633161ef6712c972b307598ecd08c9b1b4d5b";
+      };
+    }
+
+    {
+      name = "socks-proxy-agent-3.0.1.tgz";
+      path = fetchurl {
+        name = "socks-proxy-agent-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz";
+        sha1 = "2eae7cf8e2a82d34565761539a7f9718c5617659";
+      };
+    }
+
+    {
+      name = "socks-proxy-agent-4.0.1.tgz";
+      path = fetchurl {
+        name = "socks-proxy-agent-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz";
+        sha1 = "5936bf8b707a993079c6f37db2091821bffa6473";
+      };
+    }
+
+    {
+      name = "socks-1.1.10.tgz";
+      path = fetchurl {
+        name = "socks-1.1.10.tgz";
+        url  = "https://registry.yarnpkg.com/socks/-/socks-1.1.10.tgz";
+        sha1 = "5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a";
+      };
+    }
+
+    {
+      name = "socks-2.2.2.tgz";
+      path = fetchurl {
+        name = "socks-2.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/socks/-/socks-2.2.2.tgz";
+        sha1 = "f061219fc2d4d332afb4af93e865c84d3fa26e2b";
+      };
+    }
+
+    {
+      name = "sorted-object-2.0.1.tgz";
+      path = fetchurl {
+        name = "sorted-object-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz";
+        sha1 = "7d631f4bd3a798a24af1dffcfbfe83337a5df5fc";
+      };
+    }
+
+    {
+      name = "sorted-union-stream-2.1.3.tgz";
+      path = fetchurl {
+        name = "sorted-union-stream-2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz";
+        sha1 = "c7794c7e077880052ff71a8d4a2dbb4a9a638ac7";
+      };
+    }
+
+    {
+      name = "source-map-resolve-0.5.2.tgz";
+      path = fetchurl {
+        name = "source-map-resolve-0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz";
+        sha1 = "72e2cc34095543e43b2c62b2c4c10d4a9054f259";
+      };
+    }
+
+    {
+      name = "source-map-support-0.5.9.tgz";
+      path = fetchurl {
+        name = "source-map-support-0.5.9.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz";
+        sha1 = "41bc953b2534267ea2d605bccfa7bfa3111ced5f";
+      };
+    }
+
+    {
+      name = "source-map-url-0.4.0.tgz";
+      path = fetchurl {
+        name = "source-map-url-0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
+        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+      };
+    }
+
+    {
+      name = "source-map-0.5.7.tgz";
+      path = fetchurl {
+        name = "source-map-0.5.7.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    }
+
+    {
+      name = "source-map-0.6.1.tgz";
+      path = fetchurl {
+        name = "source-map-0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+        sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+      };
+    }
+
+    {
+      name = "spawn-command-0.0.2-1.tgz";
+      path = fetchurl {
+        name = "spawn-command-0.0.2-1.tgz";
+        url  = "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz";
+        sha1 = "62f5e9466981c1b796dc5929937e11c9c6921bd0";
+      };
+    }
+
+    {
+      name = "spdx-correct-3.0.2.tgz";
+      path = fetchurl {
+        name = "spdx-correct-3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.2.tgz";
+        sha1 = "19bb409e91b47b1ad54159243f7312a858db3c2e";
+      };
+    }
+
+    {
+      name = "spdx-exceptions-2.2.0.tgz";
+      path = fetchurl {
+        name = "spdx-exceptions-2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
+        sha1 = "2ea450aee74f2a89bfb94519c07fcd6f41322977";
+      };
+    }
+
+    {
+      name = "spdx-expression-parse-3.0.0.tgz";
+      path = fetchurl {
+        name = "spdx-expression-parse-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
+        sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0";
+      };
+    }
+
+    {
+      name = "spdx-license-ids-3.0.2.tgz";
+      path = fetchurl {
+        name = "spdx-license-ids-3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz";
+        sha1 = "a59efc09784c2a5bada13cfeaf5c75dd214044d2";
+      };
+    }
+
+    {
+      name = "speedometer-1.1.0.tgz";
+      path = fetchurl {
+        name = "speedometer-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/speedometer/-/speedometer-1.1.0.tgz";
+        sha1 = "a30b13abda45687a1a76977012c060f2ac8a7934";
+      };
+    }
+
+    {
+      name = "split-string-3.1.0.tgz";
+      path = fetchurl {
+        name = "split-string-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
+        sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
+      };
+    }
+
+    {
+      name = "split2-0.2.1.tgz";
+      path = fetchurl {
+        name = "split2-0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/split2/-/split2-0.2.1.tgz";
+        sha1 = "02ddac9adc03ec0bb78c1282ec079ca6e85ae900";
+      };
+    }
+
+    {
+      name = "split-1.0.1.tgz";
+      path = fetchurl {
+        name = "split-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz";
+        sha1 = "605bd9be303aa59fb35f9229fbea0ddec9ea07d9";
+      };
+    }
+
+    {
+      name = "sprintf-js-1.0.3.tgz";
+      path = fetchurl {
+        name = "sprintf-js-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    }
+
+    {
+      name = "srt-to-vtt-1.1.3.tgz";
+      path = fetchurl {
+        name = "srt-to-vtt-1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/srt-to-vtt/-/srt-to-vtt-1.1.3.tgz";
+        sha1 = "a9bc16cde5412e000e59ffda469f3e9befed5dde";
+      };
+    }
+
+    {
+      name = "sshpk-1.15.2.tgz";
+      path = fetchurl {
+        name = "sshpk-1.15.2.tgz";
+        url  = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.15.2.tgz";
+        sha1 = "c946d6bd9b1a39d0e8635763f5242d6ed6dcb629";
+      };
+    }
+
+    {
+      name = "ssri-5.3.0.tgz";
+      path = fetchurl {
+        name = "ssri-5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz";
+        sha1 = "ba3872c9c6d33a0704a7d71ff045e5ec48999d06";
+      };
+    }
+
+    {
+      name = "ssri-6.0.1.tgz";
+      path = fetchurl {
+        name = "ssri-6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
+        sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
+      };
+    }
+
+    {
+      name = "stack-trace-0.0.10.tgz";
+      path = fetchurl {
+        name = "stack-trace-0.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz";
+        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+      };
+    }
+
+    {
+      name = "staged-git-files-1.1.2.tgz";
+      path = fetchurl {
+        name = "staged-git-files-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz";
+        sha1 = "4326d33886dc9ecfa29a6193bf511ba90a46454b";
+      };
+    }
+
+    {
+      name = "static-extend-0.1.2.tgz";
+      path = fetchurl {
+        name = "static-extend-0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
+        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+      };
+    }
+
+    {
+      name = "statuses-1.5.0.tgz";
+      path = fetchurl {
+        name = "statuses-1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
+        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+      };
+    }
+
+    {
+      name = "statuses-1.3.1.tgz";
+      path = fetchurl {
+        name = "statuses-1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz";
+        sha1 = "faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e";
+      };
+    }
+
+    {
+      name = "statuses-1.2.1.tgz";
+      path = fetchurl {
+        name = "statuses-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.2.1.tgz";
+        sha1 = "dded45cc18256d51ed40aec142489d5c61026d28";
+      };
+    }
+
+    {
+      name = "statuses-1.4.0.tgz";
+      path = fetchurl {
+        name = "statuses-1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz";
+        sha1 = "bb73d446da2796106efcc1b601a253d6c46bd087";
+      };
+    }
+
+    {
+      name = "stream-each-1.2.3.tgz";
+      path = fetchurl {
+        name = "stream-each-1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz";
+        sha1 = "ebe27a0c389b04fbcc233642952e10731afa9bae";
+      };
+    }
+
+    {
+      name = "stream-iterate-1.2.0.tgz";
+      path = fetchurl {
+        name = "stream-iterate-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/stream-iterate/-/stream-iterate-1.2.0.tgz";
+        sha1 = "2bd7c77296c1702a46488b8ad41f79865eecd4e1";
+      };
+    }
+
+    {
+      name = "stream-shift-1.0.0.tgz";
+      path = fetchurl {
+        name = "stream-shift-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz";
+        sha1 = "d5c752825e5367e786f78e18e445ea223a155952";
+      };
+    }
+
+    {
+      name = "stream-splicer-1.3.2.tgz";
+      path = fetchurl {
+        name = "stream-splicer-1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-1.3.2.tgz";
+        sha1 = "3c0441be15b9bf4e226275e6dc83964745546661";
+      };
+    }
+
+    {
+      name = "stream-to-blob-url-2.1.1.tgz";
+      path = fetchurl {
+        name = "stream-to-blob-url-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/stream-to-blob-url/-/stream-to-blob-url-2.1.1.tgz";
+        sha1 = "e1ac97f86ca8e9f512329a48e7830ce9a50beef2";
+      };
+    }
+
+    {
+      name = "stream-to-blob-1.0.1.tgz";
+      path = fetchurl {
+        name = "stream-to-blob-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/stream-to-blob/-/stream-to-blob-1.0.1.tgz";
+        sha1 = "2dc1e09b71677a234d00445f8eb7ff70c4fe9948";
+      };
+    }
+
+    {
+      name = "stream-with-known-length-to-buffer-1.0.2.tgz";
+      path = fetchurl {
+        name = "stream-with-known-length-to-buffer-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/stream-with-known-length-to-buffer/-/stream-with-known-length-to-buffer-1.0.2.tgz";
+        sha1 = "b8ea5a92086a1ed5d27fc4c529636682118c945b";
+      };
+    }
+
+    {
+      name = "streamify-0.2.9.tgz";
+      path = fetchurl {
+        name = "streamify-0.2.9.tgz";
+        url  = "https://registry.yarnpkg.com/streamify/-/streamify-0.2.9.tgz";
+        sha1 = "8938b14db491e2b6be4f8d99cc4133c9f0384f0b";
+      };
+    }
+
+    {
+      name = "streamsearch-0.1.2.tgz";
+      path = fetchurl {
+        name = "streamsearch-0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz";
+        sha1 = "808b9d0e56fc273d809ba57338e929919a1a9f1a";
+      };
+    }
+
+    {
+      name = "strict-uri-encode-2.0.0.tgz";
+      path = fetchurl {
+        name = "strict-uri-encode-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz";
+        sha1 = "b9c7330c7042862f6b142dc274bbcc5866ce3546";
+      };
+    }
+
+    {
+      name = "string-argv-0.0.2.tgz";
+      path = fetchurl {
+        name = "string-argv-0.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz";
+        sha1 = "dac30408690c21f3c3630a3ff3a05877bdcbd736";
+      };
+    }
+
+    {
+      name = "string-width-1.0.2.tgz";
+      path = fetchurl {
+        name = "string-width-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
+        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+      };
+    }
+
+    {
+      name = "string-width-2.1.1.tgz";
+      path = fetchurl {
+        name = "string-width-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+        sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+      };
+    }
+
+    {
+      name = "string2compact-1.3.0.tgz";
+      path = fetchurl {
+        name = "string2compact-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/string2compact/-/string2compact-1.3.0.tgz";
+        sha1 = "22d946127b082d1203c51316af60117a337423c3";
+      };
+    }
+
+    {
+      name = "string_decoder-1.2.0.tgz";
+      path = fetchurl {
+        name = "string_decoder-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz";
+        sha1 = "fe86e738b19544afe70469243b2a1ee9240eae8d";
+      };
+    }
+
+    {
+      name = "string_decoder-0.10.31.tgz";
+      path = fetchurl {
+        name = "string_decoder-0.10.31.tgz";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
+        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+      };
+    }
+
+    {
+      name = "string_decoder-1.1.1.tgz";
+      path = fetchurl {
+        name = "string_decoder-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+      };
+    }
+
+    {
+      name = "stringify-object-3.3.0.tgz";
+      path = fetchurl {
+        name = "stringify-object-3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz";
+        sha1 = "703065aefca19300d3ce88af4f5b3956d7556629";
+      };
+    }
+
+    {
+      name = "stringify-package-1.0.0.tgz";
+      path = fetchurl {
+        name = "stringify-package-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.0.tgz";
+        sha1 = "e02828089333d7d45cd8c287c30aa9a13375081b";
+      };
+    }
+
+    {
+      name = "strip-ansi-3.0.1.tgz";
+      path = fetchurl {
+        name = "strip-ansi-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    }
+
+    {
+      name = "strip-ansi-4.0.0.tgz";
+      path = fetchurl {
+        name = "strip-ansi-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
+        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+      };
+    }
+
+    {
+      name = "strip-eof-1.0.0.tgz";
+      path = fetchurl {
+        name = "strip-eof-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
+        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+      };
+    }
+
+    {
+      name = "strip-json-comments-1.0.4.tgz";
+      path = fetchurl {
+        name = "strip-json-comments-1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz";
+        sha1 = "1e15fbcac97d3ee99bf2d73b4c656b082bbafb91";
+      };
+    }
+
+    {
+      name = "strip-json-comments-2.0.1.tgz";
+      path = fetchurl {
+        name = "strip-json-comments-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+      };
+    }
+
+    {
+      name = "summon-install-0.4.6.tgz";
+      path = fetchurl {
+        name = "summon-install-0.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/summon-install/-/summon-install-0.4.6.tgz";
+        sha1 = "25673446e8b92f8bc0afabc464aa7b73fe946bd5";
+      };
+    }
+
+    {
+      name = "superagent-3.8.3.tgz";
+      path = fetchurl {
+        name = "superagent-3.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz";
+        sha1 = "460ea0dbdb7d5b11bc4f78deba565f86a178e128";
+      };
+    }
+
+    {
+      name = "supertest-3.3.0.tgz";
+      path = fetchurl {
+        name = "supertest-3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/supertest/-/supertest-3.3.0.tgz";
+        sha1 = "79b27bd7d34392974ab33a31fa51a3e23385987e";
+      };
+    }
+
+    {
+      name = "supports-color-5.4.0.tgz";
+      path = fetchurl {
+        name = "supports-color-5.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz";
+        sha1 = "1c6b337402c2137605efe19f10fec390f6faab54";
+      };
+    }
+
+    {
+      name = "supports-color-2.0.0.tgz";
+      path = fetchurl {
+        name = "supports-color-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
+        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+      };
+    }
+
+    {
+      name = "supports-color-4.5.0.tgz";
+      path = fetchurl {
+        name = "supports-color-4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz";
+        sha1 = "be7a0de484dec5c5cddf8b3d59125044912f635b";
+      };
+    }
+
+    {
+      name = "supports-color-5.5.0.tgz";
+      path = fetchurl {
+        name = "supports-color-5.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
+        sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+      };
+    }
+
+    {
+      name = "swagger-cli-2.2.0.tgz";
+      path = fetchurl {
+        name = "swagger-cli-2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/swagger-cli/-/swagger-cli-2.2.0.tgz";
+        sha1 = "837b01e1fd6cc6aa324f8884ec1151a3c17ca007";
+      };
+    }
+
+    {
+      name = "swagger-methods-1.0.6.tgz";
+      path = fetchurl {
+        name = "swagger-methods-1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/swagger-methods/-/swagger-methods-1.0.6.tgz";
+        sha1 = "b91c2e4f7f9e5e2c4cd3b285b8be06ca76b3cc6a";
+      };
+    }
+
+    {
+      name = "swagger-parser-6.0.2.tgz";
+      path = fetchurl {
+        name = "swagger-parser-6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/swagger-parser/-/swagger-parser-6.0.2.tgz";
+        sha1 = "ef3fe95ae17eab2ba04d2646007df106c7b542b9";
+      };
+    }
+
+    {
+      name = "swagger-schema-official-2.0.0-bab6bed.tgz";
+      path = fetchurl {
+        name = "swagger-schema-official-2.0.0-bab6bed.tgz";
+        url  = "https://registry.yarnpkg.com/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz";
+        sha1 = "70070468d6d2977ca5237b2e519ca7d06a2ea3fd";
+      };
+    }
+
+    {
+      name = "symbol-observable-1.2.0.tgz";
+      path = fetchurl {
+        name = "symbol-observable-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz";
+        sha1 = "c22688aed4eab3cdc2dfeacbb561660560a00804";
+      };
+    }
+
+    {
+      name = "table-3.8.3.tgz";
+      path = fetchurl {
+        name = "table-3.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz";
+        sha1 = "2bbc542f0fda9861a755d3947fefd8b3f513855f";
+      };
+    }
+
+    {
+      name = "tar-fs-1.16.3.tgz";
+      path = fetchurl {
+        name = "tar-fs-1.16.3.tgz";
+        url  = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz";
+        sha1 = "966a628841da2c4010406a82167cbd5e0c72d509";
+      };
+    }
+
+    {
+      name = "tar-stream-1.6.2.tgz";
+      path = fetchurl {
+        name = "tar-stream-1.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz";
+        sha1 = "8ea55dab37972253d9a9af90fdcd559ae435c555";
+      };
+    }
+
+    {
+      name = "tar-2.2.1.tgz";
+      path = fetchurl {
+        name = "tar-2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz";
+        sha1 = "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1";
+      };
+    }
+
+    {
+      name = "tar-4.4.8.tgz";
+      path = fetchurl {
+        name = "tar-4.4.8.tgz";
+        url  = "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz";
+        sha1 = "b19eec3fde2a96e64666df9fdb40c5ca1bc3747d";
+      };
+    }
+
+    {
+      name = "term-size-1.2.0.tgz";
+      path = fetchurl {
+        name = "term-size-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz";
+        sha1 = "458b83887f288fc56d6fffbfad262e26638efa69";
+      };
+    }
+
+    {
+      name = "terraformer-wkt-parser-1.2.0.tgz";
+      path = fetchurl {
+        name = "terraformer-wkt-parser-1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/terraformer-wkt-parser/-/terraformer-wkt-parser-1.2.0.tgz";
+        sha1 = "c9d6ac3dff25f4c0bd344e961f42694961834c34";
+      };
+    }
+
+    {
+      name = "terraformer-1.0.9.tgz";
+      path = fetchurl {
+        name = "terraformer-1.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/terraformer/-/terraformer-1.0.9.tgz";
+        sha1 = "77851fef4a49c90b345dc53cf26809fdf29dcda6";
+      };
+    }
+
+    {
+      name = "text-hex-1.0.0.tgz";
+      path = fetchurl {
+        name = "text-hex-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz";
+        sha1 = "69dc9c1b17446ee79a92bf5b884bb4b9127506f5";
+      };
+    }
+
+    {
+      name = "text-table-0.2.0.tgz";
+      path = fetchurl {
+        name = "text-table-0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
+        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+      };
+    }
+
+    {
+      name = "thirty-two-1.0.2.tgz";
+      path = fetchurl {
+        name = "thirty-two-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz";
+        sha1 = "4ca2fffc02a51290d2744b9e3f557693ca6b627a";
+      };
+    }
+
+    {
+      name = "through2-0.6.5.tgz";
+      path = fetchurl {
+        name = "through2-0.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz";
+        sha1 = "41ab9c67b29d57209071410e1d7a7a968cd3ad48";
+      };
+    }
+
+    {
+      name = "through2-1.1.1.tgz";
+      path = fetchurl {
+        name = "through2-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/through2/-/through2-1.1.1.tgz";
+        sha1 = "0847cbc4449f3405574dbdccd9bb841b83ac3545";
+      };
+    }
+
+    {
+      name = "through2-2.0.5.tgz";
+      path = fetchurl {
+        name = "through2-2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
+        sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
+      };
+    }
+
+    {
+      name = "through-2.3.8.tgz";
+      path = fetchurl {
+        name = "through-2.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    }
+
+    {
+      name = "thunky-1.0.3.tgz";
+      path = fetchurl {
+        name = "thunky-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz";
+        sha1 = "f5df732453407b09191dae73e2a8cc73f381a826";
+      };
+    }
+
+    {
+      name = "timed-out-4.0.1.tgz";
+      path = fetchurl {
+        name = "timed-out-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz";
+        sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
+      };
+    }
+
+    {
+      name = "timers-ext-0.1.7.tgz";
+      path = fetchurl {
+        name = "timers-ext-0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz";
+        sha1 = "6f57ad8578e07a3fb9f91d9387d65647555e25c6";
+      };
+    }
+
+    {
+      name = "tiny-relative-date-1.3.0.tgz";
+      path = fetchurl {
+        name = "tiny-relative-date-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz";
+        sha1 = "fa08aad501ed730f31cc043181d995c39a935e07";
+      };
+    }
+
+    {
+      name = "tmp-0.0.33.tgz";
+      path = fetchurl {
+        name = "tmp-0.0.33.tgz";
+        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
+        sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
+      };
+    }
+
+    {
+      name = "to-array-0.1.4.tgz";
+      path = fetchurl {
+        name = "to-array-0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz";
+        sha1 = "17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890";
+      };
+    }
+
+    {
+      name = "to-arraybuffer-1.0.1.tgz";
+      path = fetchurl {
+        name = "to-arraybuffer-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+        sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+      };
+    }
+
+    {
+      name = "to-buffer-1.1.1.tgz";
+      path = fetchurl {
+        name = "to-buffer-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz";
+        sha1 = "493bd48f62d7c43fcded313a03dcadb2e1213a80";
+      };
+    }
+
+    {
+      name = "to-object-path-0.3.0.tgz";
+      path = fetchurl {
+        name = "to-object-path-0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
+        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+      };
+    }
+
+    {
+      name = "to-regex-range-2.1.1.tgz";
+      path = fetchurl {
+        name = "to-regex-range-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
+        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+      };
+    }
+
+    {
+      name = "to-regex-3.0.2.tgz";
+      path = fetchurl {
+        name = "to-regex-3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
+        sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+      };
+    }
+
+    {
+      name = "to-utf-8-1.3.0.tgz";
+      path = fetchurl {
+        name = "to-utf-8-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/to-utf-8/-/to-utf-8-1.3.0.tgz";
+        sha1 = "b2af7be9e003f4c3817cc116d3baed2a054993c9";
+      };
+    }
+
+    {
+      name = "toposort-class-1.0.1.tgz";
+      path = fetchurl {
+        name = "toposort-class-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz";
+        sha1 = "7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988";
+      };
+    }
+
+    {
+      name = "torrent-discovery-9.1.1.tgz";
+      path = fetchurl {
+        name = "torrent-discovery-9.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/torrent-discovery/-/torrent-discovery-9.1.1.tgz";
+        sha1 = "56704e6747b24fe00dbb75b442d202051f78d37d";
+      };
+    }
+
+    {
+      name = "torrent-piece-2.0.0.tgz";
+      path = fetchurl {
+        name = "torrent-piece-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/torrent-piece/-/torrent-piece-2.0.0.tgz";
+        sha1 = "6598ae67d93699e887f178db267ba16d89d7ec9b";
+      };
+    }
+
+    {
+      name = "touch-3.1.0.tgz";
+      path = fetchurl {
+        name = "touch-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz";
+        sha1 = "fe365f5f75ec9ed4e56825e0bb76d24ab74af83b";
+      };
+    }
+
+    {
+      name = "tough-cookie-2.4.3.tgz";
+      path = fetchurl {
+        name = "tough-cookie-2.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz";
+        sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781";
+      };
+    }
+
+    {
+      name = "traverse-0.6.6.tgz";
+      path = fetchurl {
+        name = "traverse-0.6.6.tgz";
+        url  = "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz";
+        sha1 = "cbdf560fd7b9af632502fed40f918c157ea97137";
+      };
+    }
+
+    {
+      name = "tree-kill-1.2.1.tgz";
+      path = fetchurl {
+        name = "tree-kill-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.1.tgz";
+        sha1 = "5398f374e2f292b9dcc7b2e71e30a5c3bb6c743a";
+      };
+    }
+
+    {
+      name = "triple-beam-1.3.0.tgz";
+      path = fetchurl {
+        name = "triple-beam-1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz";
+        sha1 = "a595214c7298db8339eeeee083e4d10bd8cb8dd9";
+      };
+    }
+
+    {
+      name = "ts-node-7.0.1.tgz";
+      path = fetchurl {
+        name = "ts-node-7.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz";
+        sha1 = "9562dc2d1e6d248d24bc55f773e3f614337d9baf";
+      };
+    }
+
+    {
+      name = "tslib-1.9.0.tgz";
+      path = fetchurl {
+        name = "tslib-1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz";
+        sha1 = "e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8";
+      };
+    }
+
+    {
+      name = "tslib-1.9.3.tgz";
+      path = fetchurl {
+        name = "tslib-1.9.3.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz";
+        sha1 = "d7e4dd79245d85428c4d7e4822a79917954ca286";
+      };
+    }
+
+    {
+      name = "tslint-config-standard-8.0.1.tgz";
+      path = fetchurl {
+        name = "tslint-config-standard-8.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/tslint-config-standard/-/tslint-config-standard-8.0.1.tgz";
+        sha1 = "e4dd3128e84b0e34b51990b68715a641f2b417e4";
+      };
+    }
+
+    {
+      name = "tslint-eslint-rules-5.4.0.tgz";
+      path = fetchurl {
+        name = "tslint-eslint-rules-5.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz";
+        sha1 = "e488cc9181bf193fe5cd7bfca213a7695f1737b5";
+      };
+    }
+
+    {
+      name = "tslint-5.11.0.tgz";
+      path = fetchurl {
+        name = "tslint-5.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz";
+        sha1 = "98f30c02eae3cde7006201e4c33cb08b48581eed";
+      };
+    }
+
+    {
+      name = "tsutils-2.29.0.tgz";
+      path = fetchurl {
+        name = "tsutils-2.29.0.tgz";
+        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz";
+        sha1 = "32b488501467acbedd4b85498673a0812aca0b99";
+      };
+    }
+
+    {
+      name = "tsutils-3.5.2.tgz";
+      path = fetchurl {
+        name = "tsutils-3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.5.2.tgz";
+        sha1 = "6fd3c2d5a731e83bb21b070a173ec0faf3a8f6d3";
+      };
+    }
+
+    {
+      name = "tunnel-agent-0.6.0.tgz";
+      path = fetchurl {
+        name = "tunnel-agent-0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+      };
+    }
+
+    {
+      name = "tv4-1.2.7.tgz";
+      path = fetchurl {
+        name = "tv4-1.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/tv4/-/tv4-1.2.7.tgz";
+        sha1 = "bd29389afc73ade49ae5f48142b5d544bf68d120";
+      };
+    }
+
+    {
+      name = "tweetnacl-0.14.5.tgz";
+      path = fetchurl {
+        name = "tweetnacl-0.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
+        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+      };
+    }
+
+    {
+      name = "type-check-0.3.2.tgz";
+      path = fetchurl {
+        name = "type-check-0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
+        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+      };
+    }
+
+    {
+      name = "type-detect-0.1.1.tgz";
+      path = fetchurl {
+        name = "type-detect-0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz";
+        sha1 = "0ba5ec2a885640e470ea4e8505971900dac58822";
+      };
+    }
+
+    {
+      name = "type-detect-4.0.8.tgz";
+      path = fetchurl {
+        name = "type-detect-4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz";
+        sha1 = "7646fb5f18871cfbb7749e69bd39a6388eb7450c";
+      };
+    }
+
+    {
+      name = "type-is-1.6.15.tgz";
+      path = fetchurl {
+        name = "type-is-1.6.15.tgz";
+        url  = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz";
+        sha1 = "cab10fb4909e441c82842eafe1ad646c81804410";
+      };
+    }
+
+    {
+      name = "type-is-1.6.16.tgz";
+      path = fetchurl {
+        name = "type-is-1.6.16.tgz";
+        url  = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz";
+        sha1 = "f89ce341541c672b25ee7ae3c73dee3b2be50194";
+      };
+    }
+
+    {
+      name = "typedarray-to-buffer-3.1.5.tgz";
+      path = fetchurl {
+        name = "typedarray-to-buffer-3.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+        sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080";
+      };
+    }
+
+    {
+      name = "typedarray-0.0.6.tgz";
+      path = fetchurl {
+        name = "typedarray-0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    }
+
+    {
+      name = "typescript-3.2.1.tgz";
+      path = fetchurl {
+        name = "typescript-3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.2.1.tgz";
+        sha1 = "0b7a04b8cf3868188de914d9568bd030f0c56192";
+      };
+    }
+
+    {
+      name = "uid-number-0.0.6.tgz";
+      path = fetchurl {
+        name = "uid-number-0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz";
+        sha1 = "0ea10e8035e8eb5b8e4449f06da1c730663baa81";
+      };
+    }
+
+    {
+      name = "uint64be-2.0.2.tgz";
+      path = fetchurl {
+        name = "uint64be-2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/uint64be/-/uint64be-2.0.2.tgz";
+        sha1 = "ef4a179752fe8f9ddaa29544ecfc13490031e8e5";
+      };
+    }
+
+    {
+      name = "ultron-1.0.2.tgz";
+      path = fetchurl {
+        name = "ultron-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz";
+        sha1 = "ace116ab557cd197386a4e88f4685378c8b2e4fa";
+      };
+    }
+
+    {
+      name = "umask-1.1.0.tgz";
+      path = fetchurl {
+        name = "umask-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz";
+        sha1 = "f29cebf01df517912bb58ff9c4e50fde8e33320d";
+      };
+    }
+
+    {
+      name = "undefsafe-2.0.2.tgz";
+      path = fetchurl {
+        name = "undefsafe-2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.2.tgz";
+        sha1 = "225f6b9e0337663e0d8e7cfd686fc2836ccace76";
+      };
+    }
+
+    {
+      name = "underscore-keypath-0.0.22.tgz";
+      path = fetchurl {
+        name = "underscore-keypath-0.0.22.tgz";
+        url  = "https://registry.yarnpkg.com/underscore-keypath/-/underscore-keypath-0.0.22.tgz";
+        sha1 = "48a528392bb6efc424be1caa56da4b5faccf264d";
+      };
+    }
+
+    {
+      name = "underscore-1.9.1.tgz";
+      path = fetchurl {
+        name = "underscore-1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz";
+        sha1 = "06dce34a0e68a7babc29b365b8e74b8925203961";
+      };
+    }
+
+    {
+      name = "union-value-1.0.0.tgz";
+      path = fetchurl {
+        name = "union-value-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz";
+        sha1 = "5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4";
+      };
+    }
+
+    {
+      name = "uniq-1.0.1.tgz";
+      path = fetchurl {
+        name = "uniq-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz";
+        sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
+      };
+    }
+
+    {
+      name = "unique-filename-1.1.1.tgz";
+      path = fetchurl {
+        name = "unique-filename-1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
+        sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
+      };
+    }
+
+    {
+      name = "unique-slug-2.0.1.tgz";
+      path = fetchurl {
+        name = "unique-slug-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz";
+        sha1 = "5e9edc6d1ce8fb264db18a507ef9bd8544451ca6";
+      };
+    }
+
+    {
+      name = "unique-string-1.0.0.tgz";
+      path = fetchurl {
+        name = "unique-string-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz";
+        sha1 = "9e1057cca851abb93398f8b33ae187b99caec11a";
+      };
+    }
+
+    {
+      name = "universalify-0.1.2.tgz";
+      path = fetchurl {
+        name = "universalify-0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
+        sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
+      };
+    }
+
+    {
+      name = "unordered-array-remove-1.0.2.tgz";
+      path = fetchurl {
+        name = "unordered-array-remove-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz";
+        sha1 = "c546e8f88e317a0cf2644c97ecb57dba66d250ef";
+      };
+    }
+
+    {
+      name = "unpipe-1.0.0.tgz";
+      path = fetchurl {
+        name = "unpipe-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+      };
+    }
+
+    {
+      name = "unset-value-1.0.0.tgz";
+      path = fetchurl {
+        name = "unset-value-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
+        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+      };
+    }
+
+    {
+      name = "unzip-response-2.0.1.tgz";
+      path = fetchurl {
+        name = "unzip-response-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz";
+        sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97";
+      };
+    }
+
+    {
+      name = "upath-1.1.0.tgz";
+      path = fetchurl {
+        name = "upath-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz";
+        sha1 = "35256597e46a581db4793d0ce47fa9aebfc9fabd";
+      };
+    }
+
+    {
+      name = "update-notifier-2.5.0.tgz";
+      path = fetchurl {
+        name = "update-notifier-2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz";
+        sha1 = "d0744593e13f161e406acb1d9408b72cad08aff6";
+      };
+    }
+
+    {
+      name = "uri-js-4.2.2.tgz";
+      path = fetchurl {
+        name = "uri-js-4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
+        sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+      };
+    }
+
+    {
+      name = "urix-0.1.0.tgz";
+      path = fetchurl {
+        name = "urix-0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
+        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+      };
+    }
+
+    {
+      name = "url-join-4.0.0.tgz";
+      path = fetchurl {
+        name = "url-join-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz";
+        sha1 = "4d3340e807d3773bda9991f8305acdcc2a665d2a";
+      };
+    }
+
+    {
+      name = "url-parse-lax-1.0.0.tgz";
+      path = fetchurl {
+        name = "url-parse-lax-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz";
+        sha1 = "7af8f303645e9bd79a272e7a14ac68bc0609da73";
+      };
+    }
+
+    {
+      name = "use-3.1.1.tgz";
+      path = fetchurl {
+        name = "use-3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
+        sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
+      };
+    }
+
+    {
+      name = "user-home-2.0.0.tgz";
+      path = fetchurl {
+        name = "user-home-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz";
+        sha1 = "9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f";
+      };
+    }
+
+    {
+      name = "useragent-2.3.0.tgz";
+      path = fetchurl {
+        name = "useragent-2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz";
+        sha1 = "217f943ad540cb2128658ab23fc960f6a88c9972";
+      };
+    }
+
+    {
+      name = "ut_metadata-3.3.0.tgz";
+      path = fetchurl {
+        name = "ut_metadata-3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ut_metadata/-/ut_metadata-3.3.0.tgz";
+        sha1 = "a0e0e861ebc39ed96e506601d1463ade3b548a7e";
+      };
+    }
+
+    {
+      name = "ut_pex-1.2.1.tgz";
+      path = fetchurl {
+        name = "ut_pex-1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ut_pex/-/ut_pex-1.2.1.tgz";
+        sha1 = "472ed0ea5e9bbc9148b833339d56d7b17cf3dad0";
+      };
+    }
+
+    {
+      name = "utf-8-validate-5.0.1.tgz";
+      path = fetchurl {
+        name = "utf-8-validate-5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.1.tgz";
+        sha1 = "cef1f9011ba4b216f4d7c6ddf5189d750599ff8b";
+      };
+    }
+
+    {
+      name = "util-deprecate-1.0.2.tgz";
+      path = fetchurl {
+        name = "util-deprecate-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    }
+
+    {
+      name = "util-extend-1.0.3.tgz";
+      path = fetchurl {
+        name = "util-extend-1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz";
+        sha1 = "a7c216d267545169637b3b6edc6ca9119e2ff93f";
+      };
+    }
+
+    {
+      name = "util-0.10.4.tgz";
+      path = fetchurl {
+        name = "util-0.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz";
+        sha1 = "3aa0125bfe668a4672de58857d3ace27ecb76901";
+      };
+    }
+
+    {
+      name = "utile-0.3.0.tgz";
+      path = fetchurl {
+        name = "utile-0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/utile/-/utile-0.3.0.tgz";
+        sha1 = "1352c340eb820e4d8ddba039a4fbfaa32ed4ef3a";
+      };
+    }
+
+    {
+      name = "utils-merge-1.0.0.tgz";
+      path = fetchurl {
+        name = "utils-merge-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz";
+        sha1 = "0294fb922bb9375153541c4f7096231f287c8af8";
+      };
+    }
+
+    {
+      name = "utils-merge-1.0.1.tgz";
+      path = fetchurl {
+        name = "utils-merge-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
+        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+      };
+    }
+
+    {
+      name = "uue-3.1.2.tgz";
+      path = fetchurl {
+        name = "uue-3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/uue/-/uue-3.1.2.tgz";
+        sha1 = "e99368414e87200012eb37de4dbaebaa1c742ad2";
+      };
+    }
+
+    {
+      name = "uuid-3.3.2.tgz";
+      path = fetchurl {
+        name = "uuid-3.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz";
+        sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
+      };
+    }
+
+    {
+      name = "validate-npm-package-license-3.0.4.tgz";
+      path = fetchurl {
+        name = "validate-npm-package-license-3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+        sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
+      };
+    }
+
+    {
+      name = "validate-npm-package-name-3.0.0.tgz";
+      path = fetchurl {
+        name = "validate-npm-package-name-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz";
+        sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
+      };
+    }
+
+    {
+      name = "validator-10.9.0.tgz";
+      path = fetchurl {
+        name = "validator-10.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/validator/-/validator-10.9.0.tgz";
+        sha1 = "d10c11673b5061fb7ccf4c1114412411b2bac2a8";
+      };
+    }
+
+    {
+      name = "vary-1.1.2.tgz";
+      path = fetchurl {
+        name = "vary-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
+        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+      };
+    }
+
+    {
+      name = "vary-1.0.1.tgz";
+      path = fetchurl {
+        name = "vary-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/vary/-/vary-1.0.1.tgz";
+        sha1 = "99e4981566a286118dfb2b817357df7993376d10";
+      };
+    }
+
+    {
+      name = "vasync-1.6.4.tgz";
+      path = fetchurl {
+        name = "vasync-1.6.4.tgz";
+        url  = "https://registry.yarnpkg.com/vasync/-/vasync-1.6.4.tgz";
+        sha1 = "dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f";
+      };
+    }
+
+    {
+      name = "verror-1.10.0.tgz";
+      path = fetchurl {
+        name = "verror-1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+      };
+    }
+
+    {
+      name = "verror-1.6.0.tgz";
+      path = fetchurl {
+        name = "verror-1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz";
+        sha1 = "7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5";
+      };
+    }
+
+    {
+      name = "videostream-2.6.0.tgz";
+      path = fetchurl {
+        name = "videostream-2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/videostream/-/videostream-2.6.0.tgz";
+        sha1 = "7f0b2b84bc457c12cfe599aa2345f5cc06241ab6";
+      };
+    }
+
+    {
+      name = "wcwidth-1.0.1.tgz";
+      path = fetchurl {
+        name = "wcwidth-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz";
+        sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8";
+      };
+    }
+
+    {
+      name = "webfinger.js-2.7.0.tgz";
+      path = fetchurl {
+        name = "webfinger.js-2.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/webfinger.js/-/webfinger.js-2.7.0.tgz";
+        sha1 = "403354a14a65aeeba64c1408c18a387487cea106";
+      };
+    }
+
+    {
+      name = "webtorrent-0.102.4.tgz";
+      path = fetchurl {
+        name = "webtorrent-0.102.4.tgz";
+        url  = "https://registry.yarnpkg.com/webtorrent/-/webtorrent-0.102.4.tgz";
+        sha1 = "0902f5dddb244c4ca8137d5d678546b733adeb2f";
+      };
+    }
+
+    {
+      name = "which-module-2.0.0.tgz";
+      path = fetchurl {
+        name = "which-module-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
+        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+      };
+    }
+
+    {
+      name = "which-pm-runs-1.0.0.tgz";
+      path = fetchurl {
+        name = "which-pm-runs-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz";
+        sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb";
+      };
+    }
+
+    {
+      name = "which-1.3.1.tgz";
+      path = fetchurl {
+        name = "which-1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
+        sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+      };
+    }
+
+    {
+      name = "wide-align-1.1.3.tgz";
+      path = fetchurl {
+        name = "wide-align-1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+        sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
+      };
+    }
+
+    {
+      name = "widest-line-2.0.1.tgz";
+      path = fetchurl {
+        name = "widest-line-2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz";
+        sha1 = "7438764730ec7ef4381ce4df82fb98a53142a3fc";
+      };
+    }
+
+    {
+      name = "wildstring-1.0.8.tgz";
+      path = fetchurl {
+        name = "wildstring-1.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/wildstring/-/wildstring-1.0.8.tgz";
+        sha1 = "80b5f85b7f8aa98bc19cc230e60ac7f5e0dd226d";
+      };
+    }
+
+    {
+      name = "winston-transport-4.2.0.tgz";
+      path = fetchurl {
+        name = "winston-transport-4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.2.0.tgz";
+        sha1 = "a20be89edf2ea2ca39ba25f3e50344d73e6520e5";
+      };
+    }
+
+    {
+      name = "winston-2.1.1.tgz";
+      path = fetchurl {
+        name = "winston-2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/winston/-/winston-2.1.1.tgz";
+        sha1 = "3c9349d196207fd1bdff9d4bc43ef72510e3a12e";
+      };
+    }
+
+    {
+      name = "winston-3.1.0.tgz";
+      path = fetchurl {
+        name = "winston-3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/winston/-/winston-3.1.0.tgz";
+        sha1 = "80724376aef164e024f316100d5b178d78ac5331";
+      };
+    }
+
+    {
+      name = "wkx-0.4.5.tgz";
+      path = fetchurl {
+        name = "wkx-0.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/wkx/-/wkx-0.4.5.tgz";
+        sha1 = "a85e15a6e69d1bfaec2f3c523be3dfa40ab861d0";
+      };
+    }
+
+    {
+      name = "wordwrap-1.0.0.tgz";
+      path = fetchurl {
+        name = "wordwrap-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz";
+        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+      };
+    }
+
+    {
+      name = "worker-farm-1.6.0.tgz";
+      path = fetchurl {
+        name = "worker-farm-1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz";
+        sha1 = "aecc405976fab5a95526180846f0dba288f3a4a0";
+      };
+    }
+
+    {
+      name = "wrap-ansi-2.1.0.tgz";
+      path = fetchurl {
+        name = "wrap-ansi-2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+        sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+      };
+    }
+
+    {
+      name = "wrap-ansi-3.0.1.tgz";
+      path = fetchurl {
+        name = "wrap-ansi-3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz";
+        sha1 = "288a04d87eda5c286e060dfe8f135ce8d007f8ba";
+      };
+    }
+
+    {
+      name = "wrappy-1.0.2.tgz";
+      path = fetchurl {
+        name = "wrappy-1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    }
+
+    {
+      name = "write-file-atomic-2.3.0.tgz";
+      path = fetchurl {
+        name = "write-file-atomic-2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz";
+        sha1 = "1ff61575c2e2a4e8e510d6fa4e243cce183999ab";
+      };
+    }
+
+    {
+      name = "write-0.2.1.tgz";
+      path = fetchurl {
+        name = "write-0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz";
+        sha1 = "5fc03828e264cea3fe91455476f7a3c566cb0757";
+      };
+    }
+
+    {
+      name = "ws-1.1.2.tgz";
+      path = fetchurl {
+        name = "ws-1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz";
+        sha1 = "8a244fa052401e08c9886cf44a85189e1fd4067f";
+      };
+    }
+
+    {
+      name = "ws-6.1.2.tgz";
+      path = fetchurl {
+        name = "ws-6.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz";
+        sha1 = "3cc7462e98792f0ac679424148903ded3b9c3ad8";
+      };
+    }
+
+    {
+      name = "wtf-8-1.0.0.tgz";
+      path = fetchurl {
+        name = "wtf-8-1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz";
+        sha1 = "392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a";
+      };
+    }
+
+    {
+      name = "x-xss-protection-1.1.0.tgz";
+      path = fetchurl {
+        name = "x-xss-protection-1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.1.0.tgz";
+        sha1 = "4f1898c332deb1e7f2be1280efb3e2c53d69c1a7";
+      };
+    }
+
+    {
+      name = "xdg-basedir-3.0.0.tgz";
+      path = fetchurl {
+        name = "xdg-basedir-3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz";
+        sha1 = "496b2cc109eca8dbacfe2dc72b603c17c5870ad4";
+      };
+    }
+
+    {
+      name = "xhr2-0.1.4.tgz";
+      path = fetchurl {
+        name = "xhr2-0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz";
+        sha1 = "7f87658847716db5026323812f818cadab387a5f";
+      };
+    }
+
+    {
+      name = "xliff-4.1.2.tgz";
+      path = fetchurl {
+        name = "xliff-4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/xliff/-/xliff-4.1.2.tgz";
+        sha1 = "eb6fae21346d82653febd44d478f5748ad79fbd2";
+      };
+    }
+
+    {
+      name = "xml-js-1.6.8.tgz";
+      path = fetchurl {
+        name = "xml-js-1.6.8.tgz";
+        url  = "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.8.tgz";
+        sha1 = "e06419c54235f18f4c2cdda824cbd65a782330de";
+      };
+    }
+
+    {
+      name = "xml2js-0.4.19.tgz";
+      path = fetchurl {
+        name = "xml2js-0.4.19.tgz";
+        url  = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz";
+        sha1 = "686c20f213209e94abf0d1bcf1efaa291c7827a7";
+      };
+    }
+
+    {
+      name = "xml-1.0.1.tgz";
+      path = fetchurl {
+        name = "xml-1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz";
+        sha1 = "78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5";
+      };
+    }
+
+    {
+      name = "xmlbuilder-10.1.1.tgz";
+      path = fetchurl {
+        name = "xmlbuilder-10.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-10.1.1.tgz";
+        sha1 = "8cae6688cc9b38d850b7c8d3c0a4161dcaf475b0";
+      };
+    }
+
+    {
+      name = "xmlbuilder-9.0.7.tgz";
+      path = fetchurl {
+        name = "xmlbuilder-9.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
+        sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
+      };
+    }
+
+    {
+      name = "xmldom-0.1.19.tgz";
+      path = fetchurl {
+        name = "xmldom-0.1.19.tgz";
+        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.19.tgz";
+        sha1 = "631fc07776efd84118bf25171b37ed4d075a0abc";
+      };
+    }
+
+    {
+      name = "xmlhttprequest-ssl-1.5.3.tgz";
+      path = fetchurl {
+        name = "xmlhttprequest-ssl-1.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz";
+        sha1 = "185a888c04eca46c3e4070d99f7b49de3528992d";
+      };
+    }
+
+    {
+      name = "xmlhttprequest-ssl-1.5.5.tgz";
+      path = fetchurl {
+        name = "xmlhttprequest-ssl-1.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz";
+        sha1 = "c2876b06168aadc40e57d97e81191ac8f4398b3e";
+      };
+    }
+
+    {
+      name = "xtend-4.0.1.tgz";
+      path = fetchurl {
+        name = "xtend-4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz";
+        sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
+      };
+    }
+
+    {
+      name = "y18n-3.2.1.tgz";
+      path = fetchurl {
+        name = "y18n-3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz";
+        sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41";
+      };
+    }
+
+    {
+      name = "y18n-4.0.0.tgz";
+      path = fetchurl {
+        name = "y18n-4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
+        sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
+      };
+    }
+
+    {
+      name = "yallist-2.1.2.tgz";
+      path = fetchurl {
+        name = "yallist-2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
+        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+      };
+    }
+
+    {
+      name = "yallist-3.0.3.tgz";
+      path = fetchurl {
+        name = "yallist-3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz";
+        sha1 = "b4b049e314be545e3ce802236d6cd22cd91c3de9";
+      };
+    }
+
+    {
+      name = "yargs-parser-11.1.1.tgz";
+      path = fetchurl {
+        name = "yargs-parser-11.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz";
+        sha1 = "879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4";
+      };
+    }
+
+    {
+      name = "yargs-parser-8.1.0.tgz";
+      path = fetchurl {
+        name = "yargs-parser-8.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz";
+        sha1 = "f1376a33b6629a5d063782944da732631e966950";
+      };
+    }
+
+    {
+      name = "yargs-parser-9.0.2.tgz";
+      path = fetchurl {
+        name = "yargs-parser-9.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz";
+        sha1 = "9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077";
+      };
+    }
+
+    {
+      name = "yargs-11.1.0.tgz";
+      path = fetchurl {
+        name = "yargs-11.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz";
+        sha1 = "90b869934ed6e871115ea2ff58b03f4724ed2d77";
+      };
+    }
+
+    {
+      name = "yargs-12.0.5.tgz";
+      path = fetchurl {
+        name = "yargs-12.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz";
+        sha1 = "05f5997b609647b64f66b81e3b4b10a368e7ad13";
+      };
+    }
+
+    {
+      name = "yeast-0.1.2.tgz";
+      path = fetchurl {
+        name = "yeast-0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz";
+        sha1 = "008e06d8094320c372dbc2f8ed76a0ca6c8ac419";
+      };
+    }
+
+    {
+      name = "yn-2.0.0.tgz";
+      path = fetchurl {
+        name = "yn-2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz";
+        sha1 = "e5adabc8acf408f6385fc76495684c88e6af689a";
+      };
+    }
+
+    {
+      name = "youtube-dl-1.12.2.tgz";
+      path = fetchurl {
+        name = "youtube-dl-1.12.2.tgz";
+        url  = "https://registry.yarnpkg.com/youtube-dl/-/youtube-dl-1.12.2.tgz";
+        sha1 = "11985268564c92b229f62b43d97374f86a605d1d";
+      };
+    }
+
+    {
+      name = "z-schema-3.24.2.tgz";
+      path = fetchurl {
+        name = "z-schema-3.24.2.tgz";
+        url  = "https://registry.yarnpkg.com/z-schema/-/z-schema-3.24.2.tgz";
+        sha1 = "193560e718812d98fdc190c38871b634b92f2386";
+      };
+    }
+
+    {
+      name = "zero-fill-2.2.3.tgz";
+      path = fetchurl {
+        name = "zero-fill-2.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/zero-fill/-/zero-fill-2.2.3.tgz";
+        sha1 = "a3def06ba5e39ae644850bb4ca2ad4112b4855e9";
+      };
+    }
+  ];
+}
index 2e10a46620ff8fd4681c50c306df3ff12ac01049..2060c79156490f7e6ecbc490dbf68bd0e41d94b1 100644 (file)
@@ -59,6 +59,7 @@ in {
       extraConfig = [
         ''
           <Directory "/var/lib/ftp/tools.immae.eu">
+            DirectoryIndex index.php index.htm index.html
             AllowOverride all
             Require all granted
             <FilesMatch "\.php$">