diff --git a/node_modules/arch/LICENSE b/node_modules/arch/LICENSE
new file mode 100644
index 0000000..c7e6852
--- /dev/null
+++ b/node_modules/arch/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) Feross Aboukhadijeh
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/arch/README.md b/node_modules/arch/README.md
new file mode 100644
index 0000000..8ab14a6
--- /dev/null
+++ b/node_modules/arch/README.md
@@ -0,0 +1,71 @@
+# arch [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]
+
+[travis-image]: https://img.shields.io/travis/feross/arch/master.svg
+[travis-url]: https://travis-ci.org/feross/arch
+[npm-image]: https://img.shields.io/npm/v/arch.svg
+[npm-url]: https://npmjs.org/package/arch
+[downloads-image]: https://img.shields.io/npm/dm/arch.svg
+[downloads-url]: https://npmjs.org/package/arch
+[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
+[standard-url]: https://standardjs.com
+
+### Better `os.arch()` for node and the browser -- detect OS architecture
+
+[![Sauce Test Status](https://saucelabs.com/browser-matrix/arch2.svg)](https://saucelabs.com/u/arch2)
+
+This module is used by [WebTorrent Desktop](http://webtorrent.io/desktop) to
+determine if the user is on a 32-bit vs. 64-bit operating system to offer the
+right app installer.
+
+In Node.js, the `os.arch()` method (and `process.arch` property) returns a string
+identifying the operating system CPU architecture **for which the Node.js binary
+was compiled**.
+
+This is not the same as the **operating system CPU architecture**. For example,
+you can run Node.js 32-bit on a 64-bit OS. In that situation, `os.arch()` will
+return a misleading 'x86' (32-bit) value, instead of 'x64' (64-bit).
+
+Use this package to get the actual operating system CPU architecture.
+
+**BONUS: This package works in the browser too.**
+
+## install
+
+```
+npm install arch
+```
+
+## usage
+
+```js
+var arch = require('arch')
+console.log(arch()) // always returns 'x64' or 'x86'
+```
+
+In the browser, there is no spec that defines where this information lives, so we
+check all known locations including `navigator.userAgent`, `navigator.platform`,
+and `navigator.cpuClass` to make a best guess.
+
+If there is no *affirmative indication* that the architecture is 64-bit, then
+32-bit will be assumed. This makes this package perfect for determining what
+installer executable to offer to desktop app users. If there is ambiguity, then
+the user will get the 32-bit installer, which will work fine even for a user with
+a 64-bit OS.
+
+For reference, `x64` means 64-bit and `x86` means 32-bit.
+
+Here is some history behind these naming conventions:
+
+- https://en.wikipedia.org/wiki/X86
+- https://en.wikipedia.org/wiki/IA-32
+- https://en.wikipedia.org/wiki/X86-64
+
+## Node.js proposal - `os.sysarch()`
+
+Note: There is
+[a proposal](https://github.com/nodejs/node-v0.x-archive/issues/2862#issuecomment-103942051)
+to add this functionality to Node.js as `os.sysarch()`.
+
+## license
+
+MIT. Copyright (c) [Feross Aboukhadijeh](http://feross.org).
diff --git a/node_modules/arch/browser.js b/node_modules/arch/browser.js
new file mode 100644
index 0000000..eca04d0
--- /dev/null
+++ b/node_modules/arch/browser.js
@@ -0,0 +1,43 @@
+module.exports = function arch () {
+  /**
+   * User agent strings that indicate a 64-bit OS.
+   * See: http://stackoverflow.com/a/13709431/292185
+   */
+  var userAgent = navigator.userAgent
+  if ([
+    'x86_64',
+    'x86-64',
+    'Win64',
+    'x64;',
+    'amd64',
+    'AMD64',
+    'WOW64',
+    'x64_64'
+  ].some(function (str) {
+    return userAgent.indexOf(str) > -1
+  })) {
+    return 'x64'
+  }
+
+  /**
+   * Platform strings that indicate a 64-bit OS.
+   * See: http://stackoverflow.com/a/19883965/292185
+   */
+  var platform = navigator.platform
+  if (platform === 'MacIntel' || platform === 'Linux x86_64') {
+    return 'x64'
+  }
+
+  /**
+   * CPU class strings that indicate a 64-bit OS.
+   * See: http://stackoverflow.com/a/6267019/292185
+   */
+  if (navigator.cpuClass === 'x64') {
+    return 'x64'
+  }
+
+  /**
+   * If none of the above, assume the architecture is 32-bit.
+   */
+  return 'x86'
+}
diff --git a/node_modules/arch/index.d.ts b/node_modules/arch/index.d.ts
new file mode 100644
index 0000000..acbce66
--- /dev/null
+++ b/node_modules/arch/index.d.ts
@@ -0,0 +1,4 @@
+
+declare function arch(): 'x64' | 'x86';
+
+export = arch;
diff --git a/node_modules/arch/index.js b/node_modules/arch/index.js
new file mode 100644
index 0000000..7d90b8a
--- /dev/null
+++ b/node_modules/arch/index.js
@@ -0,0 +1,60 @@
+/*! arch. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
+var cp = require('child_process')
+var fs = require('fs')
+var path = require('path')
+
+/**
+ * Returns the operating system's CPU architecture. This is different than
+ * `process.arch` or `os.arch()` which returns the architecture the Node.js (or
+ * Electron) binary was compiled for.
+ */
+module.exports = function arch () {
+  /**
+   * The running binary is 64-bit, so the OS is clearly 64-bit.
+   */
+  if (process.arch === 'x64') {
+    return 'x64'
+  }
+
+  /**
+   * All recent versions of Mac OS are 64-bit.
+   */
+  if (process.platform === 'darwin') {
+    return 'x64'
+  }
+
+  /**
+   * On Windows, the most reliable way to detect a 64-bit OS from within a 32-bit
+   * app is based on the presence of a WOW64 file: %SystemRoot%\SysNative.
+   * See: https://twitter.com/feross/status/776949077208510464
+   */
+  if (process.platform === 'win32') {
+    var useEnv = false
+    try {
+      useEnv = !!(process.env.SYSTEMROOT && fs.statSync(process.env.SYSTEMROOT))
+    } catch (err) {}
+
+    var sysRoot = useEnv ? process.env.SYSTEMROOT : 'C:\\Windows'
+
+    // If %SystemRoot%\SysNative exists, we are in a WOW64 FS Redirected application.
+    var isWOW64 = false
+    try {
+      isWOW64 = !!fs.statSync(path.join(sysRoot, 'sysnative'))
+    } catch (err) {}
+
+    return isWOW64 ? 'x64' : 'x86'
+  }
+
+  /**
+   * On Linux, use the `getconf` command to get the architecture.
+   */
+  if (process.platform === 'linux') {
+    var output = cp.execSync('getconf LONG_BIT', { encoding: 'utf8' })
+    return output === '64\n' ? 'x64' : 'x86'
+  }
+
+  /**
+   * If none of the above, assume the architecture is 32-bit.
+   */
+  return 'x86'
+}
diff --git a/node_modules/arch/package.json b/node_modules/arch/package.json
new file mode 100644
index 0000000..6a3780c
--- /dev/null
+++ b/node_modules/arch/package.json
@@ -0,0 +1,85 @@
+{
+  "_from": "arch@^2.1.0",
+  "_id": "arch@2.2.0",
+  "_inBundle": false,
+  "_integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
+  "_location": "/arch",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "arch@^2.1.0",
+    "name": "arch",
+    "escapedName": "arch",
+    "rawSpec": "^2.1.0",
+    "saveSpec": null,
+    "fetchSpec": "^2.1.0"
+  },
+  "_requiredBy": [
+    "/os-filter-obj"
+  ],
+  "_resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
+  "_shasum": "1bc47818f305764f23ab3306b0bfc086c5a29d11",
+  "_spec": "arch@^2.1.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\os-filter-obj",
+  "author": {
+    "name": "Feross Aboukhadijeh",
+    "email": "feross@feross.org",
+    "url": "https://feross.org"
+  },
+  "browser": "browser.js",
+  "bugs": {
+    "url": "https://github.com/feross/arch/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Better `os.arch()` for node and the browser -- detect OS architecture",
+  "devDependencies": {
+    "airtap": "^3.0.0",
+    "standard": "*",
+    "tape": "^5.0.0"
+  },
+  "funding": [
+    {
+      "type": "github",
+      "url": "https://github.com/sponsors/feross"
+    },
+    {
+      "type": "patreon",
+      "url": "https://www.patreon.com/feross"
+    },
+    {
+      "type": "consulting",
+      "url": "https://feross.org/support"
+    }
+  ],
+  "homepage": "https://github.com/feross/arch",
+  "keywords": [
+    "browser",
+    "browserify",
+    "arch",
+    "cpu info",
+    "cpus",
+    "architecture",
+    "navigator.platform",
+    "x64",
+    "x86",
+    "64 bit",
+    "32 bit"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "arch",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/feross/arch.git"
+  },
+  "scripts": {
+    "test": "standard && npm run test-node && npm run test-browser",
+    "test-browser": "airtap -- test/*.js",
+    "test-browser-local": "airtap --local -- test/*.js",
+    "test-node": "tape test/*.js"
+  },
+  "types": "./index.d.ts",
+  "version": "2.2.0"
+}
