text: /******/ (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] = {
  /******/ 			i: moduleId,
  /******/ 			l: false,
  /******/ 			exports: {}
  /******/ 		};
  /******/
  /******/ 		// Execute the module function
  /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  /******/
  /******/ 		// Flag the module as loaded
  /******/ 		module.l = 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;
  /******/
  /******/ 	// define getter function for harmony exports
  /******/ 	__webpack_require__.d = function(exports, name, getter) {
  /******/ 		if(!__webpack_require__.o(exports, name)) {
  /******/ 			Object.defineProperty(exports, name, {
  /******/ 				configurable: false,
  /******/ 				enumerable: true,
  /******/ 				get: getter
  /******/ 			});
  /******/ 		}
  /******/ 	};
  /******/
  /******/ 	// getDefaultExport function for compatibility with non-harmony modules
  /******/ 	__webpack_require__.n = function(module) {
  /******/ 		var getter = module && module.__esModule ?
  /******/ 			function getDefault() { return module['default']; } :
  /******/ 			function getModuleExports() { return module; };
  /******/ 		__webpack_require__.d(getter, 'a', getter);
  /******/ 		return getter;
  /******/ 	};
  /******/
  /******/ 	// Object.prototype.hasOwnProperty.call
  /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  /******/
  /******/ 	// __webpack_public_path__
  /******/ 	__webpack_require__.p = "/";
  /******/
  /******/ 	// Load entry module and return exports
  /******/ 	return __webpack_require__(__webpack_require__.s = 1);
  /******/ })
  /************************************************************************/
  /******/ ([
  /* 0 */
  /***/ (function(module, exports) {
  
  eval("/**\n * @copyright Copyright (c) 2015 All Rights Reserved.\n * @author Baris Yuksel <baris@onehundredyearsofcode.com>\n *\n * @file Module that export csvdata, a datastructure for csv data.\n */\nexports = module.exports = csvdata;\n\n/**\n * Represents csv data with some columns and rows.\n * May have column names.\n * @constructor\n */\nfunction csvdata() {\n  this.columnCount = 0; // number of columns\n  this.rowCount = 0; // number of rows\n  this.errors = []; // errors\n  this.columnNames = []; // column names\n  this.rows = []; // all the rows, each row is an Array object too\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/simplecsv/lib/csvdata.js\n// module id = 0\n// module chunks = 0\n\n//# sourceURL=webpack:///./node_modules/simplecsv/lib/csvdata.js?");
  
  /***/ }),
  /* 1 */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("/* WEBPACK VAR INJECTION */(function(global) {\n\nvar _simplecsv = __webpack_require__(3);\n\nvar _simplecsv2 = _interopRequireDefault(_simplecsv);\n\n__webpack_require__(6);\n\n__webpack_require__(11);\n\nvar _defaultTranslations = __webpack_require__(12);\n\nvar _defaultTranslations2 = _interopRequireDefault(_defaultTranslations);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// HTML\n\nvar bannerTemplate = function bannerTemplate(translations) {\n  return '<div class=\"choc-banner choc-padding--tiny\">\\n    <p>\\n      ' + translations[\"bannerTemplate.text\"] + '\\n      <a href=\"#\" data-choc-action=\"showBannerInfo\" class=\"choc-display--none choc-display--sm-inline-block\">' + translations[\"bannerTemplate.actionOpen\"] + '</a>\\n      <span class=\"choc-banner__description\">\\n        ' + translations[\"bannerTemplate.description\"] + '\\n        <a href=\"#\" data-choc-action=\"presentModal\">' + translations[\"bannerTemplate.actionOpen\"] + '</a>\\n        <a href=\"#\" data-choc-action=\"acceptAllCookies\">' + translations[\"bannerTemplate.actionSluiten\"] + '</a>\\n      </span>\\n    </p>\\n  </div>';\n};\n\nvar modalTemplate = function modalTemplate(translations) {\n  return '<div class=\"choc-modal__overlay\">\\n      <div class=\"choc-modal\">\\n        <div class=\"choc-padding--v-medium choc-padding--h-small\">\\n          <a href=\"#\" class=\"choc-close-btn\" data-choc-action=\"dismissModal\">Sluiten</a>\\n          <h3>' + translations[\"modalTemplate.settings\"] + '</h3>\\n        </div>\\n\\n        <hr class=\"choc-hr\" />\\n\\n        <div class=\"choc-float--clearfix\">\\n          <div class=\"choc-tabs__navigation\">\\n            <ul>\\n              <li class=\"choc-tabs__link choc-tabs__link--state-active choc-display--block\"><a data-choc-action=\"show-tab\" href=\"#\">' + translations[\"modalTemplate.functionalHeader\"] + '</a></li>\\n              <li class=\"choc-tabs__link choc-display--none\" data-choc-preference-tab=\"userPreferences\"><a data-choc-action=\"show-tab\" href=\"#\">' + translations[\"modalTemplate.preferenceHeader\"] + '</a></li>\\n              <li class=\"choc-tabs__link choc-display--none\" data-choc-preference-tab=\"analytics\"><a data-choc-action=\"show-tab\" href=\"#\">' + translations[\"modalTemplate.analyticalHeader\"] + '</a></li>\\n              <li class=\"choc-tabs__link choc-display--none\" data-choc-preference-tab=\"advertisements\"><a data-choc-action=\"show-tab\" href=\"#\">' + translations[\"modalTemplate.advertHeader\"] + '</a></li>\\n            </ul>\\n          </div>\\n\\n          <div class=\"choc-tabs__dynamic-content choc-float--left choc-padding--small\">\\n            <div class=\"choc-tabs__item\" data-choc-tab=\"0\">\\n              <div class=\"choc-tabs__header\">\\n                <h3>' + translations[\"modalTemplate.functionalHeader\"] + '</h3>\\n\\n                <label class=\"choc-form__toggle\">\\n                  <input type=\"checkbox\" data-choc-preference=\"functional\" disabled>\\n                  ' + translations[\"modalTemplate.mandatory\"] + '\\n                </label>\\n              </div>\\n\\n              <p>' + translations[\"modalTemplate.functionalText\"] + '</p>\\n\\n              <div data-choc-cookies-table=\"functional\"></div>\\n            </div>\\n\\n            <div class=\"choc-tabs__item\" data-choc-tab=\"1\">\\n              <div class=\"choc-tabs__header\">\\n                <h3>' + translations[\"modalTemplate.preferenceHeader\"] + '</h3>\\n\\n                <label class=\"choc-form__toggle\">\\n                  <input type=\"checkbox\" data-choc-preference=\"userPreferences\">\\n                  <span>' + translations[\"modalTemplate.enable\"] + '</span>\\n                </label>\\n              </div>\\n\\n              <p>' + translations[\"modalTemplate.preferenceText\"] + '</p>\\n\\n              <div data-choc-cookies-table=\"userPreferences\"></div>\\n            </div>\\n\\n            <div class=\"choc-tabs__item\" data-choc-tab=\"2\">\\n              <div class=\"choc-tabs__header\">\\n                <h3>' + translations[\"modalTemplate.analyticalHeader\"] + '</h3>\\n\\n                <label class=\"choc-form__toggle\">\\n                  <input type=\"checkbox\" data-choc-preference=\"analytics\">\\n                  <span>' + translations[\"modalTemplate.enable\"] + '</span>\\n                </label>\\n              </div>\\n\\n              <p>' + translations[\"modalTemplate.analyticalText\"] + '</p>\\n\\n              <div data-choc-cookies-table=\"analytics\"></div>\\n            </div>\\n\\n            <div class=\"choc-tabs__item\" data-choc-tab=\"3\">\\n              <div class=\"choc-tabs__header\">\\n                <h3>' + translations[\"modalTemplate.advertHeader\"] + '</h3>\\n\\n                <label class=\"choc-form__toggle\">\\n                  <input type=\"checkbox\" data-choc-preference=\"advertisements\">\\n                  <span>' + translations[\"modalTemplate.enable\"] + '</span>\\n                </label>\\n              </div>\\n\\n              <p>' + translations[\"modalTemplate.advertText\"] + '</p>\\n\\n              <div data-choc-cookies-table=\"advertisements\"></div>\\n            </div>\\n          </div>\\n        </div>\\n\\n        <hr class=\"choc-hr\" />\\n\\n        <div class=\"choc-padding--v-medium choc-padding--h-small choc-float--clearfix\">\\n          <div class=\"choc-float--left choc-float--sm-none\">\\n            <a href=\"#\" target=\"_blank\" data-choc-link=\"privacyPolicy\">' + translations[\"modalTemplate.privacy\"] + '</a>\\n          </div>\\n\\n          <div class=\"choc-float--right choc-float--sm-none choc-modal__actions\">\\n            <a href=\"#\" data-choc-action=\"dismissBanner\" class=\"choc-btn choc-btn--type-secondary choc-margin--right-nano\">' + translations[\"modalTemplate.actionWebsite\"] + '</a>\\n            <a href=\"#\" class=\"choc-btn\" data-choc-action=\"acceptAllCookies\">' + translations[\"modalTemplate.actionCookies\"] + '</a>\\n          </div>\\n        </div>\\n      </div>\\n    </div>';\n};\n\nvar cookieTableTemplate = function cookieTableTemplate(props) {\n  return '\\n    <table class=\"choc-table\">\\n      <thead>\\n        <tr>\\n          <th>' + props.translations['cookieTableTemplate.name'] + '</th>\\n          <th>' + props.translations['cookieTableTemplate.supplier'] + '</th>\\n          <th>' + props.translations['cookieTableTemplate.description'] + '</th>\\n          <th>' + props.translations['cookieTableTemplate.expiryDate'] + '</th>\\n        </tr>\\n      </thead>\\n\\n      <tbody>\\n        ' + (props.cookies == null || props.cookies.length < 1 ? '\\n          <td style=\"word-break: normal\">Geen cookies gespecificeerd.</td>\\n          <td></td>\\n          <td></td>\\n          <td></td>\\n        ' : '') + '\\n        ' + props.cookies.map(function (cookie) {\n    return cookieTableCellTemplate(cookie);\n  }).join('') + '\\n      </tbody>\\n    </table>\\n  ';\n};\n\nvar cookieTableCellTemplate = function cookieTableCellTemplate(props) {\n  return '\\n    <tr>\\n      <td>' + props.name + '</td>\\n      <td>' + props.vendor + '</td>\\n      <td>' + props.description + '</td>\\n      <td>' + props.expiryDate + '</td>\\n    </tr>\\n  ';\n};\n\nvar renderHTML = function renderHTML(htmlString) {\n  var div = document.createElement('div');\n  div.innerHTML = htmlString.trim();\n  return div.firstChild;\n};\n\n// ! taken from: https://plainjs.com/javascript/utilities/set-cookie-get-cookie-and-delete-cookie-5/\nvar getCookie = function getCookie(name) {\n  var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n  return v ? v[2] : null;\n};\n\n// ! taken from: https://plainjs.com/javascript/utilities/set-cookie-get-cookie-and-delete-cookie-5/\nvar setCookie = function setCookie(name, value, days) {\n  var d = new Date();\n  d.setTime(d.getTime() + 24 * 60 * 60 * 1000 * days);\n  document.cookie = name + \"=\" + value + \";path=/;expires=\" + d.toGMTString();\n};\n\n// ! taken from: https://gist.github.com/rmruano/4638071\nvar createXHRRequest = function createXHRRequest(type, url) {\n  var xhr = false;\n  try {\n    xhr = new XMLHttpRequest();\n  } catch (e) {}\n  if (xhr && \"withCredentials\" in xhr) {\n    xhr.open(type, url, true); // Standard Cors request\n  } else if (typeof XDomainRequest != \"undefined\") {\n    xhr = new XDomainRequest(); // IE Cors request\n    xhr.open(type, url);\n    xhr.onload = function () {\n      this.readyState = 4;\n      if (this.onreadystatechange instanceof Function) this.onreadystatechange();\n    };\n  } else if (xhr) {\n    xhr.open(type, url, true);\n  };\n  return xhr;\n};\n\nglobal.ChocolateChip = {\n\n  // MARK: Public\n\n  eat: function eat(options) {\n    var providedTranslations = options.translations != null ? options.translations : {};\n    var language = _defaultTranslations2.default[options.language] != null || providedTranslations[options.language] != null ? options.language : 'nl_NL';\n    var translations = Object.assign({}, _defaultTranslations2.default[language], providedTranslations[language]);\n    this._options = Object.assign({}, this._options, options, { translations: translations });\n\n    var body = document.getElementsByTagName('body')[0];\n    body.insertBefore(renderHTML(bannerTemplate(translations)), body.firstChild);\n    body.insertBefore(renderHTML(modalTemplate(translations)), body.firstChild);\n\n    this._componentDidMount();\n  },\n\n\n  // MARK: Private\n\n  // Initial State\n  _state: {\n    isChocolateChipHidden: false,\n    isPreferenceModalVisible: false,\n    isMoreInfoVisible: false,\n\n    cookiesByCategory: null,\n\n    cookiePreferences: {\n      functional: true,\n      userPreferences: false,\n      analytics: false,\n      advertisements: false\n    }\n  },\n\n  _options: {\n    includes: ['userPreferences', 'analytics', 'advertisements'],\n    privacyPolicyURL: null\n  },\n\n  _firedEvents: [],\n\n  _componentDidMount: function _componentDidMount() {\n    // Apply options to DOM structure\n    this._options.includes.forEach(function (key) {\n      document.querySelector('[data-choc-preference-tab=' + key + ']').style.display = 'block';\n    });\n\n    if (this._options.privacyPolicyURL != null) {\n      this._options.privacyPolicyURL = typeof this._options.privacyPolicyURL === 'string' ? this._options.privacyPolicyURL : this._options.privacyPolicyURL[this._options.language];\n      document.querySelector('[data-choc-link=privacyPolicy]').setAttribute('href', this._options.privacyPolicyURL);\n    } else {\n      document.querySelector('[data-choc-link=privacyPolicy]').style.display = 'none';\n    }\n\n    // Apply cookie consent to state, if non existing, saves intial state in cookie consent.\n    var cookieConsentString = getCookie('cookieConsent');\n    if (cookieConsentString != null) {\n      this._setState(JSON.parse(cookieConsentString));\n    } else {\n      this._saveCookiePreferences();\n    }\n\n    // Hide consent if user navigated the website before\n    if (localStorage.getItem('initialUrl') != null && localStorage.getItem('initialUrl') != window.location.href && this._state.isChocolateChipHidden !== true) {\n      acceptAll();\n    };\n\n    if (localStorage.getItem('initialUrl') == null) {\n      localStorage.setItem('initialUrl', window.location.href);\n    };\n\n    // Component becomes inactive after mount\n    this._bindEvents();\n  },\n  _fireGoogleTagManagerEvents: function _fireGoogleTagManagerEvents() {\n    var _this = this;\n\n    window.dataLayer = window.dataLayer || [];\n\n    var enabledCookies = Object.keys(this._state.cookiePreferences).filter(function (key) {\n      return _this._state.cookiePreferences[key] === true && _this._firedEvents.includes(key) !== true;\n    }).forEach(function (key) {\n      _this._firedEvents.push(key);\n      window.dataLayer.push({ event: 'ChocolateChip_' + key });\n    });\n  },\n  _setState: function _setState(state) {\n    var prevState = Object.assign({}, this._state);\n    this._state = Object.assign({}, prevState, state);\n    this._didUpdateState(prevState);\n  },\n  _didUpdateState: function _didUpdateState(prevState) {\n    var _this2 = this;\n\n    // Save cookies & notify Google Tag Manager\n    this._saveCookiePreferences();\n    this._fireGoogleTagManagerEvents();\n\n    // UI updates\n    var cookiePreferences = this._state.cookiePreferences;\n\n\n    Object.keys(cookiePreferences).forEach(function (key) {\n      var checked = cookiePreferences[key];\n      var span = document.querySelector('[data-choc-preference=' + key + ']').parentElement.querySelector('span');\n\n      var translations = _this2._options.translations;\n\n      if (span != null) {\n        span.innerHTML = checked ? translations['modalTemplate.enabled'] : translations['modalTemplate.enable'];\n      }\n\n      document.querySelector('[data-choc-preference=' + key + ']').checked = checked;\n    });\n\n    if (this._state.isChocolateChipHidden === true) {\n      document.querySelector('.choc-banner').style.display = 'none';\n    }\n\n    if (this._state.isPreferenceModalVisible === true) {\n      document.querySelector('.choc-modal__overlay').style.display = 'block';\n      document.getElementsByTagName('body')[0].style.overflow = 'hidden';\n      this._fetchCookiesFromCSV();\n    } else {\n      document.querySelector('.choc-modal__overlay').style.display = 'none';\n      document.getElementsByTagName('body')[0].style.overflow = 'auto';\n    }\n\n    if (prevState.cookiesByCategory !== this._state.cookiesByCategory) {\n      Object.keys(this._state.cookiesByCategory).forEach(function (category) {\n        var html = cookieTableTemplate({ cookies: _this2._state.cookiesByCategory[category], translations: _this2._options.translations });\n        document.querySelector('[data-choc-cookies-table=\"' + category + '\"]').appendChild(renderHTML(html));\n      });\n    }\n\n    var bannerDescription = document.querySelector('.choc-banner__description');\n    if (this._state.isMoreInfoVisible === true) {\n      if (bannerDescription.classList.contains('choc-banner__description--visible') !== true) {\n        bannerDescription.classList.add('choc-banner__description--visible');\n\n        var showMoreInfoButton = document.querySelector('[data-choc-action=\"showBannerInfo\"]');\n        showMoreInfoButton.style.display = 'none';\n      }\n    }\n  },\n  _saveCookiePreferences: function _saveCookiePreferences() {\n    // Update Cookie consent\n    var _state = this._state,\n        isChocolateChipHidden = _state.isChocolateChipHidden,\n        cookiePreferences = _state.cookiePreferences;\n\n\n    var cookieConsentString = JSON.stringify({ isChocolateChipHidden: isChocolateChipHidden, cookiePreferences: cookiePreferences });\n    setCookie('cookieConsent', cookieConsentString, 60);\n  },\n  _fetchCookiesFromCSV: function _fetchCookiesFromCSV() {\n    var _this3 = this;\n\n    if (this._options.cookiesSheetURL == null || this._state.cookiesByCategory != null) {\n      return;\n    } else {\n      this._options.cookiesSheetURL = typeof this._options.cookiesSheetURL === 'string' ? this._options.cookiesSheetURL : this._options.cookiesSheetURL[this._options.language];\n    }\n\n    var xhr = createXHRRequest('GET', this._options.cookiesSheetURL);\n\n    xhr.onreadystatechange = function () {\n      if (xhr.readyState === 4) {\n        var csv = new _simplecsv2.default.csv();\n        var jsonString = csv.CSVToJSON(xhr.responseText, { hasHeaders: true });\n        var cookies = JSON.parse(jsonString);\n\n        _this3._setState({ cookiesByCategory: _this3._mapCookiesToCategories(cookies) });\n      }\n    };\n\n    xhr.send();\n  },\n  _mapCookiesToCategories: function _mapCookiesToCategories(cookies) {\n    var categories = this._options.includes.concat(['functional']);\n\n    var dictionary = categories.reduce(function (result, category) {\n      return Object.assign(result, _defineProperty({}, category, []));\n    }, {});\n\n    return cookies.reduce(function (result, cookie) {\n      if (result[cookie.category] != null) {\n        return Object.assign(result, _defineProperty({}, cookie.category, result[cookie.category].concat([cookie])));\n      }\n\n      return Object.assign(result, {\n        functional: result.functional.concat([cookie])\n      });\n    }, dictionary);\n  },\n  _bindEvents: function _bindEvents() {\n    var _this4 = this;\n\n    var acceptAll = function acceptAll() {\n      _this4._setState({\n        isChocolateChipHidden: true,\n        isPreferenceModalVisible: false,\n\n        cookiePreferences: Object.keys(_this4._state.cookiePreferences).reduce(function (result, key) {\n          return Object.assign(result, _defineProperty({}, key, true));\n        }, {})\n      });\n    };\n\n    var dismissModalEventHandler = function dismissModalEventHandler(event) {\n      event.preventDefault();\n      _this4._setState({ isPreferenceModalVisible: false });\n    };\n\n    var presentModalEventHandler = function presentModalEventHandler(event) {\n      event.preventDefault();\n      _this4._setState({ isPreferenceModalVisible: true });\n    };\n\n    var dismissBannerEventHandler = function dismissBannerEventHandler(event) {\n      event.preventDefault();\n      _this4._setState({\n        isChocolateChipHidden: true,\n        isPreferenceModalVisible: false\n      });\n    };\n\n    var setTabActiveAt = function setTabActiveAt(index) {\n      var tabItems = document.getElementsByClassName('choc-tabs__item');\n\n      for (var i = 0; i < tabItems.length; i++) {\n        var item = tabItems[i];\n        item.style.display = i === index ? 'block' : 'none';\n      }\n\n      var tabLinks = document.getElementsByClassName('choc-tabs__link');\n      for (var _i = 0; _i < tabLinks.length; _i++) {\n        var link = tabLinks[_i];\n\n        if (_i === index) {\n          link.classList.add('choc-tabs__link--state-active');\n        } else {\n          link.classList.remove('choc-tabs__link--state-active');\n        }\n      }\n    };\n\n    // `NodeList.forEach()` does not exist in most versions of internet explorer, therefore we\n    // use a regular for loop\n    var tabLinks = document.querySelectorAll('[data-choc-action=show-tab]');\n\n    var _loop = function _loop(i) {\n      tabLinks[i].addEventListener('click', function (event) {\n        event.preventDefault();\n        setTabActiveAt(i);\n      });\n    };\n\n    for (var i = 0; i < tabLinks.length; i++) {\n      _loop(i);\n    }\n\n    var showMoreInfoButton = document.querySelector('[data-choc-action=\"showBannerInfo\"]');\n    showMoreInfoButton.addEventListener('click', function (event) {\n      event.preventDefault();\n      _this4._setState({ isMoreInfoVisible: true });\n    });\n\n    var presentModalButtons = document.querySelectorAll('[data-choc-action=presentModal]');\n    for (var i = 0; i < presentModalButtons.length; i++) {\n      presentModalButtons[i].addEventListener('click', presentModalEventHandler);\n    }\n\n    var dismissModalButtons = document.querySelectorAll('[data-choc-action=dismissModal]');\n    for (var _i2 = 0; _i2 < dismissModalButtons.length; _i2++) {\n      dismissModalButtons[_i2].addEventListener('click', dismissModalEventHandler);\n    }\n\n    var dismissBannerButtons = document.querySelectorAll('[data-choc-action=dismissBanner]');\n    for (var _i3 = 0; _i3 < dismissBannerButtons.length; _i3++) {\n      dismissBannerButtons[_i3].addEventListener('click', dismissBannerEventHandler);\n    }\n\n    var preferenceCheckboxes = document.querySelectorAll('[data-choc-preference]');\n    for (var _i4 = 0; _i4 < preferenceCheckboxes.length; _i4++) {\n      preferenceCheckboxes[_i4].addEventListener('change', function (event) {\n        var cookiePreferences = _this4._state.cookiePreferences;\n        var checked = event.target.checked;\n\n        var key = event.target.getAttribute('data-choc-preference');\n\n        // Remove unchecked preferences from firedEvents\n        if (checked === false) {\n          _this4._firedEvents = _this4._firedEvents.filter(function (event) {\n            return event !== key;\n          });\n        }\n\n        _this4._setState({\n          cookiePreferences: Object.assign({}, cookiePreferences, _defineProperty({}, key, checked))\n        });\n      });\n    }\n\n    var acceptAllButtons = document.querySelectorAll('[data-choc-action=acceptAllCookies]');\n    for (var _i5 = 0; _i5 < acceptAllButtons.length; _i5++) {\n      acceptAllButtons[_i5].addEventListener('click', function (event) {\n        event.preventDefault();\n\n        document.getElementsByTagName('body')[0].style.overflow = 'auto';\n        acceptAll();\n      });\n    }\n\n    var banner = document.querySelector('.choc-banner');\n    banner.addEventListener('click', function (event) {\n      event.stopPropagation();\n    });\n\n    // Firstly stop propagation on the modal, to use the overlay as control for dismissal\n    var modal = document.querySelector('.choc-modal');\n    modal.addEventListener('click', function (event) {\n      event.stopPropagation();\n    });\n\n    // Dismiss overlay whlist clicking on the overlay background. Afterwards stop propagation\n    // to not use this as body acceptAll action\n    var modalOverlay = document.querySelector('.choc-modal__overlay');\n    modalOverlay.addEventListener('click', function (event) {\n      dismissModalEventHandler(event);\n      event.stopPropagation();\n    });\n\n    // Interpret clicks as approval of cookie consent. Areas that should not count as approval\n    // should not propogate their event. Use `event.stopPropagation()` for any click event that\n    // should not be used as approval of consent.\n    var body = document.getElementsByTagName('body')[0];\n    var hasBeenClicked = false;\n\n    var bodyClickCount = 0;\n    body.addEventListener('click', function () {\n      console.log('body clicked');\n      console.log('body click', bodyClickCount);\n      bodyClickCount += 1;\n\n      // DO NOT use `preventDefault()` otherwise other links on page will be ignored\n      // If cookie banner is still active, accept all cookies\n\n      // assuming body is clicked once by the 'website' itself\n      if (_this4._state.isChocolateChipHidden !== true && hasBeenClicked === true && bodyClickCount > 2) {\n        acceptAll();\n      }\n\n      if (hasBeenClicked === false) {\n        hasBeenClicked = true;\n      }\n    });\n  }\n};\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/chocolatechip.js\n// module id = 1\n// module chunks = 0\n\n//# sourceURL=webpack:///./lib/chocolatechip.js?");
  
  /***/ }),
  /* 2 */
  /***/ (function(module, exports) {
  
  eval("var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 2\n// module chunks = 0\n\n//# sourceURL=webpack:///(webpack)/buildin/global.js?");
  
  /***/ }),
  /* 3 */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/**\n * @copyright Copyright (c) 2015 All Rights Reserved.\n * @author Baris Yuksel <baris@onehundredyearsofcode.com>\n *\n * Fast and compact CSV parser for parsing CSV with CSV to JSON support.\n *\n * @module\n */\nexports = module.exports = {\n  /** A class for keeping csv data after it is parsed.\n   * @function\n   */\n  csvdata : __webpack_require__ (0),\n  /** The csv parser class.\n   * @function\n   */\n  csv : __webpack_require__(4)\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/simplecsv/simplecsv.js\n// module id = 3\n// module chunks = 0\n\n//# sourceURL=webpack:///./node_modules/simplecsv/simplecsv.js?");
  
  /***/ }),
  /* 4 */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/**\n * @copyright Copyright (c) 2015 All Rights Reserved.\n * @author Baris Yuksel <baris@onehundredyearsofcode.com>\n *\n * @file Module that exports the csv() class. Should be used\n*  with new() to create new parser classes.\n */\nexports = module.exports = csv;\n\nvar csvdata = __webpack_require__(0),\n    private = __webpack_require__ (5);\n\n/**\n * Creates a new csv parser.\n * @constructor\n */\nfunction csv() {}\n\n/**\n * Converts CSV string to JSON.\n * @param {string} input - csv string\n * @param {dictionary} argdic - arguments for parsing the csv string\n * @return {string} JSON represantion of the csv string.\n * @example\n * CSVToJSON(\"magician, born\\r\\nhoudini, 1874\\r\\ncopperfield, 1956\\r\\n\",\n *           {hasHeaders: true});\n * // outputs:\n *   [ { \"magician\":\"houdini\",\n *       \"born\": 1874 },\n *     { \"magician\":\"copperfield\",\n *       \"born\":1956 } ]\n */\ncsv.prototype.CSVToJSON = function(input, argdic) {\n  return this.csvdataToJSON(this.parseString(input, argdic));\n};\n\n/**\n * Converts JSON to CSV string.\n * @param {string} input - JSON table string\n * @param {dictionary} argdic - arguments for creating the csv string.\n * @return {string} csv string corresponding to the JSON input.\n * @example\n * JSONToCSV( [ { \"magician\":\"houdini\", \"born\": 1874 },\n *              { \"magician\":\"copperfield\", \"born\":1956 } ]);\n * // outputs:\n * \"magician, born\\r\\nhoudini, 1874\\r\\ncopperfield, 1956\\r\\n\",\n */\ncsv.prototype.JSONToCSV = function(input, argdic) {\n  return this.csvdataToString(this.JSONToCsvdata(input), argdic);\n};\n\n/**\n * Produces simple string output of csvdata.\n * @param {string} input - a csvdata object.\n * @param {dictionary} argdic - arguments for creating the csv string.\n * @return {string} csv string corresponding to the csvdata object.\n * @example\n * // Given csvdata of:\n * { column_names: { \"magician\", \"born\"},\n *   rows: { { \"houdini\", 1874 },\n *           { \"copperfield\", 1956} }\n * }\n * csvdataToString()  // will produce\n * \"magician, born\\r\\nhoudini, 1874\\r\\ncopperfield, 1956\\r\\n\"\n */\ncsv.prototype.csvdataToString = function(input, argdic) {\n  var delim = private.getArg(argdic, 'delim', ',');\n  var str = '';\n  var columnnames = input.columnNames;\n  if (typeof columnnames !== 'undefined') {\n    for (var i = 0; i < columnnames.length; i++) {\n      str += private.doubleQuoteIfNecessary(columnnames[i]) + delim;\n    }\n    if (str.length > 0) {\n      str = str.slice(0, - 1) + '\\r\\n';\n    }\n  }\n\n  var rows = input.rows;\n  if (typeof rows === 'undefined') return str;\n\n  for (var k = 0; k < rows.length; k++) {\n    var temp = '';\n    for (var m = 0; m < rows[k].length; m++) {\n      temp += private.doubleQuoteIfNecessary(rows[k][m]) + delim;\n    }\n    if (temp.length > 0) {\n      temp = temp.slice(0, - 1);\n    }\n    str += temp + '\\r\\n';\n  }\n  return str;\n};\n\n/**\n * Produces the JSON of the csvdata.\n * Uses JSON table schema: {@link http://dataprotocols.org/json-table-schema/}\n * @param {string} input - a csvdata object.\n * @return {string} JSON represantion of the csvdata object.\n * @example\n * // Given csvdata of:\n * { column_names: { \"magician\", \"born\"},\n *   rows: { { \"houdini\", 1874 },\n *           { \"copperfield\", 1956} }\n * }\n *\n * csvdataToJSON() // will produce:\n *   [ { \"magician\":\"houdini\",\n *       \"born\": 1874 },\n *     { \"magician\":\"copperfield\",\n *       \"born\":1956 } ]\n */\ncsv.prototype.csvdataToJSON = function(input) {\n  var columnnames = input.columnNames;\n\n  // No columnnames, let's fill it up with generated names\n  if ((typeof columnnames === 'undefined' || columnnames.length === 0) &&\n      input.columnCount !== 0) {\n    var digitCount = input.columnCount.toString().length;\n    columnnames = [];  // Don't modify input's columnnames, assign a new array\n\n    for (var m = 0; m < input.columnCount; m++) {\n      var neededZeroCount = digitCount - m.toString().length;\n      var fullname = 'Col ' + Array(neededZeroCount + 1).join('0') + m.toString();\n      columnnames.push(fullname);\n    }\n  }\n\n  var rows = input.rows;\n  var output = [];\n\n  for (var i = 0; i < rows.length; i++) {\n    var entry = {};\n    for (var j = 0; j < rows[i].length; j++) {\n      entry[columnnames[j]] = rows[i][j];\n    }\n    output.push(entry);\n  }\n  return JSON.stringify(output);\n};\n\n/**\n * Produces the csvdata of table formatted JSON\n * Uses JSON table schema: {@link http://dataprotocols.org/json-table-schema/}\n * @param {string} - JSON table.\n * @return {csvdata} the csvdata object representing the JSON input.\n * @example\n * // Given JSON of:\n *   {  \"magician\":\"houdini\",\n *      \"born\": 1874   },\n *   {   \"magician\":\"copperfield\",\n *       \"born\":1956   }\n * // will produce\n * { column_names: { \"magician\", \"born\"},\n *   rows: { { \"houdini\", 1874 },\n *           { \"copperfield\", 1956} }\n * }\n */\ncsv.prototype.JSONToCsvdata = function(jsonStr) {\n  var obj = JSON.parse(jsonStr);\n  var rows = [];\n  for (var i = 0; i < obj.length; i++) {\n    var line = [];\n    for (var cell in obj[i]) {\n      if (obj[i].hasOwnProperty(cell)) {\n        line.push(obj[i][cell]);\n      }\n    }\n    rows.push(line);\n  }\n  var columnnames = [];\n  for (var attr in obj[0]) {\n    if (obj[0].hasOwnProperty(attr)) {\n      columnnames.push(attr);\n    }\n  }\n  var output = { rows: rows,\n                 columnNames: columnnames,\n                 rowCount: rows.length,\n                 columnCount: columnnames.length\n               };\n  return this.makeCsvdataFromObj(output);\n};\n\n/**\n * Produces the csvdata of csv string.\n * @param {string} input - csv string\n * @param {dictionary} argdic - arguments for parsing the csv string\n * @return {csvdata} the csvdata object representing the csv string.\n * @example\n * parseString(\"magician, born\\r\\nhoudini, 1874\\r\\ncopperfield, 1956\\r\\n\",\n *           {hasHeaders: true});\n * // will produce\n * { column_names: { \"magician\", \"born\"},\n *   rows: { { \"houdini\", 1874 },\n *           { \"copperfield\", 1956} }\n * }\n */\ncsv.prototype.parseString= function(str, argdic) {\n  var parsed = private.parseStringToArray(str, argdic);\n  var retValue = new csvdata();\n  var hasHeaders = private.getArg(argdic, 'hasHeaders', false);\n\n  if (hasHeaders) {\n    retValue.columnNames = parsed.shift();\n    if (typeof retValue.columnNames !== 'undefined') {\n      retValue.columnCount = retValue.columnNames.length;\n    }\n  }\n\n  retValue.rows = parsed;\n  retValue.rowCount = parsed.length;\n  if (retValue.columnCount === 0 && retValue.rowCount > 0) {\n    retValue.columnCount = retValue.rows[0].length;\n  }\n  return retValue;\n};\n\n/**\n * Can take an object and if the object has the same properties\n * as csvdata, it creates a csvdata from those properties by deep copying.\n * @param {object} - obj Any JS object with csvdata like properties.\n * @return {csvdata} a new csvdata object deep copied from obj.\n */\ncsv.prototype.makeCsvdataFromObj= function(obj) {\n  if (typeof obj === 'undefined') return;\n  var retVal = new csvdata();\n\n  if (typeof obj.columnCount !== 'undefined') {\n    retVal.columnCount = obj.columnCount;\n  }\n  if (typeof obj.columnNames !== 'undefined') {\n    retVal.columnNames = obj.columnNames.slice();\n  }\n  if (typeof obj.rows !== 'undefined') {\n    retVal.rows = [];\n    for (var i = 0; i < obj.rows.length; i++) {\n      retVal.rows.push(obj.rows[i].slice());\n    }\n  }\n  if (typeof obj.columnCount !== 'undefined') {\n    retVal.rowCount = obj.rowCount;\n  }\n  return retVal;\n};\n\n/**\n * Find errors.\n * @param {csvdata} - input a csvdata object.\n * @return {Array<string>} The errors in the csvdata object.\n */\ncsv.prototype.findErrors= function(input) {\n  // Check length of rows\n  var errors = [];\n  var rows = input.rows;\n  var columncount = rows[0].length;\n  var types = [];\n  for (var j = 0; j < rows[0].length; j++) {\n    types.push(typeof rows[0][j]);\n  }\n  for (var r_index = 0; r_index < rows.length; r_index++) {\n    for (var c_index = 0; c_index < rows[r_index].length; c_index++) {\n      var actualtype =  typeof rows[r_index][c_index];\n      if ( actualtype !== types[c_index]) {\n        errors.push('Type mismatch at row:' + r_index + ' col:' + c_index +\n                      ' expected:' + types[c_index] + ' actual:' +  actualtype);\n      }\n    }\n  }\n  if (input.columnCount !== columncount) {\n    errors.push('Column count is ' + input.columnCount +\n                  ' but Row 0 has ' + columncount + ' cols');\n  }\n  for (var i = 0; i < rows.length; i++) {\n    if (rows[i].length !== columncount) {\n      errors.push('Row ' + i + ' has ' + rows[i].length +\n                    ' cols, Row 0 has ' + columncount);\n    }\n  }\n  return errors;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/simplecsv/lib/csv.js\n// module id = 4\n// module chunks = 0\n\n//# sourceURL=webpack:///./node_modules/simplecsv/lib/csv.js?");
  
  /***/ }),
  /* 5 */
  /***/ (function(module, exports) {
  
  eval("/**\n * @copyright Copyright (c) 2015 All Rights Reserved.\n * @author Baris Yuksel <baris@onehundredyearsofcode.com>\n *\n * @file Module which exports private object with static methods.\n */\nexports = module.exports = private;\n\n/**\n * Constructs a new private class.\n * @constructor\n */\nfunction private() {}\n\n/**\n * Double-quotes the fields according the rules on Wikipedia as of 6/2015.\n * ({@link https://en.wikipedia.org/wiki/Comma-separated_values})\n *\n * *  Fields with embedded commas or double-quote characters must be quoted.\n * *  Each of the embedded double-quote characters must be represented by a pair of double-quote characters.\n * *  Fields with embedded line breaks must be quoted.\n * *  (Python addition) Python csv parser double-quotes `\\r` always.\n * @param {string} input - Input to double quote if necessary.\n */\nprivate.doubleQuoteIfNecessary = function(input) {\n  var shouldDoubleQuote = false;\n  var output = '';\n  for (var i = 0; i < input.length; i++) {\n    if (input[i] === ',' ||   // comma\n        input[i] === '\"' ||   // double-quote\n        input[i] === '\\n' ||  // newline\n        input[i] === '\\r') {\n      shouldDoubleQuote = true;\n    }\n    output += input[i];\n    if (input[i] === '\"') output += '\"';  // double-quote double-quote\n  }\n  if (shouldDoubleQuote) {\n    output = '\"' + output + '\"';\n  }\n  return output;\n};\n\n/**\n * Get the argument from the argument dictionary, with a default value.\n * Default value (defval) is returned if the argument is not in the argument:value\n * dictionary, or, if the argument's type is not the same as default value.\n * @param {dictionary} argDic A dictionary of the type argName: value\n * @param {string} argName The name of the argument to be found in dictionary\n * @param {*} defVal If it cannot find this argName in argDic, it returns defVal.\n */\nprivate.getArg = function(argDic, argName, defVal) {\n  return (typeof argDic !== 'undefined' &&\n          typeof argDic[argName] !== 'undefined' &&\n          typeof argDic[argName] === typeof defVal) ? argDic[argName] : defVal;\n};\n\n/**\n * Given a csv string, it parses it into double array.\n * Delimiter can be changed with argdic's delim parameter.\n *\n * Follows the csv format described in {@link http://tools.ietf.org/html/rfc4180}\n * as in: *\"Fields containing line breaks (CRLF), double quotes, and commas\n * should be enclosed in double-quotes.\"*\n * @param {dictionary} argdic - A dictionary of possible parameters.\n * @param {string} str - csv string to be parsed.\n * Recognized values are:\n * * `hasHeaders`: boolean - Whether str has header column. *[default: false]*\n * * `delim`: char - Single delimiter char *[default: ',']*\n * * `hasComments`: boolean - Whether str has comments. If true, any row which\n *    starts with `#` will be skipped. *[default: false]*\n */\nprivate.parseStringToArray = function(str, argdic) {\n\n  var delim = this.getArg(argdic, 'delim', ',');\n  var hasComments = this.getArg(argdic, 'hasComments', false);\n\n  // Define a function that returns true if the char is a terminator\n  // Terminator chars are: delim char, \\n\n  function isTerminator(myChar) {\n    if ( '\\n' === myChar ||\n        delim === myChar) {\n      return true;\n    }\n    return false;\n  }\n\n  var noCharSinceRowPush = true;\n  var allRows = [];\n  var currentRow = [];\n  var currentCell = '';\n  var j = 0;\n  while (j < str.length) {\n    if (hasComments && noCharSinceRowPush && str[j] === '#') {\n      // The first char of the row is comment char\n      while (j < str.length && str[j] !== '\\n') {\n        j++;\n      }\n    } else {\n      // Special situation: skip \\r, if it is part of \\r\\n\n      if (str[j] === '\\r' &&\n          j + 1 < str.length &&\n          str[j+1] === '\\n' ) {\n            j++;\n          }\n      // Look at double-quotes\n      if (str[j] === '\"') {\n        noCharSinceRowPush = false;\n        // This is a double-quoted cell, let's retrieve the whole cell.\n        var quoteCount = 0;\n        var endOfWord = j + 1;\n        while (endOfWord < str.length) {\n          if (str[endOfWord] === '\"') {\n            // Found quote. Are we at the end of a cell?\n            if ((endOfWord + 1) === str.length ||\n                (isTerminator(str[endOfWord + 1]) && (quoteCount % 2) === 0))  {\n              // Yes, this is the end of the cell.\n              break;\n            } else {\n              // No, this is just another quote.\n              quoteCount++;\n            }\n          } else if ((endOfWord + 1) === str.length) {\n            // This should never happen, it means the cell was not quoted correctly.\n            // But still, let's save the situation by moving endOfWord by one so that\n            // we include the last character in the cell's value.\n            endOfWord++;\n            break;\n          }\n          endOfWord++;\n        }\n\n        currentCell = str.substring(j + 1, endOfWord);\n        currentCell = currentCell.replace(/\"\"/g, '\"');\n        j = endOfWord ;\n      } else if (isTerminator(str[j])) {\n        if (str[j] !== '\\n') {\n          // Special case for empty rows which start with \\n\n          // essentially, if the terminator is not \\n, then\n          // we assume we had chars since row push.\n          noCharSinceRowPush = false;\n        }\n        currentRow.push(currentCell);\n        currentCell = '';\n        if (str[j] === '\\n') {\n          // Special case for empty rows which start with \\n.\n          // Python csv parser parses them as empty rows instead of\n          // rows having one empty string.\n          if (noCharSinceRowPush) {\n            currentRow = [];\n          }\n          // End of row\n          allRows.push(currentRow);\n          currentRow = [];\n          noCharSinceRowPush = true;\n        }\n      } else {\n        noCharSinceRowPush = false;\n        currentCell += str[j];\n      }\n    }\n    j++;\n  }\n  if (!noCharSinceRowPush) {\n    // If we have seen some chars after last row push\n    // Then, push this cell again\n    currentRow.push(currentCell);\n    allRows.push(currentRow);\n  }\n  return allRows;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/simplecsv/lib/private.js\n// module id = 5\n// module chunks = 0\n\n//# sourceURL=webpack:///./node_modules/simplecsv/lib/private.js?");
  
  /***/ }),
  /* 6 */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = __webpack_require__(7);\nif(typeof content === 'string') content = [[module.i, content, '']];\n// Prepare cssTransformation\nvar transform;\n\nvar options = {}\noptions.transform = transform\n// add the styles to the DOM\nvar update = __webpack_require__(9)(content, options);\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(false) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!../node_modules/css-loader/index.js!../node_modules/postcss-loader/lib/index.js!../node_modules/sass-loader/lib/loader.js!./chocolatechip.scss\", function() {\n\t\t\tvar newContent = require(\"!!../node_modules/css-loader/index.js!../node_modules/postcss-loader/lib/index.js!../node_modules/sass-loader/lib/loader.js!./chocolatechip.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/chocolatechip.scss\n// module id = 6\n// module chunks = 0\n\n//# sourceURL=webpack:///./lib/chocolatechip.scss?");
  
  /***/ }),
  /* 7 */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("exports = module.exports = __webpack_require__(8)(false);\n// imports\n\n\n// module\nexports.push([module.i, \".choc-hr {\\n  height: 1px;\\n  border: 0;\\n  outline: 0;\\n  background-color: #dddddd;\\n  margin-top: 0;\\n  margin-bottom: 0; }\\n\\n.choc-display--block {\\n  display: block; }\\n\\n.choc-display--none {\\n  display: none; }\\n\\n@media screen and (max-width: 480px) {\\n  .choc-display--sm-inline-block {\\n    display: inline-block; } }\\n\\n@media screen and (max-width: 480px) {\\n  .choc-display--sm-invisible {\\n    visibility: hidden; } }\\n\\n.choc-float--clearfix:after, .choc-tabs__header:after {\\n  display: block;\\n  content: '';\\n  clear: both; }\\n\\n.choc-float--left {\\n  float: left; }\\n\\n.choc-float--right {\\n  float: right; }\\n\\n@media screen and (max-width: 480px) {\\n  .choc-float--sm-none {\\n    float: none; } }\\n\\n.choc-padding--v-medium {\\n  padding-top: 15px;\\n  padding-bottom: 15px; }\\n\\n.choc-padding--h-small {\\n  padding-left: 20px;\\n  padding-right: 20px; }\\n  @media screen and (max-width: 480px) {\\n    .choc-padding--h-small {\\n      padding-left: 10px;\\n      padding-right: 10px; } }\\n\\n.choc-padding--small {\\n  padding: 20px; }\\n  @media screen and (max-width: 480px) {\\n    .choc-padding--small {\\n      padding: 10px; } }\\n\\n.choc-padding--tiny {\\n  padding: 12px; }\\n\\n.choc-margin--top-nano {\\n  margin-top: 6px; }\\n\\n.choc-margin--bottom-nano {\\n  margin-bottom: 6px; }\\n\\n.choc-margin--right-nano {\\n  margin-right: 6px; }\\n\\n.choc-btn {\\n  text-decoration: none;\\n  padding: 10px 18px;\\n  border: 1px solid transparent;\\n  border-radius: 5px;\\n  font-size: 14px;\\n  display: inline-block;\\n  font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen, Ubuntu, Cantarell, \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n  font-style: normal;\\n  text-transform: none;\\n  box-sizing: border-box;\\n  line-height: normal;\\n  color: #ffffff;\\n  background-color: #333333;\\n  border-color: #333333; }\\n  .choc-btn--fixed {\\n    display: none; }\\n  @media screen and (max-width: 480px) {\\n    .choc-btn {\\n      width: 100%;\\n      text-align: center; }\\n      .choc-btn + .choc-btn {\\n        margin-top: 10px; }\\n      .choc-btn--fixed {\\n        display: block;\\n        width: 100%;\\n        position: fixed;\\n        bottom: 0;\\n        padding-bottom: 20px;\\n        padding-top: 10px;\\n        box-sizing: border-box;\\n        background-color: white; } }\\n  .choc-btn:hover {\\n    color: #ffffff;\\n    background-color: #222222;\\n    border-color: #222222; }\\n  .choc-btn--type-secondary {\\n    color: #333333;\\n    background-color: #ffffff;\\n    border-color: #333333; }\\n    .choc-btn--type-secondary:hover {\\n      color: #555555;\\n      background-color: #ffffff;\\n      border-color: #555555; }\\n\\n.choc-close-btn {\\n  width: 24px;\\n  height: 24px;\\n  opacity: 0.3;\\n  display: block;\\n  position: relative;\\n  text-indent: -9999px; }\\n  .choc-close-btn:hover {\\n    opacity: 1; }\\n  .choc-close-btn:before, .choc-close-btn:after {\\n    position: absolute;\\n    left: 15px;\\n    content: ' ';\\n    height: 25px;\\n    width: 2px;\\n    background-color: #333; }\\n  .choc-close-btn:before {\\n    transform: rotate(45deg); }\\n  .choc-close-btn:after {\\n    transform: rotate(-45deg); }\\n\\n.choc-table {\\n  border-top: 1px solid #dddddd;\\n  border-left: 1px solid #dddddd;\\n  border-spacing: 0;\\n  width: 100%; }\\n  .choc-table td, .choc-table th {\\n    width: 100px;\\n    font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen, Ubuntu, Cantarell, \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n    font-weight: 400;\\n    font-size: 12px;\\n    color: #777777;\\n    border-right: 1px solid #dddddd;\\n    border-bottom: 1px solid #dddddd;\\n    margin: 0;\\n    padding: 5px;\\n    text-align: left; }\\n    .choc-table td:nth-child(3), .choc-table th:nth-child(3) {\\n      width: 200px; }\\n  .choc-table td {\\n    word-break: break-word;\\n    line-height: normal; }\\n  .choc-table th {\\n    color: #000000; }\\n\\n.choc-form__toggle {\\n  color: #777777;\\n  float: right;\\n  margin: 0;\\n  padding: 0;\\n  display: block;\\n  font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen, Ubuntu, Cantarell, \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n  font-weight: 400;\\n  font-style: normal;\\n  text-transform: none;\\n  font-size: 16px; }\\n  .choc-form__toggle input {\\n    margin-right: 4px;\\n    -webkit-appearance: checkbox;\\n       -moz-appearance: checkbox;\\n            appearance: checkbox;\\n    display: inline-block;\\n    width: auto; }\\n\\n.choc-modal {\\n  max-width: 720px;\\n  background-color: #ffffff;\\n  margin: 80px auto;\\n  box-sizing: border-box;\\n  position: relative; }\\n  .choc-modal h3, .choc-modal p, .choc-modal a {\\n    font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen, Ubuntu, Cantarell, \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n    font-style: normal;\\n    text-transform: none; }\\n  .choc-modal p, .choc-modal a {\\n    font-size: 16px;\\n    font-weight: 400; }\\n  .choc-modal p {\\n    color: #777777;\\n    line-height: 1.6; }\\n  .choc-modal h3 {\\n    color: #333333;\\n    font-size: 18px;\\n    font-weight: 700;\\n    margin-bottom: 0;\\n    margin-top: 0; }\\n    @media screen and (max-width: 480px) {\\n      .choc-modal h3 {\\n        font-size: 16px; } }\\n  .choc-modal .choc-table {\\n    margin-top: 10px; }\\n  .choc-modal [data-choc-link=privacyPolicy] {\\n    color: #333333;\\n    line-height: 38px;\\n    display: block;\\n    text-decoration: underline; }\\n    .choc-modal [data-choc-link=privacyPolicy]:hover {\\n      text-decoration: none; }\\n    @media screen and (max-width: 480px) {\\n      .choc-modal [data-choc-link=privacyPolicy] {\\n        width: 100%;\\n        margin-bottom: 40px; } }\\n  @media screen and (max-width: 480px) {\\n    .choc-modal {\\n      margin: 0;\\n      height: 100%;\\n      padding-bottom: 80px;\\n      overflow: scroll;\\n      -webkit-overflow-scrolling: touch; } }\\n  .choc-modal__overlay {\\n    background-color: rgba(0, 0, 0, 0.3);\\n    width: 100%;\\n    height: 100%;\\n    position: fixed;\\n    z-index: 9999;\\n    left: 0;\\n    top: 0;\\n    display: none; }\\n    @media screen and (min-width: 480px) {\\n      .choc-modal__overlay {\\n        overflow: auto; } }\\n  @media screen and (max-width: 480px) {\\n    .choc-modal__actions {\\n      background-color: #ffffff;\\n      position: fixed;\\n      bottom: 0;\\n      left: 0;\\n      right: 0;\\n      padding: 10px;\\n      box-shadow: 0 -1px 25px 25px #ffffff; } }\\n  .choc-modal .choc-close-btn {\\n    position: absolute;\\n    right: 20px;\\n    top: 15px; }\\n    @media screen and (max-width: 480px) {\\n      .choc-modal .choc-close-btn {\\n        right: 15px;\\n        top: 13px; } }\\n\\n.choc-banner {\\n  background-color: #ffffff;\\n  position: fixed;\\n  bottom: 0;\\n  left: 0;\\n  z-index: 8888;\\n  width: 100%;\\n  box-sizing: border-box;\\n  box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3); }\\n  @media screen and (max-width: 480px) {\\n    .choc-banner__description {\\n      display: none; }\\n      .choc-banner__description--visible {\\n        display: inline; } }\\n  .choc-banner h3, .choc-banner p {\\n    font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen, Ubuntu, Cantarell, \\\"Open Sans\\\", \\\"Helvetica Neue\\\", sans-serif;\\n    font-style: normal;\\n    text-transform: none; }\\n  .choc-banner p {\\n    color: #777777;\\n    line-height: 1.5;\\n    font-size: 13px;\\n    font-weight: 400;\\n    max-width: 1200px;\\n    margin-bottom: 0;\\n    margin-top: 0; }\\n    .choc-banner p a {\\n      font-size: 13px;\\n      font-weight: 400;\\n      white-space: nowrap;\\n      color: #000000;\\n      text-decoration: underline; }\\n      .choc-banner p a:hover {\\n        text-decoration: none; }\\n    @media screen and (max-width: 480px) {\\n      .choc-banner p {\\n        width: 100%; } }\\n\\n.choc-tabs__navigation {\\n  width: 200px;\\n  float: left;\\n  border-right: 1px solid #dddddd;\\n  border-bottom: 1px solid #dddddd;\\n  box-sizing: border-box;\\n  margin-bottom: -1px;\\n  margin-right: -1px; }\\n  .choc-tabs__navigation ul {\\n    list-style: none;\\n    padding-left: 0;\\n    padding-right: 0;\\n    padding-top: 0;\\n    padding-bottom: 0;\\n    margin-left: 0;\\n    margin-right: 0;\\n    margin-top: 0;\\n    margin-bottom: 0; }\\n  @media screen and (max-width: 480px) {\\n    .choc-tabs__navigation {\\n      width: 100%;\\n      border-right-width: 0;\\n      margin-bottom: 20px; } }\\n\\n.choc-tabs__dynamic-content {\\n  width: calc(100% - 199px);\\n  box-sizing: border-box;\\n  border-left: 1px solid #dddddd; }\\n  @media screen and (max-width: 480px) {\\n    .choc-tabs__dynamic-content {\\n      width: 100%; } }\\n\\n.choc-tabs__header {\\n  padding-bottom: 0; }\\n\\n.choc-tabs__link {\\n  border-top: 1px solid #dddddd; }\\n  .choc-tabs__link:first-child {\\n    border-top-width: 0; }\\n  .choc-tabs__link a {\\n    color: #999999;\\n    text-decoration: none;\\n    display: block;\\n    font-size: 16px;\\n    font-style: normal;\\n    font-weight: 400;\\n    line-height: 50px;\\n    padding: 0 20px; }\\n    .choc-tabs__link a:hover {\\n      color: #333333; }\\n    @media screen and (max-width: 480px) {\\n      .choc-tabs__link a {\\n        line-height: 44px;\\n        padding: 0 10px; } }\\n  .choc-tabs__link--state-active a {\\n    color: #333333;\\n    background-color: #ececec; }\\n\\n.choc-tabs__item {\\n  display: none; }\\n  .choc-tabs__item h3 {\\n    float: left;\\n    margin-bottom: 1em; }\\n  .choc-tabs__item:first-child {\\n    display: block; }\\n\", \"\"]);\n\n// exports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js!./lib/chocolatechip.scss\n// module id = 7\n// module chunks = 0\n\n//# sourceURL=webpack:///./lib/chocolatechip.scss?./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js");
  
  /***/ }),
  /* 8 */
  /***/ (function(module, exports) {
  
  eval("/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t//  when a module is imported multiple times with different media queries.\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader/lib/css-base.js\n// module id = 8\n// module chunks = 0\n\n//# sourceURL=webpack:///./node_modules/css-loader/lib/css-base.js?");
  
  /***/ }),
  /* 9 */
  /***/ (function(module, exports, __webpack_require__) {
  
  eval("/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(selector) {\n\t\tif (typeof memo[selector] === \"undefined\") {\n\t\t\tmemo[selector] = fn.call(this, selector);\n\t\t}\n\n\t\treturn memo[selector]\n\t};\n})(function (target) {\n\treturn document.querySelector(target)\n});\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = __webpack_require__(10);\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton) options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n\tif (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else {\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t    result = options.transform(obj.css);\n\n\t    if (result) {\n\t    \t// If transform returns a value, use that instead of the original css.\n\t    \t// This allows running runtime transformations on the css.\n\t    \tobj.css = result;\n\t    } else {\n\t    \t// If the transform function returns a falsy value, don't add this css.\n\t    \t// This allows conditional loading of css\n\t    \treturn function() {\n\t    \t\t// noop\n\t    \t};\n\t    }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default.  Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/style-loader/lib/addStyles.js\n// module id = 9\n// module chunks = 0\n\n//# sourceURL=webpack:///./node_modules/style-loader/lib/addStyles.js?");
  
  /***/ }),
  /* 10 */
  /***/ (function(module, exports) {
  
  eval("\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n  // get current location\n  var location = typeof window !== \"undefined\" && window.location;\n\n  if (!location) {\n    throw new Error(\"fixUrls requires window.location\");\n  }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t  return css;\n  }\n\n  var baseUrl = location.protocol + \"//\" + location.host;\n  var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\(  = Match on the word \"url\" with any whitespace after it and then a parens\n\t   (  = Start a capturing group\n\t     (?:  = Start a non-capturing group\n\t         [^)(]  = Match anything that isn't a parentheses\n\t         |  = OR\n\t         \\(  = Match a start parentheses\n\t             (?:  = Start another non-capturing groups\n\t                 [^)(]+  = Match anything that isn't a parentheses\n\t                 |  = OR\n\t                 \\(  = Match a start parentheses\n\t                     [^)(]*  = Match anything that isn't a parentheses\n\t                 \\)  = Match a end parentheses\n\t             )  = End Group\n              *\\) = Match anything and then a close parens\n          )  = Close non-capturing group\n          *  = Match anything\n       )  = Close capturing group\n\t \\)  = Match a close parens\n\n\t /gi  = Get all matches, not the first.  Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/)/i.test(unquotedOrigUrl)) {\n\t\t  return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t  \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/style-loader/lib/urls.js\n// module id = 10\n// module chunks = 0\n\n//# sourceURL=webpack:///./node_modules/style-loader/lib/urls.js?");
  
  /***/ }),
  /* 11 */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nif (typeof Object.assign != 'function') {\n  // Must be writable: true, enumerable: false, configurable: true\n  Object.defineProperty(Object, \"assign\", {\n    value: function assign(target, varArgs) {\n      // .length of function is 2\n      'use strict';\n\n      if (target == null) {\n        // TypeError if undefined or null\n        throw new TypeError('Cannot convert undefined or null to object');\n      }\n\n      var to = Object(target);\n\n      for (var index = 1; index < arguments.length; index++) {\n        var nextSource = arguments[index];\n\n        if (nextSource != null) {\n          // Skip over if undefined or null\n          for (var nextKey in nextSource) {\n            // Avoid bugs when hasOwnProperty is shadowed\n            if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n              to[nextKey] = nextSource[nextKey];\n            }\n          }\n        }\n      }\n      return to;\n    },\n    writable: true,\n    configurable: true\n  });\n}\n\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\nif (!Array.prototype.includes) {\n  Object.defineProperty(Array.prototype, 'includes', {\n    value: function value(searchElement, fromIndex) {\n\n      // 1. Let O be ? ToObject(this value).\n      if (this == null) {\n        throw new TypeError('\"this\" is null or not defined');\n      }\n\n      var o = Object(this);\n\n      // 2. Let len be ? ToLength(? Get(O, \"length\")).\n      var len = o.length >>> 0;\n\n      // 3. If len is 0, return false.\n      if (len === 0) {\n        return false;\n      }\n\n      // 4. Let n be ? ToInteger(fromIndex).\n      //    (If fromIndex is undefined, this step produces the value 0.)\n      var n = fromIndex | 0;\n\n      // 5. If n ≥ 0, then\n      //  a. Let k be n.\n      // 6. Else n < 0,\n      //  a. Let k be len + n.\n      //  b. If k < 0, let k be 0.\n      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n      // 7. Repeat, while k < len\n      while (k < len) {\n        // a. Let elementK be the result of ? Get(O, ! ToString(k)).\n        // b. If SameValueZero(searchElement, elementK) is true, return true.\n        // c. Increase k by 1.\n        // NOTE: === provides the correct \"SameValueZero\" comparison needed here.\n        if (o[k] === searchElement) {\n          return true;\n        }\n        k++;\n      }\n\n      // 8. Return false\n      return false;\n    }\n  });\n}\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/polyfills.js\n// module id = 11\n// module chunks = 0\n\n//# sourceURL=webpack:///./lib/polyfills.js?");
  
  /***/ }),
  /* 12 */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = {\n  nl_NL: {\n    'bannerTemplate.text': 'Door verder te klikken op onze website, accepteer je cookies en vergelijkbare technieken.',\n    'bannerTemplate.description': 'Hiermee verzamelen we persoonsgegevens en volgen wij en derden je internetgedrag. Op onze website en die van derden. Waarom? Zodat wij en derden je advertenties kunnen laten zien die bij jouw interesses passen.',\n    'bannerTemplate.actionOpen': 'Meer weten?',\n    'bannerTemplate.actionSluiten': 'Sluiten',\n    'modalTemplate.settings': 'Cookies instellen',\n    'modalTemplate.functionalHeader': 'Functionele cookies',\n    'modalTemplate.functionalText': 'Functionele cookies houden anoniem statistieken bij en zijn vereist voor de werking van de website. Omdat de werking van de website niet kan worden gegarandeerd zonder deze cookies, kun je deze cookies niet weigeren. Je kunt deze cookies eventueel wel verwijderen in je browserinstellingen.',\n    'modalTemplate.preferenceHeader': 'Voorkeurs cookies',\n    'modalTemplate.preferenceText': 'Voorkeurscookies zijn niet essentieel voor de werking van de website, maar bevorderen wel de gebruikerservaring. Deze cookies zorgen ervoor dat je gebruikerservaring optimaal is.',\n    'modalTemplate.analyticalHeader': 'Analytische cookies',\n    'modalTemplate.analyticalText': 'Analytische cookies verzamelen informatie over het gedrag van gebruikers van de website. Dit leert ons om deze gebruikers beter te begrijpen en helpt ons om deze website te optimaliseren. Ook wordt hieruit opgemaakt hoe effectief de marketingcampagnes via deze website zijn.',\n    'modalTemplate.advertHeader': 'Advertentie cookies',\n    'modalTemplate.advertText': 'Advertentiecookies brengen je surfgedrag in kaart voor advertentienetwerken. Door middel van deze cookies kunnen deze netwerken je advertenties aanbieden die aansluiten bij jouw interesses. Ook voorkomen deze cookies dat dezelfde advertentie niet meerdere malen aan dezelfde gebruiker wordt getoond.',\n    'modalTemplate.privacy': 'Privacy Policy',\n    'modalTemplate.actionCookies': 'Alle cookies toestaan',\n    'modalTemplate.actionWebsite': 'Verder naar de website',\n    'modalTemplate.mandatory': 'Verplicht',\n    'modalTemplate.enable': 'Inschakelen',\n    'modalTemplate.enabled': 'Ingeschakeld',\n    'cookieTableTemplate.name': 'Cookie naam',\n    'cookieTableTemplate.supplier': 'Leverancier',\n    'cookieTableTemplate.description': 'Beschrijving',\n    'cookieTableTemplate.expiryDate': 'Vervaldatum'\n  },\n  en_GB: {\n    'bannerTemplate.text': 'By continuing to browse our website, you accept cookies and similar techniques.',\n    'bannerTemplate.description': 'With this we collect personal data and it allows us and third parties to follow your internet behavior. On our website and those of third parties. Why? So that we and third parties can show you advertisements that suit your interests.',\n    'bannerTemplate.actionOpen': 'Read more',\n    'bannerTemplate.actionSluiten': 'Close',\n    'modalTemplate.settings': 'Cookies settings',\n    'modalTemplate.functionalHeader': 'Functional cookies',\n    'modalTemplate.functionalText': 'Functional cookies anonymously update statistics and are required for the operation of the website. The operation of the website can not be guaranteed without these cookies, which is why you can not refuse these cookies. You may be able to delete these cookies in your browser settings.',\n    'modalTemplate.preferenceHeader': 'Preference cookies',\n    'modalTemplate.preferenceText': 'Preference cookies are not essential to the operation of the website, but do improve the user experience. These cookies ensure that your user experience is optimal.',\n    'modalTemplate.analyticalHeader': 'Analytical cookies',\n    'modalTemplate.analyticalText': 'Analytical cookies collect information about the behavior of users of the website. This teaches us to better understand these users and helps us to optimize this website. It also provides in depth knowledge on the effectiveness of the marketing campaigns which are active on this website.',\n    'modalTemplate.advertHeader': 'Advertising cookies',\n    'modalTemplate.advertText': 'Advertising cookies map your browsing habits for ad networks. By means of these cookies, these networks can offer you advertisements that match your interests. These cookies also prevent the same advertisement from being shown to the same user several times.',\n    'modalTemplate.privacy': 'Privacy Policy',\n    'modalTemplate.actionCookies': 'Allow all cookies',\n    'modalTemplate.actionWebsite': 'Continue to the website',\n    'modalTemplate.mandatory': 'Required',\n    'modalTemplate.enable': 'Enable',\n    'modalTemplate.enabled': 'Enabled',\n    'cookieTableTemplate.name': 'Cookie name',\n    'cookieTableTemplate.supplier': 'Supplier',\n    'cookieTableTemplate.description': 'Description',\n    'cookieTableTemplate.expiryDate': 'Expiration date'\n  }\n};\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/defaultTranslations.js\n// module id = 12\n// module chunks = 0\n\n//# sourceURL=webpack:///./lib/defaultTranslations.js?");
  
  /***/ })
  /******/ ]);