diff --git a/node_modules/redent/index.js b/node_modules/redent/index.js
new file mode 100644
index 0000000..2b92020
--- /dev/null
+++ b/node_modules/redent/index.js
@@ -0,0 +1,7 @@
+'use strict';
+var stripIndent = require('strip-indent');
+var indentString = require('indent-string');
+
+module.exports = function (str, count, indent) {
+	return indentString(stripIndent(str), indent || ' ', count || 0);
+};
diff --git a/node_modules/redent/license b/node_modules/redent/license
new file mode 100644
index 0000000..654d0bf
--- /dev/null
+++ b/node_modules/redent/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+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/redent/package.json b/node_modules/redent/package.json
new file mode 100644
index 0000000..f00bdc0
--- /dev/null
+++ b/node_modules/redent/package.json
@@ -0,0 +1,75 @@
+{
+  "_from": "redent@^1.0.0",
+  "_id": "redent@1.0.0",
+  "_inBundle": false,
+  "_integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+  "_location": "/redent",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "redent@^1.0.0",
+    "name": "redent",
+    "escapedName": "redent",
+    "rawSpec": "^1.0.0",
+    "saveSpec": null,
+    "fetchSpec": "^1.0.0"
+  },
+  "_requiredBy": [
+    "/meow"
+  ],
+  "_resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+  "_shasum": "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde",
+  "_spec": "redent@^1.0.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\meow",
+  "author": {
+    "name": "Sindre Sorhus",
+    "email": "sindresorhus@gmail.com",
+    "url": "sindresorhus.com"
+  },
+  "bugs": {
+    "url": "https://github.com/sindresorhus/redent/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "indent-string": "^2.1.0",
+    "strip-indent": "^1.0.1"
+  },
+  "deprecated": false,
+  "description": "Strip redundant indentation and indent the string",
+  "devDependencies": {
+    "ava": "*",
+    "xo": "*"
+  },
+  "engines": {
+    "node": ">=0.10.0"
+  },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/sindresorhus/redent#readme",
+  "keywords": [
+    "string",
+    "str",
+    "strip",
+    "trim",
+    "indent",
+    "indentation",
+    "add",
+    "reindent",
+    "normalize",
+    "remove",
+    "whitespace",
+    "space"
+  ],
+  "license": "MIT",
+  "name": "redent",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/sindresorhus/redent.git"
+  },
+  "scripts": {
+    "test": "xo && ava"
+  },
+  "version": "1.0.0"
+}
diff --git a/node_modules/redent/readme.md b/node_modules/redent/readme.md
new file mode 100644
index 0000000..8e7a807
--- /dev/null
+++ b/node_modules/redent/readme.md
@@ -0,0 +1,48 @@
+# redent [![Build Status](https://travis-ci.org/sindresorhus/redent.svg?branch=master)](https://travis-ci.org/sindresorhus/redent)
+
+> [Strip redundant indentation](https://github.com/sindresorhus/strip-indent) and [indent the string](https://github.com/sindresorhus/indent-string)
+
+
+## Install
+
+```
+$ npm install --save redent
+```
+
+
+## Usage
+
+```js
+const redent = require('redent');
+
+redent('\n  foo\n    bar\n', 1);
+//=> '\n foo\n   bar\n'
+```
+
+
+## API
+
+### redent(input, [count], [indent])
+
+#### input
+
+Type: `string`
+
+#### count
+
+Type: `number`  
+Default: `0`
+
+How many times you want `indent` repeated.
+
+#### indent
+
+Type: `string`  
+Default: `' '`
+
+The string to use for the indent.
+
+
+## License
+
+MIT © [Sindre Sorhus](http://sindresorhus.com)
