diff --git a/node_modules/interpret/CHANGELOG b/node_modules/interpret/CHANGELOG
new file mode 100644
index 0000000..cbc8a8a
--- /dev/null
+++ b/node_modules/interpret/CHANGELOG
@@ -0,0 +1,115 @@
+v1.0.3:
+  date: 2017-04-18
+  changes:
+    - fix buble support
+v1.0.2:
+  date: 2017-03-29
+  changes:
+    - add support for coffeescript (now with no hyphen)
+v1.0.1:
+  date: 2016-05-01
+  changes:
+    - add support for buble
+v1.0.0:
+  date: 2015-11-18
+  changes:
+    - add support for babel-register
+    - go stable!
+v0.6.6:
+  date: 2015-09-21
+  changes:
+    - add support for ts-node (formerly typescript-node)
+v0.6.5:
+  date: 2015-07-22
+  changes:
+    - add support for typescript 1.5 via typescript-node
+v0.6.4:
+  date: 2015-07-07
+  changes:
+    - add support for earlgrey
+v0.6.3:
+  date: 2015-07-03
+  changes:
+    - prefer babel/core to babel
+v0.6.2:
+  date: 2015-05-20
+  changes:
+    - update module list for iced coffee-script
+v0.6.1:
+  date: 2015-05-20
+  changes:
+    - Fix toml loader.
+v0.6.0:
+  date: 2015-05-19
+  changes:
+    - Combine fallbacks and loaders into `extensions`.
+    - Provide implementation guidance.
+v0.5.1:
+  date: 2015-03-01
+  changes:
+    - Add support for CirruScript.
+v0.5.0:
+  date: 2015-02-27
+  changes:
+    - Refactor es6 support via Babel (formerly 6to5)
+v0.4.3:
+  date: 2015-02-09
+  changes:
+    - Switch support from typescript-require to typescript-register.
+v0.4.2:
+  date: 2015-01-16
+  changes:
+    - Add support for wisp.
+v0.4.1:
+  date: 2015-01-10
+  changes:
+    - Add support for 6to5 (es6)
+v0.4.0:
+  date: 2014-01-09
+  changes:
+    - Add support for fallback (legacy) modules
+    - Add support for module configurations
+v0.3.10:
+  date: 2014-12-17
+  changes:
+    - Add support for json5.
+v0.3.9:
+  date: 2014-12-08
+  changes:
+    - Add support for literate iced coffee.
+v0.3.8:
+  date: 2014-11-20
+  changes:
+    - Add support for [cjsx](https://github.com/jsdf/coffee-react).
+v0.3.7:
+  date: 2014-09-08
+  changes:
+    - Add support for [TypeScript](http://www.typescriptlang.org/).
+v0.3.6:
+  date: 2014-08-25
+  changes:
+    - Add support for coffee.md.
+v0.3.5:
+  date: 2014-07-03
+  changes:
+    - Add support for jsx.
+v0.3.4:
+  date: 2014-06-27
+  changes:
+    - Make .js first jsVariant entry.
+v0.3.3:
+  date: 2014-06-02
+  changes:
+    - Fix casing on livescript dependency.
+v0.3.0:
+  date: 2014-04-20
+  changes:
+    - Simplify loading of coffee-script and iced-coffee-script.
+v0.2.0:
+  date: 2014-04-20
+  changes:
+    - Move module loading into rechoir.
+v0.1.0:
+  date: 2014-04-20
+  changes:
+    - Initial public release.
diff --git a/node_modules/interpret/LICENSE b/node_modules/interpret/LICENSE
new file mode 100644
index 0000000..a55f5b7
--- /dev/null
+++ b/node_modules/interpret/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) 2014 Tyler Kellen
+
+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/interpret/README.md b/node_modules/interpret/README.md
new file mode 100644
index 0000000..3f134ec
--- /dev/null
+++ b/node_modules/interpret/README.md
@@ -0,0 +1,145 @@
+# interpret
+> A dictionary of file extensions and associated module loaders.
+
+[![NPM](https://nodei.co/npm/interpret.png)](https://nodei.co/npm/interpret/)
+
+## What is it
+This is used by [Liftoff](http://github.com/tkellen/node-liftoff) to automatically require dependencies for configuration files, and by [rechoir](http://github.com/tkellen/node-rechoir) for registering module loaders.
+
+## API
+
+### extensions
+Map file types to modules which provide a [require.extensions] loader.
+
+```js
+{
+  '.babel.js': [
+    {
+      module: '@babel/register',
+      register: function (module) {
+        module({
+          // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
+          // which only captures the final extension (.babel.js -> .js)
+          extensions: '.js'
+        });
+      }
+    },
+    {
+      module: 'babel-register',
+      register: function (module) {
+        module({
+          // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
+          // which only captures the final extension (.babel.js -> .js)
+          extensions: '.js'
+        });
+      }
+    },
+    {
+      module: 'babel-core/register',
+      register: function (module) {
+        module({
+          extensions: '.js'
+        });
+      }
+    },
+    {
+      module: 'babel/register',
+      register: function (module) {
+        module({
+          extensions: '.js'
+        });
+      }
+    }
+  ],
+  '.buble.js': 'buble/register',
+  '.cirru': 'cirru-script/lib/register',
+  '.cjsx': 'node-cjsx/register',
+  '.co': 'coco',
+  '.coffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
+  '.coffee.md': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
+  '.csv': 'require-csv',
+  '.eg': 'earlgrey/register',
+  '.iced': ['iced-coffee-script/register', 'iced-coffee-script'],
+  '.iced.md': 'iced-coffee-script/register',
+  '.ini': 'require-ini',
+  '.js': null,
+  '.json': null,
+  '.json5': 'json5/lib/require',
+  '.jsx': [
+    {
+      module: '@babel/register',
+      register: function (module) {
+        module({
+          extensions: '.jsx'
+        });
+      }
+    },
+    {
+      module: 'babel-register',
+      register: function (module) {
+        module({
+          extensions: '.jsx'
+        });
+      }
+    },
+    {
+      module: 'babel-core/register',
+      register: function (module) {
+        module({
+          extensions: '.jsx'
+        });
+      }
+    },
+    {
+      module: 'babel/register',
+      register: function (module) {
+        module({
+          extensions: '.jsx'
+        });
+      },
+    },
+    {
+      module: 'node-jsx',
+      register: function (module) {
+        module.install({
+          extension: '.jsx',
+          harmony: true
+        });
+      }
+    }
+  ],
+  '.litcoffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
+  '.liticed': 'iced-coffee-script/register',
+  '.ls': ['livescript', 'LiveScript'],
+  '.node': null,
+  '.toml': {
+    module: 'toml-require',
+    register: function (module) {
+      module.install();
+    }
+  },
+  '.ts': ['ts-node/register', 'typescript-node/register', 'typescript-register', 'typescript-require'],
+  '.tsx': ['ts-node/register', 'typescript-node/register'],
+  '.wisp': 'wisp/engine/node',
+  '.xml': 'require-xml',
+  '.yaml': 'require-yaml',
+  '.yml': 'require-yaml'
+};
+```
+
+### jsVariants
+Same as above, but only include the extensions which are javascript variants.
+
+## How to use it
+
+Consumers should use the exported `extensions` or `jsVariants` object to determine which module should be loaded for a given extension. If a matching extension is found, consumers should do the following:
+
+1. If the value is null, do nothing.
+
+2. If the value is a string, try to require it.
+
+3. If the value is an object, try to require the `module` property. If successful, the `register` property (a function) should be called with the module passed as the first argument.
+
+4. If the value is an array, iterate over it, attempting step #2 or #3 until one of the attempts does not throw.
+
+[require.extensions]: http://nodejs.org/api/globals.html#globals_require_extensions
diff --git a/node_modules/interpret/index.js b/node_modules/interpret/index.js
new file mode 100644
index 0000000..cba2f1b
--- /dev/null
+++ b/node_modules/interpret/index.js
@@ -0,0 +1,141 @@
+const extensions = {
+  '.babel.js': [
+    {
+      module: '@babel/register',
+      register: function (module) {
+        module({
+          // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
+          // which only captures the final extension (.babel.js -> .js)
+          extensions: '.js'
+        });
+      }
+    },
+    {
+      module: 'babel-register',
+      register: function (module) {
+        module({
+          // register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
+          // which only captures the final extension (.babel.js -> .js)
+          extensions: '.js'
+        });
+      }
+    },
+    {
+      module: 'babel-core/register',
+      register: function (module) {
+        module({
+          extensions: '.js'
+        });
+      }
+    },
+    {
+      module: 'babel/register',
+      register: function (module) {
+        module({
+          extensions: '.js'
+        });
+      }
+    }
+  ],
+  '.buble.js': 'buble/register',
+  '.cirru': 'cirru-script/lib/register',
+  '.cjsx': 'node-cjsx/register',
+  '.co': 'coco',
+  '.coffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
+  '.coffee.md': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
+  '.csv': 'require-csv',
+  '.eg': 'earlgrey/register',
+  '.iced': ['iced-coffee-script/register', 'iced-coffee-script'],
+  '.iced.md': 'iced-coffee-script/register',
+  '.ini': 'require-ini',
+  '.js': null,
+  '.json': null,
+  '.json5': 'json5/lib/require',
+  '.jsx': [
+    {
+      module: '@babel/register',
+      register: function (module) {
+        module({
+          extensions: '.jsx'
+        });
+      }
+    },
+    {
+      module: 'babel-register',
+      register: function (module) {
+        module({
+          extensions: '.jsx'
+        });
+      }
+    },
+    {
+      module: 'babel-core/register',
+      register: function (module) {
+        module({
+          extensions: '.jsx'
+        });
+      }
+    },
+    {
+      module: 'babel/register',
+      register: function (module) {
+        module({
+          extensions: '.jsx'
+        });
+      },
+    },
+    {
+      module: 'node-jsx',
+      register: function (module) {
+        module.install({
+          extension: '.jsx',
+          harmony: true
+        });
+      }
+    }
+  ],
+  '.litcoffee': ['coffeescript/register', 'coffee-script/register', 'coffeescript', 'coffee-script'],
+  '.liticed': 'iced-coffee-script/register',
+  '.ls': ['livescript', 'LiveScript'],
+  '.node': null,
+  '.toml': {
+    module: 'toml-require',
+    register: function (module) {
+      module.install();
+    }
+  },
+  '.ts': ['ts-node/register', 'typescript-node/register', 'typescript-register', 'typescript-require'],
+  '.tsx': ['ts-node/register', 'typescript-node/register'],
+  '.wisp': 'wisp/engine/node',
+  '.xml': 'require-xml',
+  '.yaml': 'require-yaml',
+  '.yml': 'require-yaml'
+};
+
+const jsVariantExtensions = [
+  '.js',
+  '.babel.js',
+  '.buble.js',
+  '.cirru',
+  '.cjsx',
+  '.co',
+  '.coffee',
+  '.coffee.md',
+  '.eg',
+  '.iced',
+  '.iced.md',
+  '.jsx',
+  '.litcoffee',
+  '.liticed',
+  '.ls',
+  '.ts',
+  '.wisp'
+];
+
+module.exports = {
+  extensions: extensions,
+  jsVariants: jsVariantExtensions.reduce(function (result, ext) {
+    result[ext] = extensions[ext];
+    return result;
+  }, {})
+};
diff --git a/node_modules/interpret/package.json b/node_modules/interpret/package.json
new file mode 100644
index 0000000..09a2291
--- /dev/null
+++ b/node_modules/interpret/package.json
@@ -0,0 +1,78 @@
+{
+  "_from": "interpret@~1.1.0",
+  "_id": "interpret@1.1.0",
+  "_inBundle": false,
+  "_integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
+  "_location": "/interpret",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "interpret@~1.1.0",
+    "name": "interpret",
+    "escapedName": "interpret",
+    "rawSpec": "~1.1.0",
+    "saveSpec": null,
+    "fetchSpec": "~1.1.0"
+  },
+  "_requiredBy": [
+    "/grunt/grunt-cli"
+  ],
+  "_resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+  "_shasum": "7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614",
+  "_spec": "interpret@~1.1.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\grunt\\node_modules\\grunt-cli",
+  "author": {
+    "name": "Tyler Kellen",
+    "url": "http://goingslowly.com/"
+  },
+  "bugs": {
+    "url": "https://github.com/tkellen/node-interpret/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "A dictionary of file extensions and associated module loaders.",
+  "homepage": "https://github.com/tkellen/node-interpret",
+  "keywords": [
+    "cirru-script",
+    "cjsx",
+    "co",
+    "coco",
+    "coffee",
+    "coffee-script",
+    "coffee.md",
+    "coffeescript",
+    "csv",
+    "earlgrey",
+    "es",
+    "es6",
+    "iced",
+    "iced.md",
+    "iced-coffee-script",
+    "ini",
+    "js",
+    "json",
+    "json5",
+    "jsx",
+    "react",
+    "litcoffee",
+    "liticed",
+    "ls",
+    "livescript",
+    "toml",
+    "ts",
+    "typescript",
+    "wisp",
+    "xml",
+    "yaml",
+    "yml"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "interpret",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/tkellen/node-interpret.git"
+  },
+  "version": "1.1.0"
+}
