diff --git a/node_modules/p-pipe/index.js b/node_modules/p-pipe/index.js
new file mode 100644
index 0000000..cbc7f49
--- /dev/null
+++ b/node_modules/p-pipe/index.js
@@ -0,0 +1,17 @@
+'use strict';
+
+// TODO: Use rest/spread when targeting Node.js 6
+
+module.exports = function (input) {
+	const args = Array.isArray(input) ? input : arguments;
+
+	if (args.length === 0) {
+		return Promise.reject(new Error('Expected at least one argument'));
+	}
+
+	return [].slice.call(args, 1).reduce((a, b) => {
+		return function () {
+			return Promise.resolve(a.apply(null, arguments)).then(b);
+		};
+	}, args[0]);
+};
diff --git a/node_modules/p-pipe/license b/node_modules/p-pipe/license
new file mode 100644
index 0000000..e7af2f7
--- /dev/null
+++ b/node_modules/p-pipe/license
@@ -0,0 +1,9 @@
+MIT License
+
+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/p-pipe/package.json b/node_modules/p-pipe/package.json
new file mode 100644
index 0000000..5bbf16a
--- /dev/null
+++ b/node_modules/p-pipe/package.json
@@ -0,0 +1,73 @@
+{
+  "_from": "p-pipe@^1.1.0",
+  "_id": "p-pipe@1.2.0",
+  "_inBundle": false,
+  "_integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=",
+  "_location": "/p-pipe",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "p-pipe@^1.1.0",
+    "name": "p-pipe",
+    "escapedName": "p-pipe",
+    "rawSpec": "^1.1.0",
+    "saveSpec": null,
+    "fetchSpec": "^1.1.0"
+  },
+  "_requiredBy": [
+    "/grunt-contrib-imagemin/imagemin"
+  ],
+  "_resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz",
+  "_shasum": "4b1a11399a11520a67790ee5a0c1d5881d6befe9",
+  "_spec": "p-pipe@^1.1.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\grunt-contrib-imagemin\\node_modules\\imagemin",
+  "author": {
+    "name": "Sindre Sorhus",
+    "email": "sindresorhus@gmail.com",
+    "url": "sindresorhus.com"
+  },
+  "bugs": {
+    "url": "https://github.com/sindresorhus/p-pipe/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Compose promise-returning & async functions into a reusable pipeline",
+  "devDependencies": {
+    "ava": "*",
+    "xo": "*"
+  },
+  "engines": {
+    "node": ">=4"
+  },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/sindresorhus/p-pipe#readme",
+  "keywords": [
+    "promise",
+    "pipe",
+    "pipeline",
+    "compose",
+    "composition",
+    "combine",
+    "flow",
+    "serial",
+    "functions",
+    "reusable",
+    "async",
+    "await",
+    "promises",
+    "bluebird"
+  ],
+  "license": "MIT",
+  "name": "p-pipe",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/sindresorhus/p-pipe.git"
+  },
+  "scripts": {
+    "test": "xo && ava"
+  },
+  "version": "1.2.0"
+}
diff --git a/node_modules/p-pipe/readme.md b/node_modules/p-pipe/readme.md
new file mode 100644
index 0000000..5dbc4f2
--- /dev/null
+++ b/node_modules/p-pipe/readme.md
@@ -0,0 +1,53 @@
+# p-pipe [![Build Status](https://travis-ci.org/sindresorhus/p-pipe.svg?branch=master)](https://travis-ci.org/sindresorhus/p-pipe)
+
+> Compose promise-returning & async functions into a reusable pipeline
+
+
+## Install
+
+```
+$ npm install p-pipe
+```
+
+
+## Usage
+
+```js
+const pPipe = require('p-pipe');
+
+const addUnicorn = str => Promise.resolve(`${str} Unicorn`);
+const addRainbow = str => Promise.resolve(`${str} Rainbow`);
+
+const pipeline = pPipe(addUnicorn, addRainbow);
+
+pipeline('❤️').then(console.log);
+//=> '❤️ Unicorn Rainbow'
+```
+
+
+## API
+
+### pPipe(input, …)
+
+The `input` functions are applied from left to right.
+
+You can also specify an array as the first argument instead of multiple function arguments. Mostly only useful if you have to support Node.js 4. With Node.js 6 and above you can just use spread syntax.
+
+#### input
+
+Type: `Function`
+
+Expected to return a `Promise` or any value.
+
+
+## Related
+
+- [p-each-series](https://github.com/sindresorhus/p-each-series) - Iterate over promises serially
+- [p-series](https://github.com/sindresorhus/p-series) - Run promise-returning & async functions in series
+- [p-waterfall](https://github.com/sindresorhus/p-waterfall) - Run promise-returning & async functions in series, each passing its result to the next
+- [More…](https://github.com/sindresorhus/promise-fun)
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
