text: (function webpackUniversalModuleDefinition(root, factory) {
  	if(typeof exports === 'object' && typeof module === 'object')
  		module.exports = factory();
  	else if(typeof define === 'function' && define.amd)
  		define("tapas", [], factory);
  	else if(typeof exports === 'object')
  		exports["tapas"] = factory();
  	else
  		root["tapas"] = factory();
  })(this, function() {
  return /******/ (function(modules) { // webpackBootstrap
  /******/ 	// The module cache
  /******/ 	var installedModules = {};
  /******/
  /******/ 	// The require function
  /******/ 	function __webpack_require__(moduleId) {
  /******/
  /******/ 		// Check if module is in cache
  /******/ 		if(installedModules[moduleId])
  /******/ 			return installedModules[moduleId].exports;
  /******/
  /******/ 		// Create a new module (and put it into the cache)
  /******/ 		var module = installedModules[moduleId] = {
  /******/ 			exports: {},
  /******/ 			id: moduleId,
  /******/ 			loaded: false
  /******/ 		};
  /******/
  /******/ 		// Execute the module function
  /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  /******/
  /******/ 		// Flag the module as loaded
  /******/ 		module.loaded = true;
  /******/
  /******/ 		// Return the exports of the module
  /******/ 		return module.exports;
  /******/ 	}
  /******/
  /******/
  /******/ 	// expose the modules object (__webpack_modules__)
  /******/ 	__webpack_require__.m = modules;
  /******/
  /******/ 	// expose the module cache
  /******/ 	__webpack_require__.c = installedModules;
  /******/
  /******/ 	// __webpack_public_path__
  /******/ 	__webpack_require__.p = "";
  /******/
  /******/ 	// Load entry module and return exports
  /******/ 	return __webpack_require__(0);
  /******/ })
  /************************************************************************/
  /******/ ([
  /* 0 */
  /***/ function(module, exports, __webpack_require__) {
  
  	'use strict';
  	
  	Object.defineProperty(exports, "__esModule", {
  	  value: true
  	});
  	
  	var _keys = __webpack_require__(40);
  	
  	var _keys2 = _interopRequireDefault(_keys);
  	
  	var _deepmerge = __webpack_require__(44);
  	
  	var _deepmerge2 = _interopRequireDefault(_deepmerge);
  	
  	function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  	
  	function Tapas(config) {
  	  this.cache = {};
  	  this.requests = {};
  	  this.needed = {};
  	  this.lastEntryPoint = null;
  	}
  	
  	Tapas.prototype.need = function () {
  	  var _this = this,
  	      _arguments = arguments;
  	
  	  (0, _keys2.default)(arguments).forEach(function (index) {
  	    _this.lastEntryPoint = _arguments[index].split('.')[0];
  	    _this.needed = (0, _deepmerge2.default)(_this.needed, constructNeededWithPath(_arguments[index]));
  	  });
  	
  	  return this;
  	};
  	
  	function constructNeededWithPath(path) {
  	  var pathArray = path.split('.');
  	  var object = {};
  	
  	  pathArray.reduce(function (prev, curr, index) {
  	    if (pathArray.length - 1 === index) {
  	      prev[curr] = {
  	        cache: undefined
  	      };
  	    } else {
  	      prev[curr] = {};
  	    }
  	
  	    return prev[curr];
  	  }, object);
  	
  	  return object;
  	}
  	
  	exports.default = Tapas;
  
  /***/ },
  /* 1 */,
  /* 2 */,
  /* 3 */,
  /* 4 */,
  /* 5 */
  /***/ function(module, exports, __webpack_require__) {
  
  	var global    = __webpack_require__(6)
  	  , core      = __webpack_require__(7)
  	  , ctx       = __webpack_require__(8)
  	  , hide      = __webpack_require__(10)
  	  , PROTOTYPE = 'prototype';
  	
  	var $export = function(type, name, source){
  	  var IS_FORCED = type & $export.F
  	    , IS_GLOBAL = type & $export.G
  	    , IS_STATIC = type & $export.S
  	    , IS_PROTO  = type & $export.P
  	    , IS_BIND   = type & $export.B
  	    , IS_WRAP   = type & $export.W
  	    , exports   = IS_GLOBAL ? core : core[name] || (core[name] = {})
  	    , expProto  = exports[PROTOTYPE]
  	    , target    = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
  	    , key, own, out;
  	  if(IS_GLOBAL)source = name;
  	  for(key in source){
  	    // contains in native
  	    own = !IS_FORCED && target && target[key] !== undefined;
  	    if(own && key in exports)continue;
  	    // export native or passed
  	    out = own ? target[key] : source[key];
  	    // prevent global pollution for namespaces
  	    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
  	    // bind timers to global for call from export context
  	    : IS_BIND && own ? ctx(out, global)
  	    // wrap global constructors for prevent change them in library
  	    : IS_WRAP && target[key] == out ? (function(C){
  	      var F = function(a, b, c){
  	        if(this instanceof C){
  	          switch(arguments.length){
  	            case 0: return new C;
  	            case 1: return new C(a);
  	            case 2: return new C(a, b);
  	          } return new C(a, b, c);
  	        } return C.apply(this, arguments);
  	      };
  	      F[PROTOTYPE] = C[PROTOTYPE];
  	      return F;
  	    // make static versions for prototype methods
  	    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
  	    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
  	    if(IS_PROTO){
  	      (exports.virtual || (exports.virtual = {}))[key] = out;
  	      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
  	      if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
  	    }
  	  }
  	};
  	// type bitmap
  	$export.F = 1;   // forced
  	$export.G = 2;   // global
  	$export.S = 4;   // static
  	$export.P = 8;   // proto
  	$export.B = 16;  // bind
  	$export.W = 32;  // wrap
  	$export.U = 64;  // safe
  	$export.R = 128; // real proto method for `library` 
  	module.exports = $export;
  
  /***/ },
  /* 6 */
  /***/ function(module, exports) {
  
  	// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
  	var global = module.exports = typeof window != 'undefined' && window.Math == Math
  	  ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
  	if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
  
  /***/ },
  /* 7 */
  /***/ function(module, exports) {
  
  	var core = module.exports = {version: '2.4.0'};
  	if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
  
  /***/ },
  /* 8 */
  /***/ function(module, exports, __webpack_require__) {
  
  	// optional / simple context binding
  	var aFunction = __webpack_require__(9);
  	module.exports = function(fn, that, length){
  	  aFunction(fn);
  	  if(that === undefined)return fn;
  	  switch(length){
  	    case 1: return function(a){
  	      return fn.call(that, a);
  	    };
  	    case 2: return function(a, b){
  	      return fn.call(that, a, b);
  	    };
  	    case 3: return function(a, b, c){
  	      return fn.call(that, a, b, c);
  	    };
  	  }
  	  return function(/* ...args */){
  	    return fn.apply(that, arguments);
  	  };
  	};
  
  /***/ },
  /* 9 */
  /***/ function(module, exports) {
  
  	module.exports = function(it){
  	  if(typeof it != 'function')throw TypeError(it + ' is not a function!');
  	  return it;
  	};
  
  /***/ },
  /* 10 */
  /***/ function(module, exports, __webpack_require__) {
  
  	var dP         = __webpack_require__(11)
  	  , createDesc = __webpack_require__(19);
  	module.exports = __webpack_require__(15) ? function(object, key, value){
  	  return dP.f(object, key, createDesc(1, value));
  	} : function(object, key, value){
  	  object[key] = value;
  	  return object;
  	};
  
  /***/ },
  /* 11 */
  /***/ function(module, exports, __webpack_require__) {
  
  	var anObject       = __webpack_require__(12)
  	  , IE8_DOM_DEFINE = __webpack_require__(14)
  	  , toPrimitive    = __webpack_require__(18)
  	  , dP             = Object.defineProperty;
  	
  	exports.f = __webpack_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes){
  	  anObject(O);
  	  P = toPrimitive(P, true);
  	  anObject(Attributes);
  	  if(IE8_DOM_DEFINE)try {
  	    return dP(O, P, Attributes);
  	  } catch(e){ /* empty */ }
  	  if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
  	  if('value' in Attributes)O[P] = Attributes.value;
  	  return O;
  	};
  
  /***/ },
  /* 12 */
  /***/ function(module, exports, __webpack_require__) {
  
  	var isObject = __webpack_require__(13);
  	module.exports = function(it){
  	  if(!isObject(it))throw TypeError(it + ' is not an object!');
  	  return it;
  	};
  
  /***/ },
  /* 13 */
  /***/ function(module, exports) {
  
  	module.exports = function(it){
  	  return typeof it === 'object' ? it !== null : typeof it === 'function';
  	};
  
  /***/ },
  /* 14 */
  /***/ function(module, exports, __webpack_require__) {
  
  	module.exports = !__webpack_require__(15) && !__webpack_require__(16)(function(){
  	  return Object.defineProperty(__webpack_require__(17)('div'), 'a', {get: function(){ return 7; }}).a != 7;
  	});
  
  /***/ },
  /* 15 */
  /***/ function(module, exports, __webpack_require__) {
  
  	// Thank's IE8 for his funny defineProperty
  	module.exports = !__webpack_require__(16)(function(){
  	  return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
  	});
  
  /***/ },
  /* 16 */
  /***/ function(module, exports) {
  
  	module.exports = function(exec){
  	  try {
  	    return !!exec();
  	  } catch(e){
  	    return true;
  	  }
  	};
  
  /***/ },
  /* 17 */
  /***/ function(module, exports, __webpack_require__) {
  
  	var isObject = __webpack_require__(13)
  	  , document = __webpack_require__(6).document
  	  // in old IE typeof document.createElement is 'object'
  	  , is = isObject(document) && isObject(document.createElement);
  	module.exports = function(it){
  	  return is ? document.createElement(it) : {};
  	};
  
  /***/ },
  /* 18 */
  /***/ function(module, exports, __webpack_require__) {
  
  	// 7.1.1 ToPrimitive(input [, PreferredType])
  	var isObject = __webpack_require__(13);
  	// instead of the ES6 spec version, we didn't implement @@toPrimitive case
  	// and the second argument - flag - preferred type is a string
  	module.exports = function(it, S){
  	  if(!isObject(it))return it;
  	  var fn, val;
  	  if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
  	  if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
  	  if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
  	  throw TypeError("Can't convert object to primitive value");
  	};
  
  /***/ },
  /* 19 */
  /***/ function(module, exports) {
  
  	module.exports = function(bitmap, value){
  	  return {
  	    enumerable  : !(bitmap & 1),
  	    configurable: !(bitmap & 2),
  	    writable    : !(bitmap & 4),
  	    value       : value
  	  };
  	};
  
  /***/ },
  /* 20 */,
  /* 21 */
  /***/ function(module, exports, __webpack_require__) {
  
  	// 19.1.2.14 / 15.2.3.14 Object.keys(O)
  	var $keys       = __webpack_require__(22)
  	  , enumBugKeys = __webpack_require__(35);
  	
  	module.exports = Object.keys || function keys(O){
  	  return $keys(O, enumBugKeys);
  	};
  
  /***/ },
  /* 22 */
  /***/ function(module, exports, __webpack_require__) {
  
  	var has          = __webpack_require__(23)
  	  , toIObject    = __webpack_require__(24)
  	  , arrayIndexOf = __webpack_require__(28)(false)
  	  , IE_PROTO     = __webpack_require__(32)('IE_PROTO');
  	
  	module.exports = function(object, names){
  	  var O      = toIObject(object)
  	    , i      = 0
  	    , result = []
  	    , key;
  	  for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
  	  // Don't enum bug & hidden keys
  	  while(names.length > i)if(has(O, key = names[i++])){
  	    ~arrayIndexOf(result, key) || result.push(key);
  	  }
  	  return result;
  	};
  
  /***/ },
  /* 23 */
  /***/ function(module, exports) {
  
  	var hasOwnProperty = {}.hasOwnProperty;
  	module.exports = function(it, key){
  	  return hasOwnProperty.call(it, key);
  	};
  
  /***/ },
  /* 24 */
  /***/ function(module, exports, __webpack_require__) {
  
  	// to indexed object, toObject with fallback for non-array-like ES3 strings
  	var IObject = __webpack_require__(25)
  	  , defined = __webpack_require__(27);
  	module.exports = function(it){
  	  return IObject(defined(it));
  	};
  
  /***/ },
  /* 25 */
  /***/ function(module, exports, __webpack_require__) {
  
  	// fallback for non-array-like ES3 and non-enumerable old V8 strings
  	var cof = __webpack_require__(26);
  	module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
  	  return cof(it) == 'String' ? it.split('') : Object(it);
  	};
  
  /***/ },
  /* 26 */
  /***/ function(module, exports) {
  
  	var toString = {}.toString;
  	
  	module.exports = function(it){
  	  return toString.call(it).slice(8, -1);
  	};
  
  /***/ },
  /* 27 */
  /***/ function(module, exports) {
  
  	// 7.2.1 RequireObjectCoercible(argument)
  	module.exports = function(it){
  	  if(it == undefined)throw TypeError("Can't call method on  " + it);
  	  return it;
  	};
  
  /***/ },
  /* 28 */
  /***/ function(module, exports, __webpack_require__) {
  
  	// false -> Array#indexOf
  	// true  -> Array#includes
  	var toIObject = __webpack_require__(24)
  	  , toLength  = __webpack_require__(29)
  	  , toIndex   = __webpack_require__(31);
  	module.exports = function(IS_INCLUDES){
  	  return function($this, el, fromIndex){
  	    var O      = toIObject($this)
  	      , length = toLength(O.length)
  	      , index  = toIndex(fromIndex, length)
  	      , value;
  	    // Array#includes uses SameValueZero equality algorithm
  	    if(IS_INCLUDES && el != el)while(length > index){
  	      value = O[index++];
  	      if(value != value)return true;
  	    // Array#toIndex ignores holes, Array#includes - not
  	    } else for(;length > index; index++)if(IS_INCLUDES || index in O){
  	      if(O[index] === el)return IS_INCLUDES || index || 0;
  	    } return !IS_INCLUDES && -1;
  	  };
  	};
  
  /***/ },
  /* 29 */
  /***/ function(module, exports, __webpack_require__) {
  
  	// 7.1.15 ToLength
  	var toInteger = __webpack_require__(30)
  	  , min       = Math.min;
  	module.exports = function(it){
  	  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
  	};
  
  /***/ },
  /* 30 */
  /***/ function(module, exports) {
  
  	// 7.1.4 ToInteger
  	var ceil  = Math.ceil
  	  , floor = Math.floor;
  	module.exports = function(it){
  	  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
  	};
  
  /***/ },
  /* 31 */
  /***/ function(module, exports, __webpack_require__) {
  
  	var toInteger = __webpack_require__(30)
  	  , max       = Math.max
  	  , min       = Math.min;
  	module.exports = function(index, length){
  	  index = toInteger(index);
  	  return index < 0 ? max(index + length, 0) : min(index, length);
  	};
  
  /***/ },
  /* 32 */
  /***/ function(module, exports, __webpack_require__) {
  
  	var shared = __webpack_require__(33)('keys')
  	  , uid    = __webpack_require__(34);
  	module.exports = function(key){
  	  return shared[key] || (shared[key] = uid(key));
  	};
  
  /***/ },
  /* 33 */
  /***/ function(module, exports, __webpack_require__) {
  
  	var global = __webpack_require__(6)
  	  , SHARED = '__core-js_shared__'
  	  , store  = global[SHARED] || (global[SHARED] = {});
  	module.exports = function(key){
  	  return store[key] || (store[key] = {});
  	};
  
  /***/ },
  /* 34 */
  /***/ function(module, exports) {
  
  	var id = 0
  	  , px = Math.random();
  	module.exports = function(key){
  	  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
  	};
  
  /***/ },
  /* 35 */
  /***/ function(module, exports) {
  
  	// IE 8- don't enum bug keys
  	module.exports = (
  	  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
  	).split(',');
  
  /***/ },
  /* 36 */,
  /* 37 */,
  /* 38 */
  /***/ function(module, exports, __webpack_require__) {
  
  	// 7.1.13 ToObject(argument)
  	var defined = __webpack_require__(27);
  	module.exports = function(it){
  	  return Object(defined(it));
  	};
  
  /***/ },
  /* 39 */,
  /* 40 */
  /***/ function(module, exports, __webpack_require__) {
  
  	module.exports = { "default": __webpack_require__(41), __esModule: true };
  
  /***/ },
  /* 41 */
  /***/ function(module, exports, __webpack_require__) {
  
  	__webpack_require__(42);
  	module.exports = __webpack_require__(7).Object.keys;
  
  /***/ },
  /* 42 */
  /***/ function(module, exports, __webpack_require__) {
  
  	// 19.1.2.14 Object.keys(O)
  	var toObject = __webpack_require__(38)
  	  , $keys    = __webpack_require__(21);
  	
  	__webpack_require__(43)('keys', function(){
  	  return function keys(it){
  	    return $keys(toObject(it));
  	  };
  	});
  
  /***/ },
  /* 43 */
  /***/ function(module, exports, __webpack_require__) {
  
  	// most Object methods by ES6 should accept primitives
  	var $export = __webpack_require__(5)
  	  , core    = __webpack_require__(7)
  	  , fails   = __webpack_require__(16);
  	module.exports = function(KEY, exec){
  	  var fn  = (core.Object || {})[KEY] || Object[KEY]
  	    , exp = {};
  	  exp[KEY] = exec(fn);
  	  $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);
  	};
  
  /***/ },
  /* 44 */
  /***/ function(module, exports, __webpack_require__) {
  
  	var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory) {
  	    if (true) {
  	        !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
  	    } else if (typeof exports === 'object') {
  	        module.exports = factory();
  	    } else {
  	        root.deepmerge = factory();
  	    }
  	}(this, function () {
  	
  	return function deepmerge(target, src) {
  	    var array = Array.isArray(src);
  	    var dst = array && [] || {};
  	
  	    if (array) {
  	        target = target || [];
  	        dst = dst.concat(target);
  	        src.forEach(function(e, i) {
  	            if (typeof dst[i] === 'undefined') {
  	                dst[i] = e;
  	            } else if (typeof e === 'object') {
  	                dst[i] = deepmerge(target[i], e);
  	            } else {
  	                if (target.indexOf(e) === -1) {
  	                    dst.push(e);
  	                }
  	            }
  	        });
  	    } else {
  	        if (target && typeof target === 'object') {
  	            Object.keys(target).forEach(function (key) {
  	                dst[key] = target[key];
  	            })
  	        }
  	        Object.keys(src).forEach(function (key) {
  	            if (typeof src[key] !== 'object' || !src[key]) {
  	                dst[key] = src[key];
  	            }
  	            else {
  	                if (!target[key]) {
  	                    dst[key] = src[key];
  	                } else {
  	                    dst[key] = deepmerge(target[key], src[key]);
  	                }
  	            }
  	        });
  	    }
  	
  	    return dst;
  	}
  	
  	}));
  
  
  /***/ }
  /******/ ])
  });
  ;
  //# sourceMappingURL=tapas.js.map