{"version":3,"sources":["scripts-npr.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","Object","defineProperty","value","TrapFocus","startTrapFocus","parent","focusedElBeforeOpen","document","activeElement","focusElements","querySelectorAll","focusElementsSelector","firstFocusableEl","lastFocusableEl","addEventListener","handleKeyDown","handleKeyUp","setTimeout","focus","setFocus","element","endTrapFocus","removeEventListener","HTMLElement","key","preventDefault","shiftKey","contains","isFocusTrapped","radioGroupName","default","2","Array","from","forEach","elem","image","querySelector","style","backgroundImage","src","3","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","prototype","Indicator","sections","indicator","_this","this","instance","TypeError","_classCallCheck","name","dataset","section","innerHTML","map","_ref","ix","reduce","acc","curr","_ref2","indicatorElem","redDot","window","ev","onScroll","passive","_this2","width","activeSection","find","_ref3","offsetTop","getBoundingClientRect","height","scrollY","pageYOffset","_ref4","classList","toggle","transform","4","ieVersion","_testIe2","_testFeature2","setClass","_ieImageFix2","accIndex","findIndex","list","some","trigger","triggerPopup","concat","arr","isArray","arr2","_toConsumableArray","showPopup","hasAttribute","push","triggers","_popup2","_tabsNavigation2","_indicator2","_interopRequireDefault","obj","__esModule","../Modules/_popup","../Modules/_tabs-navigation","../Partials/_test-feature.js","../Partials/_test-ie","./_ie-image-fix","./_indicator","5","_collapsible","_collapsible2","el","once","../Partials/_collapsible.js","core-js/fn/array/for-each","core-js/fn/array/from","6","_tooltips","_tooltips2","init","getAttribute","../Partials/_tooltips.js","7","_collapsibleExpandList","_collapsibleExpandList2","../Partials/_collapsible-expand-list.js","8","faqCollapsibles","9","toString","collapsiblesPerViewport","viewportStates","selectors","viewportSet","10","MapView","_mapViewNavigation","_mapViewMap","_mapViewNavigationLinks","_mapViewMapAreas","link","selectMapArea","bind","selectNavigationButton","event","mapArea","innerText","type","add","remove","label","navigationButtons","filter","button","navigationButton","pop","item","console","log","11","_viewportstateWatcher2","_testTouchevents2","MastheadScrollhandler","_wrap","_services","_textitem","_scrollBuffer","_scrollStep","_dir","_hasInitialised","timer","_scrollHandler","fn","y","scrollTop","_updateProps","_bodyY","_wrapH","_textitemY","_scrollTo","_servicesH","_textitemH","clearTimeout","_removeScrollListener","_addScrollListener","_scrollHandlerPage","body","_touchEvents","test","watch","_init","_uninit","_addEventHandlers","_removeEventHandlers","offsetHeight","targetY","callbackFn","arguments","undefined","_touchevents","step","clearInterval","setInterval","../Partials/_test-touchevents.js","../Partials/_viewportstate-watcher.js","12","items","parentHeight","parentElement","newItemHeight","String","../Modules/_masthead-scrollhandler.js","13","message","storage","persistent","localStorage","sessionStorage","close","instant","setAttribute","id","setItem","info","getItem","clickEventListener","keyEventListener","focusEventListener","blurEventListener","14","15","_printButton","_printButton2","infoNode","metaEl","buttonPrintPage","getElementById","createElement","textContent","appendChild","../Partials/_print-button.js","16","Popup","popup","bindFocusLoop","keyup","togglePopUp","usedTrigger","tabableElements","17","_createId","_createId2","ReadMore","buttons","buttonId","panelId","panel","currentTarget","open","../Partials/_create-id","18","_table","_table2","rte","table","../Partials/_table.js","19","_onswipe2","_searchSuggest2","HeaderSearchForm","_root","_form","_label","_field","_button","_searchResultItems","_isExpanded","dataLayer","_handleResultItem","_quit","_activate","focusoutHandler","stopPropagation","on","itemLink","searchTitleElement","searchTitleText","clickName","clickPath","_freezeViewport","field","initPreventEmptySubmit","searchForm","resetBtn","checkField","initResetAndFocus","../Partials/_onswipe.js","../Partials/_search-suggest.js","20","21","TabNav","tabsContainer","contentContainer","tabs","tab","content","toggleTab","nextTabButton","nextTab","triggeringTab","currentIndex","activeTab","_this3","activeIndex","22","uaStr","navigator","userAgent","regexp","className","documentElement","23","CollapsibleExpandList","_maxItemsShown","_itemsList","_items","_btnTextShow","_btnTextHide","_showState","_toggleCollapseHandler","_toggleCollapse","_resizeTimer","_resizeHandler","_initState","bodyId","_btn","removeAttribute","show","hide","animBool","_setHeight","_getHeight","h","styles","getComputedStyle","margin","parseFloat","./_create-id.js","./_matches.js","./_viewportstate-watcher.js","24","_pubsub2","polyfill","Collapsible","groupBehaviorOn","_colbody","_coltrigger","_colGroupId","_colGroupEventName","_colGroupSiblingeventName","_listeningToGroupEvent","_groupHasOpenMembers","_groupBehaviorOn","_isGroupBehaviorActive","_showDelay","_labelTextShow","_labelTextHide","foundInSession","_handleAction","nodeName","keyCode","x","_clickDelayHandler","_toggle","_handleKeydown","indexOf","emit","_onPubSubEvents","boolean","_handleRootTransition","_resetH","initState","uninit","kb","scrollIntoView","behavior","h1","h2","_setH","position","visibility","opacity","_this4","addToSession","_fromTo","_getH","_showBody","_this5","removeFromSession","_hideBody","JSON","parse","openCollapsibles","getCollapsiblesSession","_id","stringify","filtered","rootY","top","scroll","../Partials/_create-id.js","../Partials/_pubsub.js","smoothscroll-polyfill","25","S4","Math","random","substring","26","FileUpload","inputElement","labelElement","_input","_labelValue","_onChange","fileName","split","newLabelValue","27","_removeNode2","FileFieldGroup","groupArray","_groups","_container","_filefields","_selectedFields","_unselectedFields","labelId","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","next","done","group","err","return","_renderFields","handleEvent","parentNode","_updateField","splice","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_removeAllFields","insertBeforeNode","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","insertBefore","../Partials/_remove-node.js","core-js/fn/array/index-of","28","FileField","_fileSize","_display","_resetButtonText","_resetButton","_reset","_selectButtonText","_selectButton","_fileInfo","_focus","_blur","_mouseenter","_mouseleave","_update","path","_setSelected","_unpath","_showFileInfo","string","_setDisplay","val","size","files","round","29","_slicedToArray","_arr","_n","_d","_e","_s","_i","sliceIterator","_filefield2","_filefieldGroup2","forms","isIE10","appVersion","form","filefields","createGroups","markText","mark","licencePlate","jQuery","$","datepicker","dateFormat","plate","replace","toUpperCase","elm","bundles","entries","ajaxComplete","../Partials/_filefield-group.js","../Partials/_filefield.js","core-js/fn/object/entries","core-js/fn/symbol/index","core-js/fn/symbol/iterator","30","ElementPrototype","Element","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","nodes","31","OnSwipe","_threshold","_restraint","_allowedTime","dir","_callbackFn","_startSwipe","_endSwipe","touchobj","changedTouches","_dist","_startX","pageX","_startY","pageY","_startTime","Date","getTime","swipeDir","distX","distY","abs","32","patchListCounters","els","constructor","parseInt","isNaN","lists","33","printButton","contextElements","_contextElements","_printContext","_print","print","context","container","34","events","eventName","off","data","35","domNode","removeNode","36","SearchSuggest","_suggestContainer","_serviceURI","_AllLink","_minNumberOfChars","_maxSuggestionsRequested","_finalRequestDelay","_initialRequest","XMLHttpRequest","_finalRequest","_finalQuery","_queryValue","_queryValueBeforeSelection","_initialRequestQueryValue","_selectedMenuItemIndex","_requestResults","_filteredResults","_urlParams","URLSearchParams","location","search","_searchParam","get","_menu","_allButtonContainer","_allButton","_menuList","_hideMenu","_handleFocus","_handleKeyUp","_handleFocusOut","_allResultsButtonLosesFocus","composedPath","includes","_focusMenuItem","_suggest","relatedTarget","tagName","toLowerCase","submit","array","_clearMenu","status","_handleClick","_resetMenuItemSelection","_abortQuery","_setMenuItemSelection","curSelectedItem","index","selectedItem","menuList","_setMenuHeight","_getMenuHeight","processResults","_populateMenu","_showMenu","suggestItems","suggestResults","ar","_isFieldValueOfMinimalLength","_isQueryActive","_query","req","successFn","queryOp","uri","encodeURIComponent","onreadystatechange","readyState","DONE","result","responseText","send","abort","core-js/fn/array/find-index","url-search-params-polyfill","37","_viewportstateWatcher","Table","tableWrapper","_tableWrapper","_rte","_mainArticleContent","_main","_resize","_calcWidth","_offsetWidth","marginRight","paddingRight","offsetWidth","38","testFeature","property","noPrefixes","prop","mStyle","cssText","join","bool","39","ua","msie","rv","40","testTouchevents","41","_trapFocus2","ToolTip","options","_options","globalUntriggers","keyboardControl","additionalClassNames","allowFocusInside","offsetBottom","_active","_cooldown","tooltipId","rootId","tooltipText","_tooltip","_tooltipContent","_tooltipArrow","hideWhenTabbedOut","_hide","focusBefore","focusAfter","nextSibling","globalFocusout","scrolled","_updateTooltipPosition","handleResize","_show","bodyRect","rootRect","rootWidth","left","w","offRight","marginLeft","offLeft","../Helpers/trap-focus","42","viewPortStateWatcher","ViewPortStateWatcher","_states","_currentStateIndex","_sample","_trigger","samplestyle","substr","CustomEvent","detail","current","dispatchEvent","states","yesFn","noFn","stateArr","check","getState","run","custom-event-polyfill","43","_init2","html","./LRV/_init.js","./Modules/_clustered-blocks","./Modules/_definitions.js","./Modules/_expand-listing.js","./Modules/_faq.js","./Modules/_listings.js","./Modules/_map-view","./Modules/_masthead.js","./Modules/_messages","./Modules/_page-footer.js","./Modules/_page-utils.js","./Modules/_read-more","./Modules/_rte.js","./Modules/_search.js","./Modules/_service-listing.js","./Partials/_browser-detect.js","./Partials/_file-upload.js","./Partials/_forms.js","./Partials/_ordered-lists.js","dom4","picturefill","svgxuse","44","../../modules/_core","../../modules/es6.array.find-index","45","../../modules/es6.array.for-each","46","../../modules/es6.array.from","../../modules/es6.string.iterator","47","../../modules/es6.array.index-of","48","../../modules/es7.object.entries","49","../../modules/es6.object.to-string","../../modules/es6.symbol","../../modules/es7.symbol.async-iterator","../../modules/es7.symbol.observable","50","../../modules/_wks-ext","../../modules/web.dom.iterable","51","it","52","UNSCOPABLES","ArrayProto","./_hide","./_wks","53","isObject","./_is-object","54","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","O","./_to-absolute-index","./_to-iobject","./_to-length","55","ctx","IObject","toObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","callbackfn","that","res","self","./_array-species-create","./_ctx","./_iobject","./_to-object","56","SPECIES","original","C","./_is-array","57","speciesConstructor","./_array-species-constructor","58","cof","TAG","ARG","T","B","tryGet","callee","./_cof","59","slice","60","core","version","__e","61","$defineProperty","createDesc","object","./_object-dp","./_property-desc","62","aFunction","b","apply","./_a-function","63","64","./_fails","65","is","./_global","66","67","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","./_object-gops","./_object-keys","./_object-pie","68","global","redefine","$export","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","expProto","Function","U","W","R","./_core","./_redefine","69","exec","70","__g","71","hasOwnProperty","72","dP","./_descriptors","73","74","./_dom-create","75","propertyIsEnumerable","76","Iterators","ITERATOR","./_iterators","77","arg","78","79","anObject","ret","./_an-object","80","setToStringTag","IteratorPrototype","NAME","./_object-create","./_set-to-string-tag","81","LIBRARY","$iterCreate","getPrototypeOf","BUGGY","keys","returnThis","Base","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","values","./_export","./_iter-create","./_library","./_object-gpo","82","SAFE_CLOSING","riter","skipClosing","safe","iter","83","84","85","86","META","has","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","meta","KEY","NEED","fastKey","getWeak","onFreeze","./_has","./_uid","87","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","contentWindow","write","lt","Properties","./_enum-bug-keys","./_html","./_object-dps","./_shared-key","88","IE8_DOM_DEFINE","toPrimitive","Attributes","./_ie8-dom-define","./_to-primitive","89","90","gOPD","getOwnPropertyDescriptor","91","gOPN","windowNames","getOwnPropertyNames","getWindowNames","./_object-gopn","92","$keys","hiddenKeys","./_object-keys-internal","93","getOwnPropertySymbols","94","ObjectProto","95","arrayIndexOf","names","./_array-includes","96","97","98","isEntries","99","bitmap","100","SRC","$toString","TPL","inspectSource","isFunction","101","def","tag","stat","102","shared","uid","./_shared","103","store","mode","copyright","104","fails","method","105","toInteger","defined","TO_STRING","pos","s","l","charCodeAt","charAt","./_defined","./_to-integer","106","max","min","107","ceil","floor","108","109","110","111","valueOf","112","px","113","wksExt","$Symbol","./_wks-ext","114","115","USE_SYMBOL","116","classof","getIteratorMethod","./_classof","117","$find","forced","./_add-to-unscopables","./_array-methods","118","$forEach","STRICT","./_strict-method","119","isArrayIter","createProperty","getIterFn","arrayLike","aLen","mapfn","mapping","iterFn","./_create-property","./_is-array-iter","./_iter-call","./_iter-detect","./core.get-iterator-method","120","$indexOf","NEGATIVE_ZERO","searchElement","121","addToUnscopables","iterated","_t","_k","Arguments","./_iter-define","./_iter-step","122","123","$at","point","./_string-at","124","DESCRIPTORS","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$DP","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","D","protoDesc","wrap","sym","isSymbol","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","set","es6Symbols","j","wellKnownSymbols","k","for","keyFor","useSetter","useSimple","replacer","$replacer","args","./_enum-keys","./_meta","./_object-gopd","./_object-gopn-ext","./_wks-define","125","./_object-to-array","126","127","128","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","./es6.array.iterator","129","ce","cancelable","defaultPrevented","params","evt","origPrevent","bubbles","createEvent","initCustomEvent","Event","130","createDocumentFragment","enoughArguments","mutationMacro","textNodeIfString","fragment","node","createTextNode","head","TemporaryPrototype","TemporaryTokenList","wrapVerifyToken","hOP","__defineGetter__","__defineSetter__","noClassName","isSVG","baseVal","trim","properties","spaces","_isSVG","_","classListDescriptor","token","force","DocumentFragmentPrototype","DocumentFragment","Node","NodePrototype","CharacterData","CharacterDataPrototype","DocumentType","DocumentTypePrototype","selectRemove","SVGElement","khtmlMatchesSelector","mozMatchesSelector","oMatchesSelector","firstChild","had","replaceWith","replaceChild","removeChild","_dom4","o_O","verifyToken","getElementsByTagName","raf","rAF","requestAnimationFrame","cAF","cancelAnimationFrame","prefixes","callback","goOn","defaultInitDict","initEvent","eventInitDict","$Event","KeyboardEvent","$KeyboardEvent","eventType","initType","defaults","char","ctrlKey","altKey","metaKey","altGraphKey","repeat","locale","language","charCode","which","initKeyboardEvent","keyIdentifier","keyLocation","withInitValues","withDefaults","modifiers","getModifier","chr","view","initKeyEvent","MouseEvent","$MouseEvent","initMouseEvent","screenX","screenY","clientX","clientY","patch","what","css","dataScope","$0","$1","$2","$3","DOMMap","WeakMap","counter","dispatched","drop","dispatch","shouldDrop","Handler","__ce__","delete","v","Dict","createEventListener","eventListener","removed","capture","augment","dE","aEL","rEL","increment","getListenerKey","dm","handler","tmp","EventTarget","Text","HTMLDocument","Window","131","dummySrc","fixRespimg","findPictureImgs","onResize","mq","HTMLPictureElement","match","RegExp","img","sizes","picture","cloneNode","firstElementChild","_pfLastSize","imgs","matchMedia","addListener","srcset","eminpx","alwaysCheckWDescriptor","evalId","pf","isSupportTestReady","noop","getImgAttr","setImgAttr","removeImgAttr","docElem","types","cfg","algorithm","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","fsCss","isVwDirty","cssCache","sizeLengthCache","DPR","devicePixelRatio","units","in","anchor","alreadyRun","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","attachEvent","memoize","cache","input","isSpace","regLength","buildStr","image2","width1","isDomReady","func","wait","timeout","timestamp","later","regReady","timerId","lastClientWidth","evalCSS","parsedLength","setResolution","candidate","sizesattr","cWidth","calcListLength","d","opt","elements","plen","nodeType","qsa","reevaluate","reselect","sel","selShort","setupRun","fillImg","teardownRun","ascendingSort","getCandidateForSrc","candidates","parseSet","makeUrl","url","warn","implementation","hasFeature","ns","supSrcset","supSizes","supPicture","complete","onload","onerror","setSize","href","matchesMedia","media","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","collectCharacters","regEx","chars","descriptors","currentDescriptor","state","inputLength","parseDescriptors","desc","lastChar","intVal","floatVal","pError","has1x","tokenize","parseSrcset","getEmValue","div","originalHTMLCSS","originalBodyCSS","sourceSizeListStr","uT","winningLength","strValue","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","regexCssLengthWithUnits","regexCssCalc","str","chrctr","component","componentArray","listArray","parenDepth","inComment","pushComponent","pushComponentArray","parseComponentValues","parseSizes","setRes","len","applySetCandidate","bestCandidate","curSrc","curCan","candidateSrc","abortCurSrc","lowerValue","higherValue","dprValue","isCached","bonusFactor","bonus","meanDensity","imageData","dpr","sets","setSrcToCur","cached","sort","pow","sqrt","setSrc","origWidth","getSet","parseSets","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","sources","getAllSourceElements","supported","srcAttr","parsed","srcSetCandidates","matchingSet","evaluated","extreme","evaled","innerWidth","clientWidth","innerHeight","clientHeight","vw","vh","em","rem","fillImgs","last","shift","define","amd","typeUri","Image","detectTypeSupport","132","__forceSmoothScrollPolyfill__","SCROLL_TIME","scrollTo","scrollBy","elementScroll","scrollElement","now","performance","ROUNDING_TOLERANCE","shouldBailOut","smoothScroll","scrollX","pageXOffset","scrollLeft","SyntaxError","scrollableParent","isBody","isScrollable","findScrollableParent","parentRects","clientRects","firstArg","hasScrollableSpace","axis","scrollHeight","scrollWidth","canOverflow","overflowValue","isScrollableY","isScrollableX","currentX","currentY","elapsed","startTime","cos","PI","startX","startY","scrollable","133","checkUseElems","tid","winLoad","debouncedCheck","unobserveChanges","observeChanges","observer","MutationObserver","observe","childList","subtree","attributes","disconnect","ignore","createRequest","getOrigin","loc","protocol","host","Request","origin","origin2","withCredentials","XDomainRequest","xlinkNS","base","bcr","hash","isHidden","uses","xhr","inProgressCount","observeIfDone","attrUpdateFunc","spec","useEl","setAttributeNS","onloadFunc","svg","overflow","onErrorTimeout","ontimeout","getAttributeNS","right","bottom","134","ampersandTest","nativeURLSearchParams","isSupportObjectConstructor","decodesPlusesCorrectly","__URLSearchParams__","encodesAmpersandsCorrectly","append","URLSearchParamsPolyfill","iterable","appendTo","dict","getAll","query","encode","useProxy","Proxy","construct","USPProto","thisArg","parseToDict","makeIterator","!","'","(",")","~","%20","%00","decode","decodeURIComponent","pairs"],"mappings":"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","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i' + name + '';\n\t\t}).reduce(function (acc, curr) {\n\t\t\treturn acc + curr;\n\t\t}, '
');\n\t\tthis.sections = this.sections.map(function (_ref2, ix) {\n\t\t\tvar name = _ref2.name,\n\t\t\t elem = _ref2.elem;\n\t\t\treturn {\n\t\t\t\tname: name,\n\t\t\t\telem: elem,\n\t\t\t\tindicatorElem: indicator.querySelector('[data-indicator=\"section-' + ix + '\"]')\n\t\t\t};\n\t\t});\n\t\tthis.redDot = this.indicator.querySelector('.lrv-indicator__dot');\n\t\twindow.addEventListener('scroll', function (ev) {\n\t\t\treturn _this.onScroll(ev);\n\t\t}, {\n\t\t\tpassive: true\n\t\t});\n\t}\n\n\t_createClass(Indicator, [{\n\t\tkey: 'onScroll',\n\t\tvalue: function onScroll() {\n\t\t\tvar _this2 = this;\n\n\t\t\t// These two lines force an element repaint, which solves clipping issues in Edge and Safari.\n\t\t\t// Surprisingly, it works fine in IE without this fix...\n\t\t\tthis.indicator.style.width = '100%';\n\t\t\tsetTimeout(function () {\n\t\t\t\treturn _this2.indicator.style.width = '';\n\t\t\t}, 0);\n\n\t\t\tvar activeSection = this.sections.find(function (_ref3) {\n\t\t\t\tvar elem = _ref3.elem;\n\t\t\t\treturn elem.offsetTop + elem.getBoundingClientRect().height / 2 > (window.scrollY || window.pageYOffset);\n\t\t\t});\n\t\t\tif (activeSection) {\n\t\t\t\tthis.sections.forEach(function (_ref4) {\n\t\t\t\t\tvar indicatorElem = _ref4.indicatorElem;\n\t\t\t\t\treturn indicatorElem.classList.toggle('active', false);\n\t\t\t\t});\n\t\t\t\tactiveSection.indicatorElem.classList.toggle('active', true);\n\t\t\t\tthis.redDot.style.transform = 'translateY(' + activeSection.indicatorElem.offsetTop + 'px)';\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn Indicator;\n}();\n\nexports.default = Indicator;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = init;\n\nvar _popup = require('../Modules/_popup');\n\nvar _popup2 = _interopRequireDefault(_popup);\n\nvar _tabsNavigation = require('../Modules/_tabs-navigation');\n\nvar _tabsNavigation2 = _interopRequireDefault(_tabsNavigation);\n\nvar _testFeature = require('../Partials/_test-feature.js');\n\nvar _testFeature2 = _interopRequireDefault(_testFeature);\n\nvar _testIe = require('../Partials/_test-ie');\n\nvar _testIe2 = _interopRequireDefault(_testIe);\n\nvar _ieImageFix = require('./_ie-image-fix');\n\nvar _ieImageFix2 = _interopRequireDefault(_ieImageFix);\n\nvar _indicator = require('./_indicator');\n\nvar _indicator2 = _interopRequireDefault(_indicator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction init() {\n\tvar ieVersion = (0, _testIe2.default)();\n\t_testFeature2.default.setClass(!!ieVersion, 'ie');\n\tif (ieVersion) {\n\t\t(0, _ieImageFix2.default)();\n\t}\n\tvar popupTriggers = Array.from(document.querySelectorAll('[data-trigger-popup]')).reduce(function (acc, elem) {\n\t\tvar accIndex = acc.findIndex(function (list) {\n\t\t\treturn list.some(function (trigger) {\n\t\t\t\treturn trigger.elem.dataset.triggerPopup === elem.dataset.triggerPopup;\n\t\t\t});\n\t\t});\n\t\tif (accIndex === -1) return [].concat(_toConsumableArray(acc), [[{ showPopup: elem.hasAttribute('data-popup-open'), elem: elem }]]);else {\n\t\t\tacc[accIndex].push({\n\t\t\t\tshowPopup: elem.hasAttribute('data-popup-open'),\n\t\t\t\telem: elem\n\t\t\t});\n\t\t\treturn acc;\n\t\t}\n\t}, []);\n\n\tpopupTriggers.forEach(function (triggers) {\n\t\treturn new _popup2.default(document.querySelector('[' + triggers[0].elem.dataset.triggerPopup + ']'), triggers);\n\t});\n\n\tnew _tabsNavigation2.default(document.querySelector('[data-tabs=\"steps\"]'), document.querySelector('[data-tabs-content=\"steps\"]'));\n\tvar sections = document.querySelectorAll('[data-section]');\n\tArray.from(document.querySelectorAll('[data-lrv-indicator]'), function (elem) {\n\t\treturn new _indicator2.default(sections, elem);\n\t});\n}\n\n},{\"../Modules/_popup\":16,\"../Modules/_tabs-navigation\":21,\"../Partials/_test-feature.js\":38,\"../Partials/_test-ie\":39,\"./_ie-image-fix\":2,\"./_indicator\":3}],5:[function(require,module,exports){\n'use strict';\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nvar _collapsible = require('../Partials/_collapsible.js');\n\nvar _collapsible2 = _interopRequireDefault(_collapsible);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * initialize everything for the faq\n * @returns {undefined}\n */\nvar init = function init() {\n\t// vars\n\tvar collapsibles = Array.from(document.querySelectorAll('.clustered-blocks > .js-collapsible'));\n\tcollapsibles.forEach(function (el) {\n\t\tnew _collapsible2.default(el);\n\t});\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{\"../Partials/_collapsible.js\":24,\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46}],6:[function(require,module,exports){\n'use strict';\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nvar _tooltips = require('../Partials/_tooltips.js');\n\nvar _tooltips2 = _interopRequireDefault(_tooltips);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar init = function init() {\n\tvar definitionEls = Array.from(document.querySelectorAll('dfn.js-tooltip'));\n\tdefinitionEls.forEach(function (el) {\n\t\tif (el.getAttribute('id') === null) {\n\t\t\tnew _tooltips2.default(el);\n\t\t}\n\t});\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\nwindow.addEventListener('renderTooltips', init);\n\n},{\"../Partials/_tooltips.js\":41,\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46}],7:[function(require,module,exports){\n'use strict';\n\nvar _collapsibleExpandList = require('../Partials/_collapsible-expand-list.js');\n\nvar _collapsibleExpandList2 = _interopRequireDefault(_collapsibleExpandList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar init = function init() {\n\t// Collapsibles in service-listing for medium to xlarge vp\n\tvar listingCollapsibleExpandList = Array.from(document.querySelectorAll('.expand-list .js-collapsible-expand-list'));\n\tlistingCollapsibleExpandList.forEach(function (el) {\n\t\tnew _collapsibleExpandList2.default(el, ['medium', 'mediumPlus', 'large', 'xlarge']);\n\t});\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{\"../Partials/_collapsible-expand-list.js\":23}],8:[function(require,module,exports){\n'use strict';\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nvar _collapsible = require('../Partials/_collapsible.js');\n\nvar _collapsible2 = _interopRequireDefault(_collapsible);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * initialize collapsible behaviour\n * @param {Array} arr - Array with DOM elements on which the collapsible behavior must be initiated\n * @returns {undefined}\n */\nvar initCollapsibles = function initCollapsibles(arr) {\n\tarr.forEach(function (el) {\n\t\tnew _collapsible2.default(el);\n\t});\n};\n\n/**\n * initialize everything for the faq\n * @returns {undefined}\n */\nvar init = function init() {\n\t// vars\n\tvar faqCollapsibles = Array.from(document.querySelectorAll('.faq__questions > .js-collapsible'));\n\t// functions\n\tinitCollapsibles(faqCollapsibles);\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{\"../Partials/_collapsible.js\":24,\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46}],9:[function(require,module,exports){\n'use strict';\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nvar _collapsible = require('../Partials/_collapsible.js');\n\nvar _collapsible2 = _interopRequireDefault(_collapsible);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// define selectors for all listings that need to be collapsible\nvar smallViewCollapsibleSelectors = ['.forward-list-section > .js-collapsible', '.recent-changes > .js-collapsible'].toString();\n\n/**\n * initialize collapsible behaviour for lists that should be collapsible in small view\n * @returns {undefined}\n */\n// general script for listings\n// until now, only handles listings's collapsible behavior\n\nvar initSmallViewCollapsibles = function initSmallViewCollapsibles() {\n\tvar listingCollapsibles = Array.from(document.querySelectorAll(smallViewCollapsibleSelectors));\n\n\tlistingCollapsibles.forEach(function (el) {\n\t\t// Collapsible for mobile\n\t\tnew _collapsible2.default(el, ['small']);\n\t});\n};\n\n// for every viewport (or set of viewports), define which selectors need to be made into collapsible\nvar collapsiblesPerViewport = [{\n\tviewportStates: ['small'],\n\tselectors: ['.forward-list-section > .js-collapsible', '.recent-changes > .js-collapsible', '.related-documents > .js-collapsible'].toString()\n}, {\n\tviewportStates: 'all',\n\tselectors: ['.more-related-documents.js-collapsible', '.subjects > .js-collapsible']\n}];\n\n/**\n * initialize collapsible behaviour for lists that should be collapsible in small view\n * @returns {undefined}\n */\nvar initCollapsibles = function initCollapsibles() {\n\tcollapsiblesPerViewport.forEach(function (viewportSet) {\n\t\tvar collapsibles = Array.from(document.querySelectorAll(viewportSet.selectors));\n\n\t\tcollapsibles.forEach(function (el) {\n\t\t\tnew _collapsible2.default(el, viewportSet.viewportStates);\n\t\t});\n\t});\n};\n\n/**\n * initialize everything for the forward-list\n * @returns {undefined}\n */\nvar init = function init() {\n\tinitCollapsibles();\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{\"../Partials/_collapsible.js\":24,\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46}],10:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MapView = exports.MapView = function () {\n\tfunction MapView(map) {\n\t\t_classCallCheck(this, MapView);\n\n\t\tthis._mapViewNavigation = map.querySelector('.map-view-navigation');\n\t\tthis._mapViewMap = map.querySelector('.map-view-map');\n\t\tthis._mapViewNavigationLinks = this._mapViewNavigation.querySelectorAll('.map-view-navigation a');\n\t\tthis._mapViewMapAreas = this._mapViewMap.querySelectorAll('.map-view-map a');\n\n\t\tthis.init();\n\t}\n\n\t_createClass(MapView, [{\n\t\tkey: 'init',\n\t\tvalue: function init() {\n\t\t\tvar _this = this;\n\n\t\t\tthis._mapViewNavigationLinks.forEach(function (link) {\n\t\t\t\tlink.addEventListener('mouseenter', _this.selectMapArea.bind(_this));\n\t\t\t\tlink.addEventListener('mouseleave', _this.selectMapArea.bind(_this));\n\t\t\t});\n\n\t\t\tthis._mapViewMapAreas.forEach(function (link) {\n\t\t\t\tlink.addEventListener('mouseenter', _this.selectNavigationButton.bind(_this));\n\t\t\t\tlink.addEventListener('mouseleave', _this.selectNavigationButton.bind(_this));\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'selectMapArea',\n\t\tvalue: function selectMapArea(event) {\n\t\t\tvar mapArea = this._mapViewMap.querySelector('a[aria-label=\"' + event.target.innerText + '\"]');\n\n\t\t\tif (mapArea) {\n\t\t\t\tif (event.type === 'mouseenter') {\n\t\t\t\t\tmapArea.classList.add('active');\n\t\t\t\t} else if (event.type === 'mouseleave') {\n\t\t\t\t\tmapArea.classList.remove('active');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'selectNavigationButton',\n\t\tvalue: function selectNavigationButton(event) {\n\t\t\tvar label = event.target.getAttribute('aria-label');\n\n\t\t\tvar navigationButtons = Array.from(this._mapViewNavigationLinks).filter(function (button) {\n\t\t\t\treturn button.innerText === label;\n\t\t\t});\n\n\t\t\tif (navigationButtons.length) {\n\t\t\t\tvar navigationButton = navigationButtons.pop();\n\t\t\t\tif (event.type === 'mouseenter') {\n\t\t\t\t\tnavigationButton.classList.add('active');\n\t\t\t\t} else if (event.type === 'mouseleave') {\n\t\t\t\t\tnavigationButton.classList.remove('active');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn MapView;\n}();\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\tdocument.querySelectorAll('.map-view').forEach(function (item) {\n\t\tconsole.log(item);\n\t\tnew MapView(item);\n\t});\n}, { once: true });\n\n},{}],11:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _viewportstateWatcher = require('../Partials/_viewportstate-watcher.js');\n\nvar _viewportstateWatcher2 = _interopRequireDefault(_viewportstateWatcher);\n\nvar _testTouchevents = require('../Partials/_test-touchevents.js');\n\nvar _testTouchevents2 = _interopRequireDefault(_testTouchevents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* \n TODO: \n - upon viewport resize, set scroll position to list (top, bottom or whatever) or content\n*/\n\n/**\n * A singleton that is in charge of the exotic scrolling/flicking behaviour of the page masthead (on small and medium view)\n *\n * @class MastheadScrollhandler\n */\nvar MastheadScrollhandler = function () {\n\tfunction MastheadScrollhandler() {\n\t\tvar _this = this;\n\n\t\t_classCallCheck(this, MastheadScrollhandler);\n\n\t\tthis._wrap = document.querySelector('.masthead__wrap');\n\t\tthis._services = this._wrap.querySelector('.masthead__services');\n\t\tthis._textitem = this._wrap.querySelector('.masthead__text');\n\n\t\tthis._scrollBuffer = 75;\n\t\tthis._scrollStep = 6;\n\t\tthis._dir = 'down';\n\n\t\tthis._hasInitialised = false;\n\n\t\tvar timer = void 0;\n\n\t\t// Called on various interaction events\n\t\tthis._scrollHandler = function (event) {\n\t\t\tvar fn = void 0;\n\n\t\t\tif (_this._dir === 'down') {\n\t\t\t\t// Services list is shown, user wants to scroll down\n\t\t\t\tfn = function fn() {\n\t\t\t\t\tvar y = _this._wrap.scrollTop;\n\t\t\t\t\t_this._updateProps();\n\n\t\t\t\t\tif (_this._bodyY > 0) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (y + _this._wrapH > _this._textitemY + _this._scrollBuffer) {\n\t\t\t\t\t\t// Content peeks from the bottom of root and is pastbuffer zone: scroll to content\n\t\t\t\t\t\t_this._scrollTo(_this._textitemY, function () {\n\t\t\t\t\t\t\t_this._dir = 'up';\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (_this._servicesH <= _this._wrapH) {\n\t\t\t\t\t\t// List height is smaller than root height: scroll to list top; long list allows user scrolling\n\t\t\t\t\t\t_this._scrollTo(0);\n\t\t\t\t\t} else if (y + _this._wrapH > _this._textitemY) {\n\t\t\t\t\t\t// Content peeks from the bottom of root but is below buffer zone: scroll to bottom of list\n\t\t\t\t\t\t_this._scrollTo(_this._servicesH - _this._wrapH);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\t// Text item is shown, user wants to scroll up\n\t\t\t\tfn = function fn() {\n\t\t\t\t\tvar y = _this._wrap.scrollTop;\n\t\t\t\t\t_this._updateProps();\n\n\t\t\t\t\tif (_this._bodyY > 0) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (y < _this._textitemY - _this._scrollBuffer) {\n\t\t\t\t\t\t// List peeks from the top of root and is past buffer zone\n\n\t\t\t\t\t\tif (y > _this._servicesH - _this._wrapH) {\n\t\t\t\t\t\t\t// Bottom of list is still visible: scroll to bottom of list\n\t\t\t\t\t\t\t_this._scrollTo(_this._servicesH - _this._wrapH, function () {\n\t\t\t\t\t\t\t\t_this._dir = 'down';\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (_this._textitemH <= _this._wrapH) {\n\t\t\t\t\t\t// Content height is smaller than root height: scroll to top of content\n\t\t\t\t\t\t_this._scrollTo(_this._textitemY + _this._scrollBuffer);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tclearTimeout(timer);\n\n\t\t\tif (event.type === 'touchend' || event.type === 'mouseup') {\n\t\t\t\tfn();\n\t\t\t} else {\n\t\t\t\ttimer = setTimeout(fn, 50);\n\t\t\t}\n\t\t};\n\n\t\t// Remove scroll event handler (triggered on mousedown and touchstart events)\n\t\tthis._removeScrollListener = function () {\n\t\t\treturn _this._wrap.removeEventListener('scroll', _this._scrollHandler, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t};\n\n\t\t// Add scroll event handler (triggered on mouseup and touchend events)\n\t\tthis._addScrollListener = function () {\n\t\t\treturn _this._wrap.addEventListener('scroll', _this._scrollHandler, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t};\n\n\t\t// Handle page scrolling\n\t\tthis._scrollHandlerPage = function (event) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = setTimeout(function () {\n\t\t\t\tif (document.body.scrollTop > 0) {\n\t\t\t\t\t// Enable masthead scrolling when not scrolled to top\n\t\t\t\t\t// (Might not be agnostic enough; it implies masthead sits at top)\n\t\t\t\t\t_this._wrap.classList.add('stop-scrolling');\n\t\t\t\t} else {\n\t\t\t\t\t// Disable masthead scrolling when not scrolled to top\n\t\t\t\t\t_this._wrap.classList.remove('stop-scrolling');\n\t\t\t\t}\n\t\t\t}, 50);\n\t\t};\n\n\t\tthis._touchEvents = _testTouchevents2.default.test();\n\t\t_testTouchevents2.default.setClass(this._touchEvents, 'touchevents');\n\n\t\t// Stream init/uninit through viewportStateWatcher\n\t\t_viewportstateWatcher2.default.watch(['small', 'medium', 'mediumPlus'], function () {\n\t\t\treturn _this._init();\n\t\t}, function () {\n\t\t\treturn _this._uninit();\n\t\t});\n\t}\n\n\t_createClass(MastheadScrollhandler, [{\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\tif (this._hasInitialised) return; // Don't initialise unless uninitialised\n\t\t\tthis._hasInitialised = true;\n\n\t\t\tthis._addEventHandlers();\n\n\t\t\tdocument.addEventListener('scroll', this._scrollHandlerPage, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_uninit',\n\t\tvalue: function _uninit() {\n\t\t\tthis._hasInitialised = false;\n\n\t\t\tthis._removeEventHandlers();\n\n\t\t\tdocument.removeEventListener('scroll', this._scrollHandlerPage, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t}\n\n\t\t// Update some variables from the DOM\n\n\t}, {\n\t\tkey: '_updateProps',\n\t\tvalue: function _updateProps() {\n\t\t\tthis._bodyY = document.body.scrollTop;\n\t\t\tthis._wrapH = this._wrap.offsetHeight;\n\t\t\tthis._servicesH = this._services.offsetHeight;\n\t\t\tthis._textitemH = this._textitem.offsetHeight;\n\t\t\tthis._textitemY = this._textitem.offsetTop;\n\t\t}\n\n\t\t// Add all relevant interaction event handlers\n\n\t}, {\n\t\tkey: '_addEventHandlers',\n\t\tvalue: function _addEventHandlers() {\n\t\t\tthis._wrap.addEventListener('touchend', this._scrollHandler, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t\tthis._wrap.addEventListener('mouseup', this._scrollHandler);\n\t\t\tthis._wrap.addEventListener('scroll', this._scrollHandler, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t\tthis._wrap.addEventListener('touchstart', this._removeScrollListener, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t\tthis._wrap.addEventListener('mousedown', this._removeScrollListener);\n\t\t\tthis._wrap.addEventListener('touchend', this._addScrollListener, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t\tthis._wrap.addEventListener('mouseup', this._addScrollListener);\n\t\t}\n\n\t\t// Remove all relevant interaction event handlers\n\n\t}, {\n\t\tkey: '_removeEventHandlers',\n\t\tvalue: function _removeEventHandlers() {\n\t\t\tthis._wrap.removeEventListener('touchend', this._scrollHandler, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t\tthis._wrap.removeEventListener('mouseup', this._scrollHandler);\n\t\t\tthis._wrap.removeEventListener('scroll', this._scrollHandler, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t\tthis._wrap.removeEventListener('touchstart', this._removeScrollListener, { passive: true });\n\t\t\tthis._wrap.removeEventListener('mousedown', this._removeScrollListener);\n\t\t\tthis._wrap.removeEventListener('touchend', this._addScrollListener, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t\tthis._wrap.removeEventListener('mouseup', this._addScrollListener);\n\t\t}\n\n\t\t/**\n * Scroll the wrapper to a designated position\n *\n * @param {integer} targetY - The target position\n * @param {function} [callbackFn=() => {}] - Optional callback function, called upon reaching the target position\n *\n * @memberOf MastheadScrollhandler\n */\n\n\t}, {\n\t\tkey: '_scrollTo',\n\t\tvalue: function _scrollTo(targetY) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar callbackFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n\n\t\t\tthis._removeEventHandlers();\n\t\t\tif (this._touchevents) {\n\t\t\t\tthis._wrap.classList.add('stop-scrolling');\n\t\t\t}\n\n\t\t\tvar scrollY = this._wrap.scrollTop;\n\t\t\tvar step = targetY > scrollY ? this._scrollStep : -this._scrollStep;\n\n\t\t\t// Loop run with each interval call\n\t\t\tvar loop = function loop() {\n\t\t\t\tscrollY += step;\n\t\t\t\tif (scrollY >= targetY && step > 0 || scrollY <= targetY && step < 0) {\n\t\t\t\t\t_this2._wrap.scrollTop = targetY;\n\t\t\t\t\tclearInterval(timer);\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\tif (_this2._touchevents) {\n\t\t\t\t\t\t\t_this2._wrap.classList.remove('stop-scrolling');\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_this2._addEventHandlers();\n\t\t\t\t\t\tcallbackFn();\n\t\t\t\t\t}, 100);\n\t\t\t\t} else {\n\t\t\t\t\t_this2._wrap.scrollTop = scrollY;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar timer = void 0;\n\n\t\t\tclearInterval(timer);\n\t\t\ttimer = setInterval(loop, 0);\n\t\t}\n\t}]);\n\n\treturn MastheadScrollhandler;\n}();\n\nexports.default = MastheadScrollhandler;\n\n},{\"../Partials/_test-touchevents.js\":40,\"../Partials/_viewportstate-watcher.js\":42}],12:[function(require,module,exports){\n'use strict';\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nvar _viewportstateWatcher = require('../Partials/_viewportstate-watcher.js');\n\nvar _viewportstateWatcher2 = _interopRequireDefault(_viewportstateWatcher);\n\nvar _collapsible = require('../Partials/_collapsible.js');\n\nvar _collapsible2 = _interopRequireDefault(_collapsible);\n\nvar _mastheadScrollhandler = require('../Modules/_masthead-scrollhandler.js');\n\nvar _mastheadScrollhandler2 = _interopRequireDefault(_mastheadScrollhandler);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar init = function init() {\n\t// Collapsibles in masthead\n\tvar mastheadCollapsibles = Array.from(document.querySelectorAll('.masthead .js-collapsible'));\n\tmastheadCollapsibles.forEach(function (el) {\n\t\tnew _collapsible2.default(el, ['small']);\n\t});\n\n\t// Scrollhandler\n\t// let mastheadServices = document.querySelectorAll('.masthead .masthead__services');\n\t// if (mastheadServices.length > 0) {\n\t// let mastheadScrollHandler = new MastheadScrollHandler();\n\t// }\n\n\t// Fallback for safari because it doesn't support calc(25% - 24px), see file: _masthead-services.scss\n\tif (document.querySelector('html').classList.contains('is-ios-safari')) {\n\t\tvar items = Array.from(document.querySelectorAll('.masthead__services__item'));\n\n\t\tif (items.length < 1) {\n\t\t\treturn;\n\t\t}\n\n\t\t_viewportstateWatcher2.default.watch(['large', 'xlarge'], function () {\n\t\t\tvar parentHeight = items[0].parentElement.offsetHeight;\n\t\t\tvar newItemHeight = String(parentHeight / 4 - 16);\n\n\t\t\titems.forEach(function (item) {\n\t\t\t\treturn item.style.height = newItemHeight + 'px';\n\t\t\t});\n\t\t}, function () {\n\t\t\treturn null;\n\t\t});\n\t}\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{\"../Modules/_masthead-scrollhandler.js\":11,\"../Partials/_collapsible.js\":24,\"../Partials/_viewportstate-watcher.js\":42,\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46}],13:[function(require,module,exports){\n'use strict';\n\nvar init = function init() {\n\tvar messages = document.querySelectorAll('.message');\n\tmessages.forEach(function (message) {\n\t\tvar button = message.querySelector('button');\n\t\tvar storage = message.dataset.persistent !== undefined ? localStorage : sessionStorage;\n\n\t\tvar close = function close(instant) {\n\t\t\tif (instant) {\n\t\t\t\tmessage.remove();\n\t\t\t} else {\n\t\t\t\tmessage.setAttribute('style', 'opacity: 0');\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tmessage.remove();\n\t\t\t\t}, 500);\n\t\t\t}\n\t\t\tif (message.id) {\n\t\t\t\tstorage.setItem(message.id, 'hidden-from-user');\n\t\t\t} else {\n\t\t\t\tconsole.info('no message id given for closing state, message will reapear to the user');\n\t\t\t}\n\t\t};\n\n\t\tvar show = function show() {\n\t\t\tmessage.setAttribute('aria-hidden', 'false');\n\t\t};\n\n\t\tif (message) {\n\t\t\t// if the message has been closed before, hide it again\n\t\t\tif (storage.getItem(message.id)) {\n\t\t\t\tclose(true);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tshow();\n\t\t}\n\n\t\tvar clickEventListener = function clickEventListener() {\n\t\t\tclose();\n\t\t};\n\n\t\tvar keyEventListener = function keyEventListener(event) {\n\t\t\tif (event.code === 'Enter') {\n\t\t\t\tclose();\n\t\t\t}\n\t\t};\n\n\t\tvar focusEventListener = function focusEventListener() {\n\t\t\tdocument.addEventListener('keydown', keyEventListener);\n\t\t};\n\n\t\tvar blurEventListener = function blurEventListener() {\n\t\t\tdocument.removeEventListener('keydown', keyEventListener);\n\t\t};\n\n\t\tvar addListeners = function addListeners() {\n\t\t\tif (message) {\n\t\t\t\tmessage.addEventListener('focus', focusEventListener);\n\t\t\t\tmessage.addEventListener('blur', blurEventListener);\n\t\t\t}\n\t\t\tif (button) {\n\t\t\t\tbutton.addEventListener('click', clickEventListener);\n\t\t\t}\n\t\t};\n\n\t\taddListeners();\n\t});\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{}],14:[function(require,module,exports){\n'use strict';\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nvar _collapsible = require('../Partials/_collapsible.js');\n\nvar _collapsible2 = _interopRequireDefault(_collapsible);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar init = function init() {\n\t// Collapsibles in footer doormat\n\tvar footerCollapsibles = Array.from(document.querySelectorAll('#page-footer__doormat .js-collapsible'));\n\tfooterCollapsibles.forEach(function (el) {\n\t\tnew _collapsible2.default(el, ['small', 'medium']);\n\t});\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{\"../Partials/_collapsible.js\":24,\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46}],15:[function(require,module,exports){\n'use strict';\n\nrequire('core-js/fn/array/from');\n\nvar _printButton = require('../Partials/_print-button.js');\n\nvar _printButton2 = _interopRequireDefault(_printButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar appendPrintInfo = function appendPrintInfo() {\n\tvar infoNode = document.createElement('div');\n\n\tvar metaEl = document.querySelector('meta[name=\"print-message\"]');\n\tinfoNode.classList.add('print-message');\n\tinfoNode.setAttribute('role', 'presentation');\n\tinfoNode.setAttribute('data-nosnippet', '');\n\tinfoNode.textContent = metaEl ? metaEl.getAttribute('content') : '';\n\n\tdocument.body.appendChild(infoNode);\n};\n\nvar init = function init() {\n\t// Page utilities print button\n\tvar buttonPrintPage = document.getElementById('print-page');\n\tif (buttonPrintPage) {\n\t\tnew _printButton2.default(buttonPrintPage);\n\t}\n\n\tappendPrintInfo();\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{\"../Partials/_print-button.js\":33,\"core-js/fn/array/from\":46}],16:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Popup = function () {\n\tfunction Popup(popup, triggers) {\n\t\tvar _this = this;\n\n\t\t_classCallCheck(this, Popup);\n\n\t\tthis.popup = popup;\n\t\tthis.bindFocusLoop();\n\t\tthis.keyup = function (e) {\n\t\t\treturn e.key === 'Escape' ? _this.togglePopUp(false)() : function () {}();\n\t\t}; //noop\n\t\ttriggers.forEach(function (trigger) {\n\t\t\treturn trigger.elem.addEventListener('click', _this.togglePopUp(trigger.showPopup));\n\t\t});\n\t}\n\n\t_createClass(Popup, [{\n\t\tkey: 'togglePopUp',\n\t\tvalue: function togglePopUp(showPopup) {\n\t\t\tvar _this2 = this;\n\n\t\t\treturn function (event) {\n\t\t\t\t_this2.popup.classList.toggle('visible', showPopup);\n\t\t\t\tdocument.querySelector('body').classList.toggle('has-overlay', showPopup);\n\t\t\t\tif (showPopup) {\n\t\t\t\t\tdocument.addEventListener('keyup', _this2.keyup);\n\t\t\t\t\t_this2.usedTrigger = event.target;\n\t\t\t\t\t_this2.popup.focus();\n\t\t\t\t} else {\n\t\t\t\t\tdocument.removeEventListener('keyup', _this2.keyup);\n\t\t\t\t\t_this2.usedTrigger.focus();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: 'bindFocusLoop',\n\t\tvalue: function bindFocusLoop() {\n\t\t\tvar tabableElements = this.popup.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n\t\t\ttabableElements[tabableElements.length - 1].addEventListener('focusout', function () {\n\t\t\t\treturn tabableElements[0].focus();\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn Popup;\n}();\n\nexports.default = Popup;\n\n},{}],17:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _createId = require('../Partials/_create-id');\n\nvar _createId2 = _interopRequireDefault(_createId);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ReadMore = function () {\n\tfunction ReadMore(element) {\n\t\t_classCallCheck(this, ReadMore);\n\n\t\tthis.element = element;\n\t\tthis.buttons = this.element.querySelectorAll('.read-more-summary');\n\n\t\tthis.init();\n\t}\n\n\t_createClass(ReadMore, [{\n\t\tkey: 'init',\n\t\tvalue: function init() {\n\t\t\tvar _this = this;\n\n\t\t\tthis.buttons.forEach(function (button) {\n\t\t\t\tvar buttonId = (0, _createId2.default)();\n\t\t\t\tvar panelId = (0, _createId2.default)();\n\t\t\t\tvar panel = _this.element.querySelector('.read-more-details');\n\n\t\t\t\tbutton.setAttribute('id', buttonId);\n\t\t\t\tbutton.setAttribute('aria-controls', panelId);\n\t\t\t\tbutton.setAttribute('aria-expanded', 'false');\n\n\t\t\t\tpanel.setAttribute('id', panelId);\n\t\t\t\tpanel.setAttribute('aria-hidden', 'true');\n\t\t\t\tbutton.addEventListener('click', function (e) {\n\t\t\t\t\t_this.toggle(e.currentTarget);\n\t\t\t\t});\n\t\t\t}, { passive: true });\n\t\t}\n\t}, {\n\t\tkey: 'toggle',\n\t\tvalue: function toggle(button) {\n\t\t\tif (button.getAttribute('aria-expanded') === 'true') {\n\t\t\t\tthis.close(button);\n\t\t\t} else {\n\t\t\t\tthis.open(button);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'open',\n\t\tvalue: function open(button) {\n\t\t\tvar panel = this.element.querySelector('#' + button.getAttribute('aria-controls'));\n\n\t\t\tpanel.setAttribute('aria-hidden', 'false');\n\t\t\tbutton.setAttribute('aria-expanded', 'true');\n\t\t}\n\t}, {\n\t\tkey: 'close',\n\t\tvalue: function close(button) {\n\t\t\tvar panel = this.element.querySelector('#' + button.getAttribute('aria-controls'));\n\t\t\tpanel.setAttribute('aria-hidden', 'true');\n\t\t\tbutton.setAttribute('aria-expanded', 'false');\n\t\t}\n\t}]);\n\n\treturn ReadMore;\n}();\n\nexports.default = ReadMore;\n\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\tdocument.querySelectorAll('div.read-more').forEach(function (item) {\n\t\tnew ReadMore(item);\n\t});\n}, { once: true });\n\n},{\"../Partials/_create-id\":25}],18:[function(require,module,exports){\n'use strict';\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nvar _table = require('../Partials/_table.js');\n\nvar _table2 = _interopRequireDefault(_table);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar init = function init() {\n\tvar rtes = Array.from(document.querySelectorAll('.rte'));\n\trtes.forEach(function (rte) {\n\t\tvar tables = Array.from(rte.querySelectorAll('.js-resizing-table'));\n\t\ttables.forEach(function (table) {\n\t\t\tnew _table2.default(table, rte);\n\t\t});\n\t});\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{\"../Partials/_table.js\":37,\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46}],19:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nvar _onswipe = require('../Partials/_onswipe.js');\n\nvar _onswipe2 = _interopRequireDefault(_onswipe);\n\nvar _searchSuggest = require('../Partials/_search-suggest.js');\n\nvar _searchSuggest2 = _interopRequireDefault(_searchSuggest);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar HeaderSearchForm = function () {\n\tfunction HeaderSearchForm() {\n\t\t_classCallCheck(this, HeaderSearchForm);\n\n\t\tthis._root = document.getElementById('page-header__search');\n\t\tthis._form = this._root.querySelector('.site-search__form');\n\t\tthis._label = document.getElementById('page-header__search__label');\n\t\tthis._field = document.getElementById('page-header__search__field');\n\t\tthis._button = document.getElementById('page-header__search__toggle');\n\n\t\tthis._searchResultItems = Array.from(document.querySelectorAll('.search-results__results-list > li > a'));\n\n\t\tthis._isExpanded = false;\n\n\t\tthis._init();\n\t}\n\n\t_createClass(HeaderSearchForm, [{\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\tvar _this = this;\n\n\t\t\tthis._button.setAttribute('aria-expanded', false);\n\t\t\tthis._button.textContent = this._button.getAttribute('data-label-show');\n\n\t\t\tthis._form.setAttribute('aria-hidden', true);\n\t\t\tif (typeof dataLayer !== 'undefined') {\n\t\t\t\tthis._searchResultItems.forEach(function (item) {\n\t\t\t\t\titem.addEventListener('click', _this._handleResultItem);\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar escHandler = function escHandler(e) {\n\t\t\t\tif (e.key === 'Escape' || e.key === 'Esc') {\n\t\t\t\t\tif (!_this._root.querySelector('.search-suggest.is-active')) {\n\t\t\t\t\t\t_this._quit();\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\treturn _this._button.focus();\n\t\t\t\t\t\t}, 100);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis._root.addEventListener('keyup', escHandler);\n\t\t\tthis._label.addEventListener('click', function () {\n\t\t\t\treturn _this._activate();\n\t\t\t});\n\n\t\t\tvar toggleHandler = function toggleHandler(e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif (_this._isExpanded) {\n\t\t\t\t\t_this._quit();\n\t\t\t\t} else {\n\t\t\t\t\t_this._activate();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis._button.addEventListener('click', toggleHandler);\n\n\t\t\tvar focusoutHandler = function focusoutHandler(e) {\n\t\t\t\tif (_this._isExpanded) _this._quit();\n\t\t\t};\n\n\t\t\tdocument.body.addEventListener('focusin', focusoutHandler);\n\t\t\tdocument.body.addEventListener('click', focusoutHandler);\n\n\t\t\tthis._root.addEventListener('focusin', function (e) {\n\t\t\t\treturn e.stopPropagation();\n\t\t\t});\n\t\t\tthis._root.addEventListener('click', function (e) {\n\t\t\t\treturn e.stopPropagation();\n\t\t\t});\n\n\t\t\tvar swipeHandler = new _onswipe2.default();\n\t\t\tswipeHandler.on('right', this._root, function () {\n\t\t\t\treturn _this._quit();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_handleResultItem',\n\t\tvalue: function _handleResultItem(e) {\n\t\t\tif (typeof dataLayer !== 'undefined') {\n\t\t\t\tvar item = e.currentTarget;\n\t\t\t\tvar itemLink = item.getAttribute('href');\n\t\t\t\tvar searchTitleElement = item.querySelector('h2');\n\t\t\t\tvar searchTitleText = searchTitleElement.innerText || searchTitleElement.textContent;\n\t\t\t\tdataLayer.push({\n\t\t\t\t\tevent: 'clickoutSearch', //values are dynamic depending on the click out\n\t\t\t\t\tclickName: searchTitleText,\n\t\t\t\t\tclickPath: itemLink\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_activate',\n\t\tvalue: function _activate() {\n\t\t\tvar _this2 = this;\n\n\t\t\tthis._root.addEventListener('transitionend', function () {\n\t\t\t\t_this2._button.setAttribute('aria-expanded', true);\n\t\t\t\t_this2._form.setAttribute('aria-hidden', false);\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\treturn _this2._field.focus();\n\t\t\t\t}, 100);\n\t\t\t}, {\n\t\t\t\tonce: true\n\t\t\t});\n\n\t\t\tthis._root.classList.add('site-search--is-expanded');\n\t\t\tdocument.body.classList.add('site-search--is-expanded');\n\t\t\tdocument.body.classList.add('has-overlay');\n\t\t\tdocument.body.addEventListener('touchmove', this._freezeViewport, {\n\t\t\t\tpassive: false\n\t\t\t});\n\n\t\t\tthis._button.textContent = this._button.getAttribute('data-label-hide');\n\n\t\t\tthis._isExpanded = true;\n\t\t}\n\t}, {\n\t\tkey: '_freezeViewport',\n\t\tvalue: function _freezeViewport(e) {\n\t\t\te.preventDefault();\n\t\t}\n\t}, {\n\t\tkey: '_quit',\n\t\tvalue: function _quit(e) {\n\t\t\tif (e && typeof e.preventDefault === 'function') e.preventDefault();\n\n\t\t\tthis._button.setAttribute('aria-expanded', false);\n\t\t\tthis._form.setAttribute('aria-hidden', true);\n\n\t\t\tthis._button.textContent = this._button.getAttribute('data-label-show');\n\n\t\t\tthis._root.classList.remove('site-search--is-expanded');\n\t\t\tdocument.body.classList.remove('site-search--is-expanded');\n\t\t\tdocument.body.classList.remove('has-overlay');\n\t\t\tdocument.body.removeEventListener('touchmove', this._freezeViewport, {\n\t\t\t\tpassive: false\n\t\t\t});\n\n\t\t\tthis._isExpanded = false;\n\t\t}\n\t}]);\n\n\treturn HeaderSearchForm;\n}();\n\nvar initPreventEmptySubmit = function initPreventEmptySubmit(el) {\n\tvar fn = function fn(e) {\n\t\tvar field = el.querySelector('input.site-search__field');\n\t\tif (field && field.value.length < 1) {\n\t\t\te.preventDefault();\n\t\t}\n\t};\n\tel.addEventListener('submit', fn);\n};\n\n/**\n * [initResetAndFocus shows and hides a reset button which resets and focus the input field]\n * @method initResetAndFocus\n */\nvar initResetAndFocus = function initResetAndFocus() {\n\tvar searchForm = document.querySelector('.search-results .site-search__form');\n\tvar searchFormClass = 'site-search__form--active';\n\tvar field = document.querySelector('.search-results .site-search__field');\n\tvar resetBtn = document.querySelector('.js-search-field-reset');\n\n\tif (!field) return;\n\n\tvar checkField = function checkField() {\n\t\tif (field && field.value.length > 0) {\n\t\t\tsearchForm.classList.add(searchFormClass);\n\t\t\tresetBtn.setAttribute('style', 'opacity: 1; visibility: visible;');\n\t\t} else {\n\t\t\tsearchForm.classList.remove(searchFormClass);\n\t\t\tresetBtn.setAttribute('style', 'opacity: 0; visibility: hidden;');\n\t\t}\n\t};\n\n\tvar hideBtn = function hideBtn() {\n\t\tresetBtn.setAttribute('style', 'opacity: 0; visibility: hidden;');\n\t\tfield.value = '';\n\t\tfield.focus();\n\t};\n\n\tfield.addEventListener('keyup', checkField);\n\tresetBtn.addEventListener('click', hideBtn);\n\tcheckField();\n};\n\nvar init = function init() {\n\tvar allSearchElms = Array.from(document.querySelectorAll('.site-search__form'));\n\tallSearchElms.forEach(function (el) {\n\t\t// Prevent empty form submission on all search forms\n\t\tinitPreventEmptySubmit(el);\n\n\t\t// Set search suggestions on all search forms\n\t\tnew _searchSuggest2.default(el, el.querySelector('.site-search__field'));\n\t});\n\n\tinitResetAndFocus();\n\n\tvar headerSearch = document.getElementById('page-header__search');\n\tif (headerSearch) {\n\t\tnew HeaderSearchForm();\n\t}\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{\"../Partials/_onswipe.js\":31,\"../Partials/_search-suggest.js\":36,\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46}],20:[function(require,module,exports){\n'use strict';\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nvar _collapsible = require('../Partials/_collapsible.js');\n\nvar _collapsible2 = _interopRequireDefault(_collapsible);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar init = function init() {\n\t// Collapsibles in service-listing for small vp\n\tvar listingCollapsible = Array.from(document.querySelectorAll('.services .js-collapsible'));\n\tlistingCollapsible.forEach(function (el) {\n\t\tnew _collapsible2.default(el, ['small']);\n\t});\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{\"../Partials/_collapsible.js\":24,\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46}],21:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TabNav = function () {\n\tfunction TabNav(tabsContainer, contentContainer) {\n\t\tvar _this = this;\n\n\t\t_classCallCheck(this, TabNav);\n\n\t\tif (!tabsContainer || !contentContainer) {\n\t\t\treturn;\n\t\t}\n\t\tthis.tabs = Array.from(tabsContainer.querySelectorAll('[role=\"tab\"]'), function (tab) {\n\t\t\treturn {\n\t\t\t\ttab: tab,\n\t\t\t\tcontent: contentContainer.querySelector('[aria-labelledby=\"' + tab.id + '\"]')\n\t\t\t};\n\t\t});\n\t\tthis.contentContainer = contentContainer;\n\t\tdocument.addEventListener('keyup', function (ev) {\n\t\t\treturn _this.keyup(ev);\n\t\t});\n\t\tthis.tabs.forEach(function (tab) {\n\t\t\treturn tab.tab.addEventListener('click', function () {\n\t\t\t\treturn _this.toggleTab(tab)();\n\t\t\t});\n\t\t});\n\t\tthis.tabs.forEach(function (tab) {\n\t\t\tvar nextTabButton = tab.content.querySelector('[data-next-tab]');\n\t\t\tif (nextTabButton) nextTabButton.addEventListener('click', function () {\n\t\t\t\treturn _this.nextTab(tab)();\n\t\t\t});\n\t\t});\n\t}\n\n\t_createClass(TabNav, [{\n\t\tkey: 'toggleTab',\n\t\tvalue: function toggleTab(triggeringTab) {\n\t\t\tvar _this2 = this;\n\n\t\t\treturn function () {\n\t\t\t\t_this2.tabs.forEach(function (tab) {\n\t\t\t\t\ttab.content.classList.toggle('visible', false);\n\t\t\t\t\ttab.tab.classList.toggle('active', false);\n\t\t\t\t\ttab.tab.setAttribute('aria-selected', 'false');\n\t\t\t\t});\n\t\t\t\tvar currentIndex = _this2.tabs.findIndex(function (tab) {\n\t\t\t\t\treturn tab === triggeringTab;\n\t\t\t\t});\n\t\t\t\t_this2.contentContainer.style.transform = 'translateX(-' + currentIndex * 100 + '%)';\n\t\t\t\ttriggeringTab.content.classList.toggle('visible', true);\n\t\t\t\ttriggeringTab.content.setAttribute('tabindex', '0');\n\t\t\t\ttriggeringTab.tab.classList.toggle('active', true);\n\t\t\t\ttriggeringTab.tab.setAttribute('aria-selected', 'true');\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: 'nextTab',\n\t\tvalue: function nextTab(activeTab) {\n\t\t\tvar _this3 = this;\n\n\t\t\treturn function () {\n\t\t\t\tvar activeIndex = _this3.tabs.findIndex(function (tab) {\n\t\t\t\t\treturn tab === activeTab;\n\t\t\t\t});\n\t\t\t\t_this3.toggleTab(_this3.tabs[(activeIndex + 1) % _this3.tabs.length])();\n\t\t\t};\n\t\t}\n\t}, {\n\t\tkey: 'keyup',\n\t\tvalue: function keyup(e) {\n\t\t\tvar activeIndex = this.tabs.findIndex(function (tab) {\n\t\t\t\treturn tab.tab === document.activeElement;\n\t\t\t});\n\t\t\t//break if no tab is active\n\t\t\tif (activeIndex === -1) return;else if (e.key === 'ArrowLeft' || e.key === 'Left') this.tabs[(activeIndex || this.tabs.length) - 1].tab.focus();else if (e.key === 'ArrowRight' || e.key === 'Right') this.tabs[(activeIndex + 1) % this.tabs.length].tab.focus();\n\t\t}\n\t}]);\n\n\treturn TabNav;\n}();\n\nexports.default = TabNav;\n\n},{}],22:[function(require,module,exports){\n'use strict';\n\nrequire('core-js/fn/array/for-each');\n\n/**\n * A small script that sets a classname on the HTML element to allow CSS to get around very specific problems that can't be fixed otherwise\n * Remember, kids. UA detection is still a sin.\n *\n */\nvar detect = function detect() {\n\tvar uaMap = [{\n\t\t// iOS Safari (not Chrome)\n\t\tregexp: /^((?!chrome|android|CriOS).)*safari/i,\n\t\tclassName: 'is-ios-safari'\n\t}];\n\tvar uaStr = navigator.userAgent;\n\tuaMap.forEach(function (el) {\n\t\tif (el.regexp.test(uaStr)) {\n\t\t\tdocument.documentElement.classList.add(el.className);\n\t\t}\n\t});\n};\n\ndocument.addEventListener('DOMContentLoaded', detect, { once: true });\n\n},{\"core-js/fn/array/for-each\":45}],23:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nrequire('core-js/fn/array/from');\n\nrequire('./_matches.js');\n\nvar _createId = require('./_create-id.js');\n\nvar _createId2 = _interopRequireDefault(_createId);\n\nvar _viewportstateWatcher = require('./_viewportstate-watcher.js');\n\nvar _viewportstateWatcher2 = _interopRequireDefault(_viewportstateWatcher);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar CollapsibleExpandList = function () {\n\tfunction CollapsibleExpandList(el) {\n\t\tvar _this = this;\n\n\t\tvar viewportStates = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'all';\n\n\t\t_classCallCheck(this, CollapsibleExpandList);\n\n\t\tthis._root = el;\n\t\tthis._maxItemsShown = 5;\n\t\tthis._itemsList = el.querySelector('.js-collapsible-expand-list__items');\n\t\tthis._items = Array.from(el.querySelectorAll('.js-collapsible-expand-list__item'));\n\n\t\tif (this._items.length <= this._maxItemsShown) return;\n\n\t\tthis._btnTextShow = this._root.getAttribute('data-collapsible-expand-list-show') || 'Meer';\n\t\tthis._btnTextHide = this._root.getAttribute('data-collapsible-expand-list-hide') || 'Minder';\n\n\t\tthis._showState = false;\n\t\tthis._hasInitialised = false;\n\t\tthis._toggleCollapseHandler = this._toggleCollapse.bind(this);\n\n\t\tthis._resizeTimer = null;\n\t\tthis._resizeHandler = function () {\n\t\t\tclearTimeout(_this._resizeTimer);\n\t\t\t_this._resizeTimer = setTimeout(function () {\n\t\t\t\treturn _this._initState();\n\t\t\t}, 50);\n\t\t};\n\n\t\t// Stream init/uninit through viewportStateWatcher\n\t\t_viewportstateWatcher2.default.watch(viewportStates, function () {\n\t\t\t_this._init();\n\t\t\t//setTimeout(() => this._initState(), 10);\n\t\t\t_this._initState();\n\t\t}, function () {\n\t\t\treturn _this._uninit();\n\t\t});\n\t}\n\n\t_createClass(CollapsibleExpandList, [{\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\tif (this._hasInitialised) return; // Don't initialise unless uninitialised\n\t\t\tthis._hasInitialised = true;\n\n\t\t\t// Calc height of items\n\t\t\t//this._calcItemsHeight();\n\n\t\t\tvar bodyId = this._root.id || (0, _createId2.default)();\n\t\t\tthis._root.setAttribute('id', bodyId);\n\n\t\t\tthis._btn = document.createElement('button');\n\t\t\tthis._btn.textContent = this._btnTextShow;\n\t\t\tthis._btn.classList.add('expand-list-listing__toggle');\n\t\t\tthis._btn.setAttribute('aria-controls', bodyId);\n\t\t\tthis._root.appendChild(this._btn);\n\n\t\t\tthis._btn.addEventListener('click', this._toggleCollapseHandler);\n\n\t\t\twindow.addEventListener('resize', this._resizeHandler);\n\t\t\twindow.addEventListener('orientationchange', this._resizeHandler);\n\t\t}\n\t}, {\n\t\tkey: '_uninit',\n\t\tvalue: function _uninit() {\n\t\t\tthis._hasInitialised = false;\n\t\t\tthis._showState = false;\n\t\t\tthis._itemsList.removeAttribute('style');\n\t\t\tif (this._btn) this._btn.remove();\n\n\t\t\tclearTimeout(this._resizeTimer);\n\n\t\t\twindow.removeEventListener('resize', this._resizeHandler);\n\t\t\twindow.removeEventListener('orientationchange', this._resizeHandler);\n\t\t}\n\t}, {\n\t\tkey: '_initState',\n\t\tvalue: function _initState() {\n\t\t\tif (this._showState) {\n\t\t\t\tthis.show(false);\n\t\t\t} else {\n\t\t\t\tthis.hide(false);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_toggleCollapse',\n\t\tvalue: function _toggleCollapse() {\n\t\t\tif (this._showState) {\n\t\t\t\tthis.hide();\n\t\t\t} else {\n\t\t\t\tthis.show();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'hide',\n\t\tvalue: function hide() {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar animBool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n\t\t\tthis._btn.setAttribute('aria-expanded', 'false');\n\t\t\tthis._root.classList.remove('is-expanded');\n\t\t\tthis._btn.textContent = this._btnTextShow;\n\t\t\tthis._showState = false;\n\n\t\t\tfor (var i = this._maxItemsShown; i < this._items.length; i += 1) {\n\t\t\t\tthis._items[i].setAttribute('aria-hidden', true);\n\t\t\t\tthis._items[i].classList.add('is-hidden');\n\t\t\t}\n\n\t\t\tthis._setHeight(this._getHeight(this._maxItemsShown));\n\n\t\t\tif (animBool) {\n\t\t\t\tthis._root.classList.add('is-animating');\n\t\t\t\tthis._root.addEventListener('transitionend', function () {\n\t\t\t\t\treturn _this2._root.classList.remove('is-animating');\n\t\t\t\t}, { once: true });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'show',\n\t\tvalue: function show() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar animBool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n\t\t\tthis._btn.setAttribute('aria-expanded', 'true');\n\t\t\tthis._root.classList.add('is-expanded');\n\t\t\tthis._btn.textContent = this._btnTextHide;\n\t\t\tthis._showState = true;\n\n\t\t\tfor (var i = this._maxItemsShown; i < this._items.length; i += 1) {\n\t\t\t\tthis._items[i].setAttribute('aria-hidden', false);\n\t\t\t\tthis._items[i].classList.remove('is-hidden');\n\t\t\t}\n\n\t\t\tthis._setHeight(this._getHeight(this._items.length));\n\n\t\t\tif (animBool) {\n\t\t\t\tthis._root.classList.add('is-animating');\n\t\t\t\tthis._root.addEventListener('transitionend', function () {\n\t\t\t\t\treturn _this3._root.classList.remove('is-animating');\n\t\t\t\t}, { once: true });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_setHeight',\n\t\tvalue: function _setHeight(h) {\n\t\t\tthis._itemsList.style.height = h + 'px';\n\t\t}\n\t}, {\n\t\tkey: '_getHeight',\n\t\tvalue: function _getHeight(n) {\n\t\t\tvar h = 0;\n\t\t\tfor (var i = 0; i < n; i += 1) {\n\t\t\t\tvar styles = window.getComputedStyle(this._items[i]);\n\t\t\t\tvar margin = parseFloat(styles['margin-top']) + parseFloat(styles['margin-bottom']);\n\n\t\t\t\th += this._items[i].offsetHeight + margin;\n\t\t\t}\n\n\t\t\treturn h;\n\t\t}\n\t}]);\n\n\treturn CollapsibleExpandList;\n}();\n\nexports.default = CollapsibleExpandList;\n\n},{\"./_create-id.js\":25,\"./_matches.js\":30,\"./_viewportstate-watcher.js\":42,\"core-js/fn/array/from\":46}],24:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _createId = require('../Partials/_create-id.js');\n\nvar _createId2 = _interopRequireDefault(_createId);\n\nvar _viewportstateWatcher = require('../Partials/_viewportstate-watcher.js');\n\nvar _viewportstateWatcher2 = _interopRequireDefault(_viewportstateWatcher);\n\nvar _pubsub = require('../Partials/_pubsub.js');\n\nvar _pubsub2 = _interopRequireDefault(_pubsub);\n\nvar _smoothscrollPolyfill = require('smoothscroll-polyfill');\n\nvar _smoothscrollPolyfill2 = _interopRequireDefault(_smoothscrollPolyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n_smoothscrollPolyfill2.default.polyfill();\n\n/**\n * Creates collapsible functionality on a DOM element. It looks for classnames to determine what is the\n * trigger element (.js-collapsible__trigger) and the body element (.js-collapsible__body). Relevant ARIA\n * attributes on this collapsible are set automatically.\n *\n * The inner working of this collapsible comes down to hiding and showing the body upon trigger interaction. In order\n * to enable the animation, the wrapping element is set to the height of trigger + body, then quickly to the height of\n * just the trigger; CSS transition will cause the animation effect. The closing animation runs this sequence in reverse.\n * Because animation only needs to happen upon user interaction and not on (re-)initialisation, during the opening/closing\n * the is-animating class name is set on the wrapping element; this can be used in a selector in CSS. After this height-\n * setting sequence, a callback function hooked to a transitionend event listener causes the wrapping element to be set\n * back to height 'auto'.\n *\n * Most presentation is set via (custom) CSS. However, setting ARIA attributes - and also removing them again - requires\n * JavaScript to detect that a browser passes a breakpoint; or rather, the attributes are set following initialization and\n * unset through uninitialisation. Via viewportStateWatcher.watch() are these processes run when matching the browser'\n * current viewport state. With this, a collapsible can init within small viewport range and uninit beyond larger breakpoints.\n * See documentation of _viewportstate-watcher.js for details.\n *\n * @class Collapsible\n */\n\nvar Collapsible = function () {\n\t/**\n * Creates an instance of Collapsible.\n *\n * @param {HTMLElement} el - Wrapping DOM element, the root element\n * @param {string, array} [viewportStates='all'] - An optional string or array that makes the collapsible functionality active for given viewport states (see Partials/_viewportstate-watcher.js)\n * @param {HTMLElement} trigger - An optional DOM element that serves as the trigger for this Collapsible instance. By default, Collapsible searches for a trigger within el.\n * @param {string, array} [groupBehaviorOn='all'] - An optional string or array that makes the group behavior active for given viewport states (see Partials/_viewportstate-watcher.js).\n *\n * @memberOf Collapsible\n *\n * @example\n * let el = document.querySelector('.foo');\n * let foo = new Collapsible(el, 'small');\n */\n\tfunction Collapsible(el) {\n\t\tvar viewportStates = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'all';\n\n\t\tvar _this2 = this;\n\n\t\tvar trigger = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\t\tvar groupBehaviorOn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'all';\n\n\t\t_classCallCheck(this, Collapsible);\n\n\t\tthis._root = el;\n\t\tthis._colbody = el.querySelector('.js-collapsible__body');\n\t\tthis._coltrigger = trigger || el.querySelector('.js-collapsible__trigger');\n\t\tthis._colGroupId = el.getAttribute('data-collapsible-group');\n\t\tthis._colGroupEventName = 'close-group-' + this._colGroupId;\n\t\tthis._colGroupSiblingeventName = 'sibling-group-open-' + this._colGroupId;\n\t\tthis._listeningToGroupEvent = true;\n\t\tthis._groupHasOpenMembers = false;\n\t\tthis._groupBehaviorOn = groupBehaviorOn;\n\t\tthis._isGroupBehaviorActive = false;\n\t\tthis._showDelay = 500;\n\n\t\tthis._labelTextShow = '(Dicht)';\n\t\tthis._labelTextHide = '(Open)';\n\n\t\tthis._showState = this.foundInSession();\n\n\t\tthis._hasInitialised = false;\n\n\t\tthis._handleAction = function (event) {\n\t\t\tvar isAnchor = _this2._coltrigger.nodeName === 'A';\n\t\t\tevent.preventDefault();\n\t\t\tif (event.type === 'keyup' && (event.keyCode === 13 || event.keyCode === 32) || event.type === 'click' && event.x > 0 && event.y > 0 // X/Y check to make sure enter key doesn't execute as a click event here\n\t\t\t) {\n\t\t\t\t\tif (_this2._colGroupId && _this2._isGroupBehaviorActive) {\n\t\t\t\t\t\t_this2._clickDelayHandler();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_this2._toggle();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t};\n\n\t\tthis._handleKeydown = function (event) {\n\t\t\tvar keys = [32];\n\t\t\tif (keys.indexOf(event.keyCode) > -1) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t};\n\n\t\t/*\n * This function is used to determine whether group members need to be\n * closed first. Also, all group members are told whether they have\n * siblings that are open.\n *\n */\n\t\tthis._clickDelayHandler = function () {\n\t\t\t// The target is open\n\t\t\tif (_this2._showState) {\n\t\t\t\t_this2._toggle();\n\t\t\t\t_pubsub2.default.emit(_this2._colGroupSiblingeventName, false);\n\t\t\t}\n\t\t\t// The target is closed and has no other open group members\n\t\t\telse if (!_this2._showState && !_this2._groupHasOpenMembers) {\n\t\t\t\t\t_this2._toggle();\n\t\t\t\t\t_pubsub2.default.emit(_this2._colGroupSiblingeventName, true);\n\t\t\t\t}\n\t\t\t\t// The target is closed and does have other open group members\n\t\t\t\telse if (!_this2._showState && _this2._groupHasOpenMembers) {\n\t\t\t\t\t\t_pubsub2.default.emit(_this2._colGroupEventName, _this2._colGroupId);\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t_this2._toggle();\n\t\t\t\t\t\t}, _this2._showDelay);\n\t\t\t\t\t}\n\t\t};\n\n\t\t/* Listen to emitted event to close other links of the group.\n *\n * If the current instance of Collapsible is part of a group\n * (indicated by a data-collapsible-group=\"#\" on the root element),\n * then set up an event listener with the group number. This event is\n * handled by _pubsub.js.\n *\n * For the callback: If the current instance is listening for group\n * events (always, unless this instance is not part of a group or when\n * the current instance emitted the event) and is currently expanded on\n * the page, hide the current Collapsible.\n *\n */\n\t\tthis._onPubSubEvents = function () {\n\t\t\tif (_this2._colGroupId) {\n\t\t\t\t_pubsub2.default.on(_this2._colGroupEventName, function (id) {\n\t\t\t\t\tif (_this2._listeningToGroupEvent && _this2._showState && id === _this2._colGroupId) {\n\t\t\t\t\t\t_this2.hide();\n\t\t\t\t\t}\n\t\t\t\t\t_this2._listeningToGroupEvent = true;\n\t\t\t\t});\n\t\t\t\t_pubsub2.default.on(_this2._colGroupSiblingeventName, function (boolean) {\n\t\t\t\t\t_this2._groupHasOpenMembers = boolean;\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tthis._onPubSubEvents();\n\n\t\t// Toggle group behavior on groupBehaviorOn array of sizes\n\t\t_viewportstateWatcher2.default.watch(groupBehaviorOn, function () {\n\t\t\treturn _this2._isGroupBehaviorActive = true;\n\t\t}, function () {\n\t\t\t_pubsub2.default.emit(_this2._colGroupEventName, _this2._colGroupId);\n\t\t\t_this2._isGroupBehaviorActive = false;\n\t\t});\n\n\t\tthis._handleRootTransition = function () {\n\t\t\treturn _this2._resetH();\n\t\t};\n\n\t\t// Stream init/uninit through viewportStateWatcher\n\t\t_viewportstateWatcher2.default.watch(viewportStates, function () {\n\t\t\t_this2.init();\n\t\t\t_this2.initState();\n\t\t}, function () {\n\t\t\treturn _this2.uninit();\n\t\t});\n\t}\n\n\t// Manipulate DOM element, set attributes and event handlers\n\n\n\t_createClass(Collapsible, [{\n\t\tkey: 'init',\n\t\tvalue: function init() {\n\t\t\tif (this._hasInitialised) return; // Don't initialise unless uninitialised\n\t\t\tthis._hasInitialised = true;\n\n\t\t\t// in case we want to expand and scroll to an item, add the class highlighted to the html\n\t\t\tif (this._root.classList.contains('highlighted')) {\n\t\t\t\tthis.show(true);\n\t\t\t\tvar _this = this;\n\t\t\t\tvar kb = document.querySelector('iframe#kb');\n\t\t\t\tif (kb) {\n\t\t\t\t\tkb.addEventListener('load', function () {\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t_this._root.scrollIntoView({ behavior: 'smooth' });\n\t\t\t\t\t\t}, 100);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t_this._root.scrollIntoView({ behavior: 'smooth' });\n\t\t\t\t\t}, 100);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Interaction event listeners\n\t\t\tthis._coltrigger.addEventListener('click', this._handleAction);\n\t\t\tthis._coltrigger.addEventListener('keyup', this._handleAction);\n\t\t\tthis._coltrigger.addEventListener('keydown', this._handleKeydown);\n\t\t\tthis._root.addEventListener('transitionend', this._handleRootTransition);\n\n\t\t\t// Set initial ARIA attributes\n\t\t\tvar bodyId = this._colbody.id || 'collapsible-' + (0, _createId2.default)();\n\t\t\tthis._colbody.setAttribute('id', bodyId);\n\t\t\tthis._coltrigger.setAttribute('aria-controls', bodyId);\n\t\t\tthis._coltrigger.setAttribute('tabindex', '0');\n\t\t}\n\n\t\t// Remove event handlers, styles that were set, some ARIA attributes\n\n\t}, {\n\t\tkey: 'uninit',\n\t\tvalue: function uninit() {\n\t\t\tthis._hasInitialised = false;\n\n\t\t\t// Interaction event listeners\n\t\t\tthis._coltrigger.removeEventListener('click', this._handleAction);\n\t\t\tthis._coltrigger.removeEventListener('keyup', this._handleAction);\n\t\t\tthis._coltrigger.removeEventListener('keydown', this._handleKeydown);\n\t\t\tthis._root.removeEventListener('transitionend', this._handleRootTransition);\n\n\t\t\t// Remove ARIA attributes\n\t\t\tthis._coltrigger.removeAttribute('role');\n\t\t\tthis._coltrigger.removeAttribute('tabindex');\n\t\t\tthis._coltrigger.removeAttribute('aria-expanded');\n\t\t\tthis._coltrigger.removeAttribute('aria-controls');\n\t\t\tthis._colbody.removeAttribute('aria-hidden');\n\n\t\t\t// Remove styles\n\t\t\tthis._root.removeAttribute('style');\n\t\t\tthis._colbody.removeAttribute('style');\n\t\t}\n\n\t\t// Kick off the initial/current state of the collapsible\n\n\t}, {\n\t\tkey: 'initState',\n\t\tvalue: function initState() {\n\t\t\tif (this._showState) {\n\t\t\t\tthis.show(false);\n\t\t\t} else {\n\t\t\t\tthis.hide(false);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_toggle',\n\t\tvalue: function _toggle() {\n\t\t\tif (this._showState) {\n\t\t\t\tthis.hide();\n\t\t\t} else {\n\t\t\t\tthis.show();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_getH',\n\t\tvalue: function _getH(el) {\n\t\t\treturn el.offsetHeight;\n\t\t}\n\n\t\t// Set the height of the root element\n\n\t}, {\n\t\tkey: '_setH',\n\t\tvalue: function _setH(h) {\n\t\t\tthis._root.style.height = h + 'px';\n\t\t}\n\n\t\t// Reset the height of the root element\n\n\t}, {\n\t\tkey: '_resetH',\n\t\tvalue: function _resetH() {\n\t\t\tthis._root.classList.remove('is-animating');\n\t\t\tthis._coltrigger.classList.remove('is-animating');\n\t\t\tthis._root.style.height = 'auto';\n\t\t}\n\n\t\t// Set a height of h1, quickly followed by h2 (timeout is for browser to update DOM)\n\n\t}, {\n\t\tkey: '_fromTo',\n\t\tvalue: function _fromTo(h1, h2) {\n\t\t\tvar _this3 = this;\n\n\t\t\tthis._setH(h1);\n\t\t\tsetTimeout(function () {\n\t\t\t\t_this3._root.classList.add('is-animating');\n\t\t\t\t_this3._coltrigger.classList.add('is-animating');\n\t\t\t}, 50);\n\t\t\tsetTimeout(function () {\n\t\t\t\t_this3._setH(h2);\n\t\t\t}, 100);\n\t\t}\n\t}, {\n\t\tkey: '_showBody',\n\t\tvalue: function _showBody() {\n\t\t\tthis._colbody.style.position = 'static';\n\t\t\tthis._colbody.style.visibility = 'visible';\n\t\t\tthis._colbody.style.opacity = '1';\n\t\t}\n\t}, {\n\t\tkey: '_hideBody',\n\t\tvalue: function _hideBody() {\n\t\t\tthis._colbody.style.position = 'absolute';\n\t\t\tthis._colbody.style.visibility = 'hidden';\n\t\t\tthis._colbody.style.opacity = '0';\n\t\t}\n\n\t\t/**\n * Sets the show state on the collapsible, along with ARIA attributes\n *\n * @param {boolean} [animBool=true] - Adds an animation class name (is-animating) on the root element that can be used in CSS to hook a transition\n *\n * @memberOf Collapsible\n */\n\n\t}, {\n\t\tkey: 'show',\n\t\tvalue: function show() {\n\t\t\tvar _this4 = this;\n\n\t\t\tvar animBool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n\t\t\tthis.addToSession();\n\t\t\tsetTimeout(function () {\n\t\t\t\t_this4._root.classList.add('is-expanded');\n\t\t\t\t_this4._coltrigger.classList.add('is-expanded');\n\t\t\t}, 50);\n\t\t\tthis._showState = true;\n\n\t\t\tvar fn = function fn() {\n\t\t\t\t_this4._coltrigger.setAttribute('aria-expanded', 'true');\n\t\t\t\t_this4._colbody.setAttribute('aria-hidden', 'false');\n\t\t\t};\n\n\t\t\tif (animBool) {\n\t\t\t\tthis._root.addEventListener('transitionend', fn, { once: true });\n\t\t\t\tthis._fromTo(this._getH(this._coltrigger), // Height of the trigger\n\t\t\t\tthis._getH(this._coltrigger) + this._getH(this._colbody) // Height of trigger + body\n\t\t\t\t);\n\t\t\t\tthis.scrollIntoView();\n\t\t\t} else {\n\t\t\t\tfn();\n\t\t\t\tthis._resetH();\n\t\t\t}\n\n\t\t\tthis._showBody();\n\t\t}\n\n\t\t/**\n * Unsets the show state on the collapsible, along with ARIA attributes\n *\n * @param {boolean} [animBool=true] - Adds an animation class name (is-animating) on the root element that can be used in CSS to hook a transition\n *\n * @memberOf Collapsible\n */\n\n\t}, {\n\t\tkey: 'hide',\n\t\tvalue: function hide() {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar animBool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n\t\t\t// assumption, hiding is initiated with a user action when animBool is true\n\t\t\tif (animBool) {\n\t\t\t\tthis.removeFromSession();\n\t\t\t}\n\n\t\t\tsetTimeout(function () {\n\t\t\t\t_this5._root.classList.remove('is-expanded');\n\t\t\t\t_this5._coltrigger.classList.remove('is-expanded');\n\t\t\t}, 50);\n\t\t\tthis._showState = false;\n\n\t\t\tthis._coltrigger.setAttribute('aria-expanded', 'false');\n\t\t\tthis._colbody.setAttribute('aria-hidden', 'true');\n\n\t\t\tif (animBool) {\n\t\t\t\tthis._fromTo(this._getH(this._coltrigger) + this._getH(this._colbody), // Height of trigger + body\n\t\t\t\tthis._getH(this._coltrigger) // Height of the trigger\n\t\t\t\t);\n\t\t\t\tthis._root.addEventListener('transitionend', function () {\n\t\t\t\t\treturn _this5._hideBody();\n\t\t\t\t}, { once: true });\n\t\t\t\tthis.scrollIntoView();\n\t\t\t} else {\n\t\t\t\tthis._resetH();\n\t\t\t\tthis._hideBody();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getCollapsiblesSession',\n\t\tvalue: function getCollapsiblesSession() {\n\t\t\treturn window.sessionStorage.getItem('openCollapsibles') ? JSON.parse(window.sessionStorage.getItem('openCollapsibles')) : [];\n\t\t}\n\t}, {\n\t\tkey: 'foundInSession',\n\t\tvalue: function foundInSession() {\n\t\t\tvar openCollapsibles = this.getCollapsiblesSession();\n\t\t\tvar _id = this._coltrigger.getAttribute('aria-controls');\n\n\t\t\treturn openCollapsibles.filter(function (id) {\n\t\t\t\treturn id === _id;\n\t\t\t}).length > 0;\n\t\t}\n\t}, {\n\t\tkey: 'addToSession',\n\t\tvalue: function addToSession() {\n\t\t\tvar id = this._coltrigger.getAttribute('aria-controls');\n\t\t\tvar openCollapsibles = this.getCollapsiblesSession();\n\n\t\t\tif (id) {\n\t\t\t\tvar inArray = openCollapsibles.find(function (el) {\n\t\t\t\t\treturn el === id;\n\t\t\t\t});\n\n\t\t\t\tif (!inArray) {\n\t\t\t\t\topenCollapsibles.push(id);\n\t\t\t\t\twindow.sessionStorage.setItem('openCollapsibles', JSON.stringify(openCollapsibles));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'removeFromSession',\n\t\tvalue: function removeFromSession() {\n\t\t\tvar id = this._coltrigger.getAttribute('aria-controls');\n\t\t\tvar openCollapsibles = this.getCollapsiblesSession();\n\n\t\t\tif (id) {\n\t\t\t\tvar filtered = openCollapsibles.filter(function (el) {\n\t\t\t\t\treturn el !== id;\n\t\t\t\t});\n\t\t\t\twindow.sessionStorage.setItem('openCollapsibles', JSON.stringify(filtered));\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'scrollIntoView',\n\t\tvalue: function scrollIntoView() {\n\t\t\tvar offset = 44;\n\t\t\tvar rootY = this._root.getBoundingClientRect().top - document.body.getBoundingClientRect().top;\n\t\t\tvar scrollY = window.scrollY;\n\n\t\t\t// If collapsible root is passed window scroll position, scroll root into view\n\n\t\t\tif (rootY - scrollY < 0) {\n\t\t\t\twindow.scroll({\n\t\t\t\t\ttop: rootY - offset,\n\t\t\t\t\tbehavior: 'smooth'\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn Collapsible;\n}();\n\nexports.default = Collapsible;\n\n/*\n TODO:\n - Something to manage multiple collapsibles and make all close when one opens\n - Move relevant CSS to a dedicated partial\n*/\n\n},{\"../Partials/_create-id.js\":25,\"../Partials/_pubsub.js\":34,\"../Partials/_viewportstate-watcher.js\":42,\"smoothscroll-polyfill\":132}],25:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n/**\n * A helper function that creates and returns an alphanumeric string that can be used in ID attributes\n *\n * @param {number} [length=12] - Optional length of returned string\n * @returns {string} - Generated alphanumeric string\n */\nvar createId = function createId() {\n\tvar length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 12;\n\n\tvar S4 = function S4() {\n\t\treturn ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n\t};\n\tvar id = 'id-' + (S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4()).substring(0, length - 1);\n\treturn id;\n};\n\nexports.default = createId;\n\n},{}],26:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Creates an instance of the FileUpload class.\n * This will be used in the CMS only.\n * @class FileUpload\n */\nvar FileUpload = function () {\n\t/**\n * Creates an instance of FileUpload.\n *\n * @param {HTMLElement} el - HTML input type=\"file\"\n * @param {HTMLElement} el - Label element\n *\n * @example\n * \n */\n\tfunction FileUpload(inputElement, labelElement) {\n\t\t_classCallCheck(this, FileUpload);\n\n\t\tthis._input = inputElement;\n\t\tthis._label = labelElement;\n\t\tthis._labelValue = labelElement.innerHTML;\n\n\t\tthis._input.addEventListener('change', this._onChange.bind(this));\n\t}\n\n\t// When a file gets uploaded change the button name to the filename\n\n\n\t_createClass(FileUpload, [{\n\t\tkey: '_onChange',\n\t\tvalue: function _onChange(event) {\n\t\t\tvar fileName = event.target.value.split('\\\\').pop();\n\t\t\tvar newLabelValue = fileName.length > 0 ? fileName : this._labelValue;\n\t\t\tthis._label.innerHTML = newLabelValue;\n\t\t}\n\t}]);\n\n\treturn FileUpload;\n}();\n\nexports.default = FileUpload;\n\n},{}],27:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nrequire('core-js/fn/array/index-of');\n\nvar _createId = require('../Partials/_create-id.js');\n\nvar _createId2 = _interopRequireDefault(_createId);\n\nvar _removeNode = require('../Partials/_remove-node.js');\n\nvar _removeNode2 = _interopRequireDefault(_removeNode);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FileFieldGroup = function () {\n\tfunction FileFieldGroup() {\n\t\tvar groupArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n\t\t_classCallCheck(this, FileFieldGroup);\n\n\t\tif (groupArray.length <= 1) return;\n\t\tthis._groups = groupArray;\n\t\tthis._container = this._groups[0];\n\t\tthis._filefields = [];\n\t\tthis._selectedFields = [];\n\t\tthis._unselectedFields = [];\n\t\tthis._init();\n\t}\n\n\t_createClass(FileFieldGroup, [{\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\tvar _this = this;\n\n\t\t\tthis._container.classList.add('file-fields');\n\n\t\t\t// Set some ARIA attributes on the main group\n\t\t\tvar labelId = (0, _createId2.default)();\n\t\t\tthis._container.setAttribute('role', 'group');\n\t\t\tthis._container.setAttribute('aria-labelledby', labelId);\n\t\t\tvar label = this._container.querySelector('label');\n\t\t\tlabel.setAttribute('id', labelId);\n\t\t\tlabel.removeAttribute('for');\n\n\t\t\t// Put all filefields in a new array, remove all but the first group\n\t\t\tvar _iteratorNormalCompletion = true;\n\t\t\tvar _didIteratorError = false;\n\t\t\tvar _iteratorError = undefined;\n\n\t\t\ttry {\n\t\t\t\tfor (var _iterator = this._groups[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\t\tvar group = _step.value;\n\n\t\t\t\t\tvar field = group.querySelector('.file-field');\n\t\t\t\t\tthis._filefields.push(field);\n\t\t\t\t\tthis._unselectedFields.push(field);\n\t\t\t\t\tif (group !== this._container) (0, _removeNode2.default)(group);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError = true;\n\t\t\t\t_iteratorError = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t\t\t_iterator.return();\n\t\t\t\t\t}\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError) {\n\t\t\t\t\t\tthrow _iteratorError;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._renderFields();\n\n\t\t\t// Event listeners\n\t\t\tvar handleEvent = function handleEvent(event) {\n\t\t\t\tvar field = event.target.parentNode;\n\t\t\t\tif (field.classList.contains('file-field')) {\n\t\t\t\t\t_this._updateField(field);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis._container.addEventListener('change', handleEvent);\n\t\t\tthis._container.addEventListener('click', function (event) {\n\t\t\t\tif (event.target.classList.contains('file-field__reset')) handleEvent(event);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_updateField',\n\t\tvalue: function _updateField(field) {\n\t\t\t// Take a field out of their respective array and move it over to the other\n\t\t\tif (field.classList.contains('file-field--selected')) {\n\t\t\t\tif (this._unselectedFields.indexOf(field) > -1) {\n\t\t\t\t\tthis._unselectedFields.splice(this._unselectedFields.indexOf(field), 1);\n\t\t\t\t}\n\n\t\t\t\t// A field can be already in selected state, change value and should then not be added a second time to _selectedFields\n\t\t\t\tif (this._selectedFields.indexOf(field) === -1) {\n\t\t\t\t\tthis._selectedFields.push(field);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this._selectedFields.indexOf(field) > -1) {\n\t\t\t\t\tthis._selectedFields.splice(this._selectedFields.indexOf(field), 1);\n\t\t\t\t}\n\n\t\t\t\tthis._unselectedFields.push(field);\n\t\t\t}\n\n\t\t\tthis._renderFields();\n\t\t}\n\t}, {\n\t\tkey: '_removeAllFields',\n\t\tvalue: function _removeAllFields() {\n\t\t\tvar _iteratorNormalCompletion2 = true;\n\t\t\tvar _didIteratorError2 = false;\n\t\t\tvar _iteratorError2 = undefined;\n\n\t\t\ttry {\n\t\t\t\tfor (var _iterator2 = this._filefields[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\t\tvar field = _step2.value;\n\n\t\t\t\t\t(0, _removeNode2.default)(field);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError2 = true;\n\t\t\t\t_iteratorError2 = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return) {\n\t\t\t\t\t\t_iterator2.return();\n\t\t\t\t\t}\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError2) {\n\t\t\t\t\t\tthrow _iteratorError2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_renderFields',\n\t\tvalue: function _renderFields() {\n\t\t\tthis._removeAllFields();\n\n\t\t\t// Render all selected + the first unselected field\n\t\t\tvar insertBeforeNode = this._container.querySelector('.help-block');\n\t\t\tvar _iteratorNormalCompletion3 = true;\n\t\t\tvar _didIteratorError3 = false;\n\t\t\tvar _iteratorError3 = undefined;\n\n\t\t\ttry {\n\t\t\t\tfor (var _iterator3 = this._selectedFields[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\t\tvar field = _step3.value;\n\n\t\t\t\t\tthis._container.insertBefore(field, insertBeforeNode);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError3 = true;\n\t\t\t\t_iteratorError3 = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return) {\n\t\t\t\t\t\t_iterator3.return();\n\t\t\t\t\t}\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError3) {\n\t\t\t\t\t\tthrow _iteratorError3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this._unselectedFields[0]) {\n\t\t\t\tthis._container.insertBefore(this._unselectedFields[0], insertBeforeNode);\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn FileFieldGroup;\n}();\n\nexports.default = FileFieldGroup;\n\n},{\"../Partials/_create-id.js\":25,\"../Partials/_remove-node.js\":35,\"core-js/fn/array/index-of\":47}],28:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FileField = function () {\n\tfunction FileField(field) {\n\t\t_classCallCheck(this, FileField);\n\n\t\tthis._field = field;\n\t\tthis._input = this._field.querySelector('input[type=file]');\n\t\tthis._fileSize = 0;\n\n\t\tthis._init();\n\t}\n\n\t_createClass(FileField, [{\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\tvar _this = this;\n\n\t\t\tthis._field.classList.add('file-field--custom');\n\n\t\t\t// Display block\n\t\t\tthis._display = document.createElement('span');\n\t\t\tthis._display.classList.add('file-field__display');\n\t\t\tthis._field.appendChild(this._display);\n\n\t\t\t// Reset button\n\t\t\tvar _resetButtonText = this._field.getAttribute('data-resettext') || 'Reset selection';\n\t\t\tthis._resetButton = document.createElement('button');\n\t\t\tthis._resetButton.classList.add('file-field__reset');\n\t\t\tthis._resetButton.setAttribute('title', _resetButtonText);\n\t\t\tthis._resetButton.innerHTML = _resetButtonText;\n\t\t\tthis._field.appendChild(this._resetButton);\n\n\t\t\tthis._resetButton.addEventListener('click', function (event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t_this._reset();\n\t\t\t});\n\n\t\t\t// Selection button\n\t\t\tvar _selectButtonText = this._field.getAttribute('data-buttontext') || 'Select file';\n\t\t\tthis._selectButton = document.createElement('span');\n\t\t\tthis._selectButton.classList.add('btn', 'btn--tertiary');\n\t\t\tthis._selectButton.innerHTML = _selectButtonText;\n\t\t\tthis._field.appendChild(this._selectButton);\n\n\t\t\t// File info\n\t\t\tthis._fileInfo = document.createElement('span');\n\t\t\tthis._fileInfo.classList.add('file-field__info');\n\t\t\tthis._field.appendChild(this._fileInfo);\n\n\t\t\t// Event handlers\n\t\t\tthis._input.addEventListener('focus', function () {\n\t\t\t\treturn _this._focus();\n\t\t\t});\n\t\t\tthis._input.addEventListener('blur', function () {\n\t\t\t\treturn _this._blur();\n\t\t\t});\n\t\t\tthis._field.addEventListener('mouseenter', function () {\n\t\t\t\treturn _this._mouseenter();\n\t\t\t});\n\t\t\tthis._field.addEventListener('mouseleave', function () {\n\t\t\t\treturn _this._mouseleave();\n\t\t\t});\n\t\t\tthis._input.addEventListener('change', function () {\n\t\t\t\treturn _this._update();\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_focus',\n\t\tvalue: function _focus() {\n\t\t\tthis._field.classList.add('file-field--has-focus');\n\t\t}\n\t}, {\n\t\tkey: '_blur',\n\t\tvalue: function _blur() {\n\t\t\tthis._field.classList.remove('file-field--has-focus');\n\t\t}\n\t}, {\n\t\tkey: '_mouseenter',\n\t\tvalue: function _mouseenter() {\n\t\t\tthis._field.classList.add('file-field--has-mouseover');\n\t\t}\n\t}, {\n\t\tkey: '_mouseleave',\n\t\tvalue: function _mouseleave() {\n\t\t\tthis._field.classList.remove('file-field--has-mouseover');\n\t\t}\n\t}, {\n\t\tkey: '_update',\n\t\tvalue: function _update() {\n\t\t\tvar path = this._input.value;\n\t\t\tif (path === '') {\n\t\t\t\tthis._reset();\n\t\t\t} else {\n\t\t\t\tthis._setSelected(this._unpath(path));\n\t\t\t}\n\t\t\tthis._showFileInfo();\n\t\t}\n\t}, {\n\t\tkey: '_unpath',\n\t\tvalue: function _unpath(path) {\n\t\t\tvar arr = path.split('\\\\');\n\t\t\treturn arr[arr.length - 1];\n\t\t}\n\t}, {\n\t\tkey: '_setDisplay',\n\t\tvalue: function _setDisplay(string) {\n\t\t\tthis._display.innerHTML = string;\n\t\t}\n\t}, {\n\t\tkey: '_setSelected',\n\t\tvalue: function _setSelected(path) {\n\t\t\tthis._field.classList.add('file-field--selected');\n\t\t\tthis._setDisplay(path);\n\t\t}\n\t}, {\n\t\tkey: '_showFileInfo',\n\t\tvalue: function _showFileInfo() {\n\t\t\tvar val = '';\n\t\t\tvar size = 0;\n\t\t\tvar files = this._input.files;\n\t\t\tif (files && files.length > 0) {\n\t\t\t\tsize = files[0].size;\n\t\t\t\tval = Math.round(size / 1000000 * 100) / 100 + 'MB';\n\t\t\t}\n\t\t\tthis._fileInfo.innerHTML = val;\n\t\t\tthis._fileSize = size;\n\t\t}\n\t}, {\n\t\tkey: '_reset',\n\t\tvalue: function _reset() {\n\t\t\tthis._input.value = '';\n\t\t\tthis._field.classList.remove('file-field--selected');\n\t\t\tthis._field.classList.remove('file-field--has-mouseover');\n\t\t\tthis._setDisplay(''); // IE11+\n\t\t}\n\t}, {\n\t\tkey: 'getFileSize',\n\t\tvalue: function getFileSize() {\n\t\t\treturn this._fileSize;\n\t\t}\n\t}]);\n\n\treturn FileField;\n}();\n\nexports.default = FileField;\n\n},{}],29:[function(require,module,exports){\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nrequire('core-js/fn/object/entries');\n\nrequire('core-js/fn/symbol/index');\n\nrequire('core-js/fn/symbol/iterator');\n\nvar _filefield = require('../Partials/_filefield.js');\n\nvar _filefield2 = _interopRequireDefault(_filefield);\n\nvar _filefieldGroup = require('../Partials/_filefield-group.js');\n\nvar _filefieldGroup2 = _interopRequireDefault(_filefieldGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar init = function init() {\n\tvar forms = Array.from(document.querySelectorAll('.form'));\n\tvar isIE10 = window.navigator.appVersion.indexOf('MSIE 10.') > -1;\n\n\t// Can't feature check on certain file input features (like nulling its value, a feat IE10 doesn't allow)\n\tforms.forEach(function (form) {\n\t\tif (!isIE10) {\n\t\t\t// Transform individual form fields to a custom UI\n\n\t\t\t// do we have a multi section form?\n\t\t\tvar sections = form.querySelectorAll('form > div[data-sc-field-key]');\n\n\t\t\t// if so, check within the sections\n\t\t\tif (sections.length > 0) {\n\t\t\t\tsections.forEach(function (section) {\n\t\t\t\t\tvar filefields = Array.from(section.querySelectorAll('.file-field:not([data-initialized=\"true\"])'));\n\t\t\t\t\tcreateGroups(filefields);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// business as usual on the remaining fields\n\t\t\tvar filefields = Array.from(form.querySelectorAll('.file-field:not([data-initialized=\"true\"])'));\n\t\t\tcreateGroups(filefields);\n\t\t}\n\n\t\t// Add an accessible \"input required\"\" icon in all groups that need one\n\t\tvar markText = form.getAttribute('data-requiredtext') || '(required)';\n\t\tvar groups = Array.from(form.querySelectorAll('.form-group.required-field:not([data-initialized=\"true\"])'));\n\n\t\tgroups.forEach(function (group) {\n\t\t\tvar labels = group.querySelectorAll('label:not(.option), .label:not(.option)');\n\t\t\tlabels.forEach(function (label) {\n\t\t\t\tvar mark = document.createElement('em');\n\t\t\t\tmark.classList.add('required-mark');\n\t\t\t\tmark.innerHTML = ' ' + markText;\n\n\t\t\t\tlabel.appendChild(mark);\n\t\t\t});\n\t\t\t// set an attribute so it won't render twice on ajax load\n\t\t\tgroup.setAttribute('data-initialized', 'true');\n\t\t});\n\n\t\tlicencePlate(form);\n\t});\n\n\tif (window.jQuery) {\n\t\t$('.form .datepicker').datepicker({\n\t\t\tdateFormat: 'yy-mm-dd'\n\t\t});\n\t}\n};\n\nvar licencePlate = function licencePlate(form) {\n\t// filter out non Word characters and make uppercase\n\tvar filter = function filter(event) {\n\t\tvar plate = event.target;\n\t\tplate.value = plate.value.replace(/[\\W_]/g, '').toUpperCase();\n\t};\n\n\tform.querySelectorAll('.license-plate').forEach(function (elm) {\n\t\t// first try to remove an existing event, can happen with forms with multiple pages\n\t\telm.removeEventListener('input', filter);\n\t\telm.addEventListener('input', filter);\n\t});\n};\n\nvar createGroups = function createGroups(filefields) {\n\tfilefields.forEach(function (field) {\n\t\treturn new _filefield2.default(field);\n\t});\n\n\t// Bundle multiple form field with the same label into one UI\n\tvar bundles = {};\n\tfilefields.forEach(function (field) {\n\t\tvar group = field.parentNode;\n\t\tvar label = group.querySelector('label').textContent;\n\t\tif (!bundles[label]) {\n\t\t\tbundles[label] = [];\n\t\t}\n\t\tbundles[label].push(group);\n\n\t\t// set an attribute so it won't render twice on ajax load\n\t\tfield.setAttribute('data-initialized', 'true');\n\t});\n\n\tvar _iteratorNormalCompletion = true;\n\tvar _didIteratorError = false;\n\tvar _iteratorError = undefined;\n\n\ttry {\n\t\tfor (var _iterator = Object.entries(bundles)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\tvar _step$value = _slicedToArray(_step.value, 1),\n\t\t\t key = _step$value[0];\n\n\t\t\tnew _filefieldGroup2.default(bundles[key]);\n\t\t}\n\t} catch (err) {\n\t\t_didIteratorError = true;\n\t\t_iteratorError = err;\n\t} finally {\n\t\ttry {\n\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t_iterator.return();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (_didIteratorError) {\n\t\t\t\tthrow _iteratorError;\n\t\t\t}\n\t\t}\n\t}\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\nif (window.jQuery) {\n\t$(document).ajaxComplete(function () {\n\t\tinit();\n\t});\n}\n\n},{\"../Partials/_filefield-group.js\":27,\"../Partials/_filefield.js\":28,\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46,\"core-js/fn/object/entries\":48,\"core-js/fn/symbol/index\":49,\"core-js/fn/symbol/iterator\":50}],30:[function(require,module,exports){\n\"use strict\";\n\n// matches polyfill\n// Source: https://plainjs.com/javascript/traversing/get-closest-element-by-selector-39/\nwindow.Element && function (ElementPrototype) {\n\tElementPrototype.matches = ElementPrototype.matches || ElementPrototype.matchesSelector || ElementPrototype.webkitMatchesSelector || ElementPrototype.msMatchesSelector || function (selector) {\n\t\tvar node = this,\n\t\t nodes = (node.parentNode || node.document).querySelectorAll(selector),\n\t\t i = -1;\n\t\twhile (nodes[++i] && nodes[i] != node) {}\n\t\treturn !!nodes[i];\n\t};\n}(window.Element.prototype);\n\n},{}],31:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * A simple class of which the on() method can be used to attach a 'swiping' touch gesture event listener to an element.\n *\n * @class OnSwipe\n */\nvar OnSwipe = function () {\n\tfunction OnSwipe() {\n\t\t_classCallCheck(this, OnSwipe);\n\n\t\tthis._threshold = 150;\n\t\tthis._restraint = 100;\n\t\tthis._allowedTime = 300;\n\t}\n\n\t/**\n * The on() method of an OnSwipe instance attaches a 'swiping' gesture eventlistener\n *\n * @param {string=\"left\",\"right\",\"up\",\"down\"} dir - The desired direction\n * @param {HTMLElement} el - The DOM element to attach this eventlistener to\n * @param {function} [fn=function(){}] - Optional callback function\n *\n * @memberOf OnSwipe\n */\n\n\n\t_createClass(OnSwipe, [{\n\t\tkey: 'on',\n\t\tvalue: function on(dir, el) {\n\t\t\tvar _this = this;\n\n\t\t\tvar fn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n\n\t\t\tif (el === null) return;\n\t\t\tthis._dir = dir;\n\t\t\tthis._callbackFn = fn;\n\t\t\tel.addEventListener('touchstart', function (event) {\n\t\t\t\treturn _this._startSwipe(event);\n\t\t\t}, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t\tel.addEventListener('touchend', function (event) {\n\t\t\t\treturn _this._endSwipe(event);\n\t\t\t}, {\n\t\t\t\tpassive: true\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_startSwipe',\n\t\tvalue: function _startSwipe(event) {\n\t\t\tvar touchobj = event.changedTouches[0];\n\t\t\tthis._dist = 0;\n\t\t\tthis._startX = touchobj.pageX;\n\t\t\tthis._startY = touchobj.pageY;\n\t\t\tthis._startTime = new Date().getTime();\n\t\t}\n\t}, {\n\t\tkey: '_endSwipe',\n\t\tvalue: function _endSwipe(event) {\n\t\t\tvar swipeDir = void 0;\n\t\t\tvar touchobj = event.changedTouches[0];\n\t\t\tvar distX = touchobj.pageX - this._startX;\n\t\t\tvar distY = touchobj.pageY - this._startY;\n\t\t\tvar elapsedTime = new Date().getTime() - this._startTime;\n\n\t\t\tif (elapsedTime <= this._allowedTime) {\n\t\t\t\tif (Math.abs(distX) >= this._threshold && Math.abs(distY) <= this._restraint) {\n\t\t\t\t\tswipeDir = distX < 0 ? 'left' : 'right';\n\t\t\t\t} else if (Math.abs(distY) >= this._threshold && Math.abs(distX) <= this._restraint) {\n\t\t\t\t\tswipeDir = distY < 0 ? 'up' : 'down';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (swipeDir === this._dir) {\n\t\t\t\t// If the determined swiping direction matches the desired direction, run the callback function\n\t\t\t\tthis._callbackFn();\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn OnSwipe;\n}();\n\nexports.default = OnSwipe;\n\n},{}],32:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nvar patchListCounters = function patchListCounters(els) {\n\tif (els.constructor !== Array) {\n\t\tels = [els];\n\t}\n\n\tels.forEach(function (el) {\n\t\tvar n = parseInt(el.getAttribute('start'), 10);\n\t\tif (!isNaN(n)) {\n\t\t\tel.style['counter-reset'] = 'list ' + n;\n\t\t}\n\t});\n};\n\nvar init = function init() {\n\tvar lists = Array.from(document.querySelectorAll('ol'));\n\tpatchListCounters(lists);\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\nexports.default = patchListCounters;\n\n},{\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46}],33:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nrequire('core-js/fn/array/for-each');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar printButton = function () {\n\tfunction printButton(el) {\n\t\tvar contextElements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n\t\t_classCallCheck(this, printButton);\n\n\t\tthis._root = el;\n\t\tthis._contextElements = contextElements;\n\t\tthis._init();\n\t}\n\n\t_createClass(printButton, [{\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\tvar _this = this;\n\n\t\t\tvar fn = function fn(event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (_this._contextElements.length) {\n\t\t\t\t\t_this._printContext();\n\t\t\t\t} else {\n\t\t\t\t\t_this._print();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis._root.addEventListener('click', fn);\n\t\t}\n\t}, {\n\t\tkey: '_print',\n\t\tvalue: function _print() {\n\t\t\twindow.print();\n\t\t}\n\t}, {\n\t\tkey: '_printContext',\n\t\tvalue: function _printContext() {\n\t\t\tvar _this2 = this;\n\n\t\t\tthis._contextElements.forEach(function (context) {\n\t\t\t\tcontext.classList.add('print-only-me');\n\t\t\t\tvar container = context.parentElement;\n\t\t\t\tif (container) container.classList.add('print-only-one');\n\t\t\t});\n\n\t\t\tvar fn = function fn() {\n\t\t\t\t_this2._contextElements.forEach(function (context) {\n\t\t\t\t\tcontext.classList.remove('print-only-me');\n\t\t\t\t\tvar container = context.parentElement;\n\t\t\t\t\tif (container) container.classList.remove('print-only-one');\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tthis._print();\n\t\t\tsetTimeout(fn, 200);\n\t\t}\n\t}]);\n\n\treturn printButton;\n}();\n\nexports.default = printButton;\n\n},{\"core-js/fn/array/for-each\":45}],34:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nrequire('core-js/fn/array/for-each');\n\nvar events = {\n\tevents: {},\n\ton: function on(eventName, fn) {\n\t\tthis.events[eventName] = this.events[eventName] || [];\n\t\tthis.events[eventName].push(fn);\n\t},\n\toff: function off(eventName, fn) {\n\t\tif (this.events[eventName]) {\n\t\t\tfor (var i = 0; i < this.events[eventName].length; i++) {\n\t\t\t\tif (this.events[eventName][i] === fn) {\n\t\t\t\t\tthis.events[eventName].splice(i, 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\temit: function emit(eventName, data) {\n\t\tif (this.events[eventName]) {\n\t\t\tthis.events[eventName].forEach(function (fn) {\n\t\t\t\tfn(data);\n\t\t\t});\n\t\t}\n\t}\n}; // Source: https://gist.github.com/learncodeacademy/777349747d8382bfb722\n// Youtube explanation: https://www.youtube.com/watch?v=nQRXi1SVOow\n\nexports.default = events;\n\n},{\"core-js/fn/array/for-each\":45}],35:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nvar removeNode = function removeNode(domNode) {\n\tif (typeof domNode.remove === 'function') {\n\t\tdomNode.remove();\n\t} else {\n\t\tdomNode.removeNode(true);\n\t}\n\treturn domNode;\n};\n\nexports.default = removeNode;\n\n},{}],36:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nrequire('core-js/fn/array/from');\n\nrequire('core-js/fn/array/for-each');\n\nrequire('core-js/fn/array/find-index');\n\nrequire('url-search-params-polyfill');\n\nvar _createId = require('../Partials/_create-id.js');\n\nvar _createId2 = _interopRequireDefault(_createId);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/*\n TODO:\n - meer ARIA? https://haltersweb.github.io/Accessibility/autocomplete.html\n - aria-live with info on what happened to screenreaders,\n - aria-describedby with how to use\n - APK categorien beperken op dit moment NIET de suggest scope, maar zouden dat misschien wel moeten:\n - value van dropdown uitlezen en meesturen in suggest AJAX query\n - opnieuw een query doen nadat select is gewijzigd en focus op _field staat\n*/\n\nvar SearchSuggest = function () {\n\tfunction SearchSuggest(form, field) {\n\t\t_classCallCheck(this, SearchSuggest);\n\n\t\tthis._form = form;\n\t\tthis._suggestContainer = this._form.querySelector('.site-search__suggest-container');\n\t\tthis._field = field;\n\n\t\tthis._serviceURI = this._form.getAttribute('data-suggest-service-uri');\n\t\tthis._label = this._form.getAttribute('data-suggest-label') || 'Suggestions';\n\t\tthis._AllLink = this._form.getAttribute('data-suggest-all') || 'All results';\n\t\tthis._id = (0, _createId2.default)();\n\t\tthis._button = document.getElementById('page-header__search__toggle');\n\n\t\tthis._minNumberOfChars = 3;\n\t\tthis._maxSuggestionsRequested = 10;\n\t\tthis._finalRequestDelay = 500;\n\n\t\tthis._initialRequest = new XMLHttpRequest();\n\t\tthis._finalRequest = new XMLHttpRequest();\n\t\tthis._finalQuery = null;\n\t\tthis._queryValue = '';\n\t\tthis._queryValueBeforeSelection = '';\n\t\tthis._initialRequestQueryValue = '';\n\t\tthis._selectedMenuItemIndex = -1;\n\t\tthis._requestResults = [];\n\t\tthis._filteredResults = [];\n\n\t\tthis._urlParams = new URLSearchParams(window.location.search);\n\t\tthis._searchParam = this._urlParams.get('q');\n\n\t\tthis._init();\n\t}\n\n\t_createClass(SearchSuggest, [{\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\tvar _this = this;\n\n\t\t\t// DOM additions\n\t\t\tthis._menu = document.createElement('div');\n\t\t\tthis._allButtonContainer = document.createElement('div');\n\t\t\tthis._allButton = document.createElement('button');\n\t\t\tthis._allButton.innerText = this._AllLink;\n\t\t\tthis._allButton.setAttribute('type', 'submit');\n\t\t\tthis._allButton.setAttribute('value', this._AllLink);\n\t\t\tthis._allButtonContainer.appendChild(this._allButton);\n\t\t\tthis._allButtonContainer.classList.add('search-suggest-buttons');\n\n\t\t\tthis._menuList = document.createElement('ul');\n\t\t\tthis._menu.appendChild(this._menuList);\n\n\t\t\tvar id = 'suggest_' + this._id;\n\t\t\tthis._menu.setAttribute('class', 'search-suggest');\n\t\t\tthis._menu.setAttribute('id', id);\n\t\t\tthis._menu.setAttribute('role', 'listbox');\n\t\t\tthis._menu.setAttribute('aria-label', this._label);\n\t\t\tthis._menu.setAttribute('aria-live', 'polite');\n\n\t\t\tthis._field.setAttribute('aria-owns', id);\n\t\t\tthis._suggestContainer.appendChild(this._menu);\n\t\t\tthis._menu.appendChild(this._allButtonContainer);\n\t\t\tthis._hideMenu();\n\n\t\t\tthis._field.addEventListener('focus', function (e) {\n\t\t\t\treturn _this._handleFocus(e);\n\t\t\t});\n\t\t\tthis._field.addEventListener('keyup', function (e) {\n\t\t\t\treturn _this._handleKeyUp(e);\n\t\t\t});\n\t\t\tthis._field.addEventListener('focusout', function (e) {\n\t\t\t\treturn _this._handleFocusOut(e);\n\t\t\t});\n\n\t\t\t// dit was weg in develop?\n\t\t\tthis._field.addEventListener('focusout', function (e) {\n\t\t\t\treturn _this._handleFocusOut(e);\n\t\t\t});\n\n\t\t\tthis._allButton.addEventListener('keyup', function (e) {\n\t\t\t\t_this._allResultsButtonLosesFocus(e);\n\t\t\t});\n\n\t\t\tthis._suggestContainer.addEventListener('blur', function (e) {\n\t\t\t\treturn _this._handleFocusOut(e);\n\t\t\t});\n\n\t\t\tthis._button.addEventListener('click', function (e) {\n\t\t\t\treturn _this._handleFocusOut(e);\n\t\t\t});\n\n\t\t\tdocument.addEventListener('click', function (e) {\n\t\t\t\tvar withinBoundaries = e.composedPath().includes(_this._suggestContainer);\n\n\t\t\t\tif (!withinBoundaries) {\n\t\t\t\t\t_this._handleFocusOut(e);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tdocument.addEventListener('keyup', function (e) {\n\t\t\t\tif (e.code === 'Tab') {\n\t\t\t\t\t_this._handleFocusOut(e);\n\t\t\t\t}\n\t\t\t\tif (e.code === 'Escape') {\n\t\t\t\t\tif (_this._field.parentNode.querySelector('.search-suggest.is-active')) {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t_this._hideMenu();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_allResultsButtonLosesFocus',\n\t\tvalue: function _allResultsButtonLosesFocus(e) {\n\t\t\tif (e.key === 'ArrowDown' || e.key === 'Down') {\n\t\t\t\tthis._focusMenuItem(0);\n\t\t\t} else if (e.key === 'ArrowUp' || e.key === 'Up') {\n\t\t\t\tthis._focusMenuItem(this._filteredResults.length);\n\t\t\t}\n\t\t\tthis._field.focus();\n\n\t\t\tthis._field.value = this._initialRequestQueryValue;\n\t\t\tthis._queryValueBeforeSelection = this._initialRequestQueryValue;\n\t\t}\n\t}, {\n\t\tkey: '_handleFocus',\n\t\tvalue: function _handleFocus() {\n\t\t\tthis._queryValueBeforeSelection = this._field.value;\n\n\t\t\t// only suggest if they are matching, otherwise it does an unwanted search\n\t\t\tif (this._queryValueBeforeSelection === this._initialRequestQueryValue) {\n\t\t\t\tthis._suggest();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_handleFocusOut',\n\t\tvalue: function _handleFocusOut(e) {\n\t\t\tvar withinBoundaries = e.composedPath().includes(this._suggestContainer);\n\t\t\tif (!withinBoundaries || e.relatedTarget && e.relatedTarget.classList.contains('site-search__button')) {\n\t\t\t\tthis._queryValueBeforeSelection = this._field.value;\n\t\t\t\tthis._hideMenu();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_handleKeyUp',\n\t\tvalue: function _handleKeyUp(e) {\n\t\t\tif (e.key === 'ArrowDown' || e.key === 'Down') {\n\t\t\t\tthis._focusMenuItem(1);\n\t\t\t} else if (e.key === 'ArrowUp' || e.key === 'Up') {\n\t\t\t\tthis._focusMenuItem(-1);\n\t\t\t} else if (e.key === 'Escape' || e.key === 'Esc') {\n\t\t\t\tthis._hideMenu();\n\t\t\t} else {\n\t\t\t\tthis._suggest();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_handleClick',\n\t\tvalue: function _handleClick(e) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tvar t = e.target;\n\t\t\tif (t.tagName.toLowerCase() === 'button' || t.tagName.toLowerCase() === 'em') {\n\t\t\t\tif (t.tagName.toLowerCase() === 'em') {\n\t\t\t\t\tt = t.parentElement;\n\t\t\t\t}\n\t\t\t\tthis._field.value = t.textContent;\n\t\t\t\tthis._queryValue = this._field.value;\n\t\t\t\tthis._hideMenu();\n\t\t\t\tthis._form.submit();\n\t\t\t}\n\t\t}\n\n\t\t// Return whether the input field's string value is of minimal required length\n\n\t}, {\n\t\tkey: '_isFieldValueOfMinimalLength',\n\t\tvalue: function _isFieldValueOfMinimalLength() {\n\t\t\treturn this._field.value.length >= this._minNumberOfChars;\n\t\t}\n\n\t\t// Populate the suggestions dropdown menu\n\n\t}, {\n\t\tkey: '_populateMenu',\n\t\tvalue: function _populateMenu(array) {\n\t\t\tvar _this2 = this;\n\n\t\t\tthis._clearMenu();\n\t\t\tvar status = document.createElement('div');\n\t\t\tstatus.classList.add('search-suggest__status');\n\t\t\tstatus.textContent = array.length;\n\t\t\tthis._menuList.appendChild(status);\n\n\t\t\tarray.forEach(function (value) {\n\t\t\t\tvar item = document.createElement('li');\n\t\t\t\tvar button = document.createElement('button');\n\t\t\t\titem.setAttribute('role', 'option');\n\t\t\t\titem.setAttribute('tabindex', -1);\n\t\t\t\tbutton.innerHTML = value.replace(_this2._queryValue, '' + _this2._queryValue + '');\n\t\t\t\tbutton.addEventListener('click', function (e) {\n\t\t\t\t\treturn _this2._handleClick(e);\n\t\t\t\t});\n\t\t\t\titem.appendChild(button);\n\t\t\t\t_this2._menuList.appendChild(item);\n\t\t\t});\n\t\t}\n\n\t\t// Clear the suggestions dropdown of entries\n\n\t}, {\n\t\tkey: '_clearMenu',\n\t\tvalue: function _clearMenu() {\n\t\t\tthis._menuList.innerHTML = '';\n\t\t}\n\n\t\t// Descent or ascent the dropdown menu\n\n\t}, {\n\t\tkey: '_focusMenuItem',\n\t\tvalue: function _focusMenuItem() {\n\t\t\tvar dir = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n\n\t\t\tif (!this._menu.classList.contains('is-active')) return;\n\n\t\t\tthis._selectedMenuItemIndex += dir;\n\t\t\tthis._resetMenuItemSelection();\n\n\t\t\tvar items = Array.from(this._menu.querySelectorAll('li'));\n\n\t\t\tif (this._selectedMenuItemIndex < 0 || this._selectedMenuItemIndex > items.length - 1) {\n\t\t\t\tthis._selectedMenuItemIndex = -1;\n\t\t\t\tthis._field.value = this._queryValueBeforeSelection;\n\t\t\t\tthis._allButton.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._abortQuery(this._initialRequest);\n\t\t\tthis._abortQuery(this._finalRequest);\n\n\t\t\tthis._setMenuItemSelection(this._selectedMenuItemIndex);\n\t\t\tthis._field.value = items[this._selectedMenuItemIndex].textContent;\n\t\t\tthis._queryValue = this._field.value;\n\t\t}\n\n\t\t// Reset dropdown menu selection\n\n\t}, {\n\t\tkey: '_resetMenuItemSelection',\n\t\tvalue: function _resetMenuItemSelection() {\n\t\t\tvar curSelectedItem = this._menu.querySelector('.is-selected');\n\t\t\tif (curSelectedItem) {\n\t\t\t\tcurSelectedItem.classList.remove('is-selected');\n\t\t\t\tcurSelectedItem.removeAttribute('id');\n\t\t\t\tcurSelectedItem.removeAttribute('aria-selected');\n\t\t\t}\n\t\t\tthis._field.setAttribute('aria-activedescendant', '');\n\t\t}\n\n\t\t// Set dropdown menu selection\n\n\t}, {\n\t\tkey: '_setMenuItemSelection',\n\t\tvalue: function _setMenuItemSelection(index) {\n\t\t\tif (index > -1) {\n\t\t\t\tvar menuItems = Array.from(this._menu.querySelectorAll('li'));\n\t\t\t\tvar selectedItem = menuItems[index];\n\t\t\t\tvar id = 'suggest_' + this._id + '_selected';\n\t\t\t\tselectedItem.classList.add('is-selected');\n\t\t\t\tselectedItem.setAttribute('id', id);\n\t\t\t\tselectedItem.setAttribute('aria-selected', 'true');\n\t\t\t\tthis._field.setAttribute('aria-activedescendant', id);\n\t\t\t}\n\t\t}\n\n\t\t// Set the height of the dropdown menu\n\n\t}, {\n\t\tkey: '_setMenuHeight',\n\t\tvalue: function _setMenuHeight(h) {\n\t\t\tvar menuList = this._menu.querySelector('ul');\n\t\t\tif (menuList) menuList.style.height = h + 'px';\n\t\t}\n\n\t\t// Get the height of the dropdown menu\n\n\t}, {\n\t\tkey: '_getMenuHeight',\n\t\tvalue: function _getMenuHeight() {\n\t\t\tvar items = Array.from(this._menu.querySelectorAll('li'));\n\t\t\tvar h = items.length * (items[0] ? items[0].offsetHeight : 0);\n\t\t\treturn h;\n\t\t}\n\n\t\t// Show dropdown menu\n\n\t}, {\n\t\tkey: '_showMenu',\n\t\tvalue: function _showMenu() {\n\t\t\tdocument.body.classList.add('search-suggest-is-active');\n\t\t\tthis._menu.classList.add('is-active');\n\t\t\tthis._menu.setAttribute('aria-hidden', false);\n\t\t\tthis._setMenuHeight(this._getMenuHeight());\n\t\t}\n\n\t\t// Hide dropdown menu\n\n\t}, {\n\t\tkey: '_hideMenu',\n\t\tvalue: function _hideMenu() {\n\t\t\tvar _this3 = this;\n\n\t\t\tthis._field.setAttribute('aria-activedescendant', '');\n\t\t\tdocument.body.classList.remove('search-suggest-is-active');\n\t\t\tthis._menu.setAttribute('aria-hidden', true);\n\t\t\tthis._selectedMenuItemIndex = -1;\n\t\t\tthis._resetMenuItemSelection();\n\t\t\tthis._setMenuHeight(0);\n\n\t\t\tsetTimeout(function () {\n\t\t\t\t_this3._menu.classList.remove('is-active');\n\t\t\t}, 100);\n\t\t}\n\n\t\t// Suggest search queries\n\n\t}, {\n\t\tkey: '_suggest',\n\t\tvalue: function _suggest() {\n\t\t\tvar _this4 = this;\n\n\t\t\tif (this._serviceURI === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar value = this._field.value;\n\t\t\tthis._queryValueBeforeSelection = value;\n\n\t\t\tvar processResults = function processResults(array) {\n\t\t\t\t_this4._requestResults = array;\n\t\t\t\t_this4._filteredResults = array;\n\n\t\t\t\tif (_this4._filteredResults.length > 0) {\n\t\t\t\t\t_this4._populateMenu(_this4._filteredResults);\n\t\t\t\t\t_this4._showMenu();\n\n\t\t\t\t\t// set the search query item active\n\t\t\t\t\tvar suggestItems = Array.from(document.querySelectorAll('.search-suggest.is-active li'));\n\t\t\t\t\tvar suggestResults = [];\n\n\t\t\t\t\tsuggestItems.forEach(function (item) {\n\t\t\t\t\t\tsuggestResults.push(item.textContent);\n\t\t\t\t\t});\n\n\t\t\t\t\tvar searchQuery = function searchQuery(ar) {\n\t\t\t\t\t\treturn ar === _this4._searchParam;\n\t\t\t\t\t};\n\n\t\t\t\t\tvar i = suggestResults.findIndex(searchQuery);\n\t\t\t\t\tif (i >= 0) suggestItems[i].classList.add('is-active');\n\t\t\t\t} else {\n\t\t\t\t\t_this4._clearMenu();\n\t\t\t\t\t_this4._hideMenu();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (this._isFieldValueOfMinimalLength()) {\n\t\t\t\tif (value !== this._queryValue) {\n\t\t\t\t\t// Input value has changed since last keystroke\n\t\t\t\t\tclearTimeout(this._finalQuery);\n\n\t\t\t\t\t// If no request is running, make initial request\n\t\t\t\t\tif (!this._isQueryActive(this._initialRequest)) {\n\t\t\t\t\t\tthis._query(this._initialRequest, value, processResults);\n\t\t\t\t\t\tthis._initialRequestQueryValue = value;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Launch a final request - timed out. Then cancel the initial request if it is still running\n\t\t\t\t\tthis._finalQuery = setTimeout(function () {\n\t\t\t\t\t\tif (value !== _this4._initialRequestQueryValue) {\n\t\t\t\t\t\t\t// Input value has changed between initial and final request\n\t\t\t\t\t\t\t_this4._query(_this4._finalRequest, value, function (array) {\n\t\t\t\t\t\t\t\t_this4._abortQuery(_this4._initialRequest);\n\t\t\t\t\t\t\t\tprocessResults(array);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this._finalRequestDelay);\n\t\t\t\t}\n\n\t\t\t\t// Continue filtering any existing results\n\t\t\t\tif (this._requestResults.length > 0) {\n\t\t\t\t\tprocessResults(this._requestResults);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._abortQuery(this._initialRequest);\n\t\t\t\tthis._abortQuery(this._finalRequest);\n\t\t\t\tthis._hideMenu();\n\t\t\t}\n\n\t\t\tthis._queryValue = value;\n\t\t}\n\n\t\t// Make an XMLHTTPRequest\n\n\t}, {\n\t\tkey: '_query',\n\t\tvalue: function _query(req, value, successFn) {\n\t\t\tthis._abortQuery(req);\n\t\t\tvar queryOp = this._serviceURI.includes('?') ? '&' : '?';\n\t\t\tvar uri = '' + this._serviceURI + queryOp + 'q=' + encodeURIComponent(value) + '&count=' + this._maxSuggestionsRequested;\n\t\t\treq.onreadystatechange = function (e) {\n\t\t\t\tif (req.readyState === XMLHttpRequest.DONE && req.status === 200) {\n\t\t\t\t\tvar result = JSON.parse(req.responseText);\n\t\t\t\t\tsuccessFn(result);\n\t\t\t\t}\n\t\t\t};\n\t\t\treq.open('GET', uri, true);\n\t\t\treq.send();\n\t\t}\n\n\t\t// Return whether XMLHTTPRequest object is active\n\n\t}, {\n\t\tkey: '_isQueryActive',\n\t\tvalue: function _isQueryActive(req) {\n\t\t\tvar active = req.readyState && req.readyState !== 0 && req.readyState !== 4;\n\t\t\treturn active;\n\t\t}\n\n\t\t// Abort an active XMLHTTPRequest\n\n\t}, {\n\t\tkey: '_abortQuery',\n\t\tvalue: function _abortQuery(req) {\n\t\t\tif (this._isQueryActive(req)) {\n\t\t\t\treq.abort();\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn SearchSuggest;\n}();\n\nexports.default = SearchSuggest;\n\n},{\"../Partials/_create-id.js\":25,\"core-js/fn/array/find-index\":44,\"core-js/fn/array/for-each\":45,\"core-js/fn/array/from\":46,\"url-search-params-polyfill\":134}],37:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _viewportstateWatcher = require('../Partials/_viewportstate-watcher.js');\n\nvar _viewportstateWatcher2 = _interopRequireDefault(_viewportstateWatcher);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Creates an instance of the Table class.\n *\n * @class Table\n */\nvar Table = function () {\n\t/**\n * Creates an instance of Table.\n * This class will resize the Table to be fullbleed on the right side.\n * It will take two elements into consideration the #main and .main__article__content\n *\n * This javascript solution is necessary because it needs to calculate\n * if the width of the table is larger than the width of the RTE\n * when this is the case it needs to calc the new width of the table that is\n * the original width plus the width of the space right of the RTE.\n * (Safari also doesn't support calc percentages with px's)\n *\n * @param {HTMLElement} el - HTML table element\n * @param {HTMLElement} el - HTML container element\n * @param {string, array} [viewportStates='all'] - An optional string or array that makes the Table functionality active for given viewport states (see Partials/_viewportstate-watcher.js)\n *\n * @example\n *
\n * \n * \n */\n\tfunction Table(tableWrapper, rte) {\n\t\tvar _this = this;\n\n\t\tvar viewportStates = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ['small', 'medium'];\n\n\t\t_classCallCheck(this, Table);\n\n\t\tthis._tableWrapper = tableWrapper;\n\t\tthis._rte = rte;\n\t\tthis._table = tableWrapper.querySelector('table');\n\n\t\t// Get elements to calculate the extra padding\n\t\t// Prefer to use getBoundingClientRect but the right value is wrong and bugged\n\t\tthis._mainArticleContent = document.querySelector('.main__article__content');\n\t\tthis._main = document.querySelector('#main');\n\n\t\t// Get handler fn reference so it can be removed with this binding\n\t\tvar timer = void 0;\n\t\tthis._resizeHandler = function () {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = setTimeout(function () {\n\t\t\t\treturn _this._resize();\n\t\t\t}, 50);\n\t\t};\n\n\t\t_viewportstateWatcher2.default.watch(viewportStates, function () {\n\t\t\treturn _this._init();\n\t\t}, function () {\n\t\t\treturn _this._uninit();\n\t\t});\n\t}\n\n\t_createClass(Table, [{\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\tthis._calcWidth();\n\t\t\twindow.addEventListener('resize', this._resizeHandler);\n\t\t\twindow.addEventListener('orientationchange', this._resizeHandler);\n\t\t}\n\t}, {\n\t\tkey: '_uninit',\n\t\tvalue: function _uninit() {\n\t\t\tthis._tableWrapper.removeAttribute('style');\n\t\t\twindow.removeEventListener('resize', this._resizeHandler);\n\t\t\twindow.removeEventListener('orientationchange', this._resizeHandler);\n\t\t}\n\t}, {\n\t\tkey: '_resize',\n\t\tvalue: function _resize() {\n\t\t\tthis._calcWidth();\n\t\t}\n\t}, {\n\t\tkey: '_calcWidth',\n\t\tvalue: function _calcWidth() {\n\t\t\tthis._tableWrapper.removeAttribute('style');\n\n\t\t\tthis._offsetWidth = parseFloat(window.getComputedStyle(this._mainArticleContent).marginRight) + parseFloat(window.getComputedStyle(this._mainArticleContent).paddingRight) + parseFloat(window.getComputedStyle(this._main).paddingRight);\n\n\t\t\t// Check if table is larger than rte width\n\t\t\tif (this._rte.offsetWidth < this._table.offsetWidth) {\n\t\t\t\tthis._tableWrapper.style.marginRight = -this._offsetWidth + 'px';\n\t\t\t}\n\t\t}\n\t}]);\n\n\treturn Table;\n}();\n\nexports.default = Table;\n\n},{\"../Partials/_viewportstate-watcher.js\":42}],38:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n/**\n * Test a CSS feature\n */\nvar testFeature = {\n\ttest: function test(property, value, noPrefixes) {\n\t\tvar prop = property + ':';\n\t\tvar el = document.createElement('test');\n\t\tvar mStyle = el.style;\n\n\t\tif (!noPrefixes) {\n\t\t\tmStyle.cssText = prop + ['-webkit-', '-moz-', '-ms-', '-o-', ''].join(value + ';' + prop) + value + ';';\n\t\t} else {\n\t\t\tmStyle.cssText = prop + value;\n\t\t}\n\t\treturn !!mStyle[property];\n\t},\n\tsetClass: function setClass() {\n\t\tvar bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\t\tvar name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n\t\tvar c = bool === true ? name : 'no-' + name;\n\t\tdocument.documentElement.classList.add(c);\n\t}\n};\n\nexports.default = testFeature;\n\n},{}],39:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports.default = detectIE;\nfunction detectIE() {\n\tvar ua = window.navigator.userAgent;\n\n\tvar msie = ua.indexOf('MSIE ');\n\tif (msie > 0) {\n\t\t// IE 10 or older => return version number\n\t\treturn parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n\t}\n\n\tvar trident = ua.indexOf('Trident/');\n\tif (trident > 0) {\n\t\t// IE 11 => return version number\n\t\tvar rv = ua.indexOf('rv:');\n\t\treturn parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n\t}\n\t// Edge support not needed\n\t// var edge = ua.indexOf('Edge/');\n\t// if (edge > 0) {\n\t// // Edge (IE 12+) => return version number\n\t// return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n\t// }\n\n\t// other browser\n\treturn false;\n}\n\n},{}],40:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n/**\n * Test for touch event support\n */\nvar testTouchevents = {\n\ttest: function test() {\n\t\tvar bool = 'ontouchstart' in window;\n\t\treturn bool;\n\t},\n\tsetClass: function setClass() {\n\t\tvar bool = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\t\tvar name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n\t\tvar c = bool === true ? name : 'no-' + name;\n\t\tdocument.documentElement.classList.add(c);\n\t}\n};\n\nexports.default = testTouchevents;\n\n},{}],41:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nrequire('core-js/fn/array/for-each');\n\nvar _createId = require('../Partials/_create-id.js');\n\nvar _createId2 = _interopRequireDefault(_createId);\n\nvar _trapFocus = require('../Helpers/trap-focus');\n\nvar _trapFocus2 = _interopRequireDefault(_trapFocus);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Tooltips\n *\n * @class ToolTip\n */\nvar ToolTip = function () {\n\tfunction ToolTip(el) {\n\t\tvar options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\t_classCallCheck(this, ToolTip);\n\n\t\tthis._root = el;\n\t\tthis._options = {\n\t\t\ttriggers: options.triggers || ['click'],\n\t\t\tglobalUntriggers: options.globalUntriggers || ['focusin', 'click'],\n\t\t\tkeyboardControl: options.keyboardControl || true,\n\t\t\tadditionalClassNames: options.additionalClassNames || [],\n\t\t\tallowFocusInside: options.allowFocusInside === false ? false : true,\n\t\t\toffsetTop: options.offsetTop || 0,\n\t\t\toffsetBottom: options.offsetBottom || 40\n\t\t};\n\n\t\tthis._active = false;\n\t\tthis._cooldown = false;\n\n\t\tthis._init();\n\t}\n\n\t_createClass(ToolTip, [{\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\tvar _this = this;\n\n\t\t\tvar tooltipId = 'tooltip-' + (0, _createId2.default)();\n\t\t\tvar rootId = this._root.id || 'tooltipsrc-' + (0, _createId2.default)();\n\t\t\tvar tooltipText = this._root.getAttribute('data-tooltip-html') || this._root.getAttribute('title') || '';\n\n\t\t\t// Create and configure hidden tooltip\n\t\t\tthis._tooltip = document.createElement('div');\n\t\t\tdocument.body.appendChild(this._tooltip);\n\n\t\t\tthis._tooltipContent = document.createElement('div');\n\t\t\tthis._tooltipContent.classList.add('tooltip--content');\n\t\t\tthis._tooltip.appendChild(this._tooltipContent);\n\n\t\t\tthis._tooltipArrow = document.createElement('div');\n\t\t\tthis._tooltipArrow.classList.add('tooltip--arrow');\n\t\t\tthis._tooltip.appendChild(this._tooltipArrow);\n\n\t\t\tthis._tooltip.setAttribute('role', 'tooltip');\n\t\t\tthis._tooltip.setAttribute('id', tooltipId);\n\t\t\tthis._tooltip.setAttribute('aria-labelledby', rootId);\n\t\t\tthis._tooltip.classList.add('tooltip--hidden');\n\t\t\tthis._tooltip.classList.add('tooltip');\n\t\t\tthis._options.additionalClassNames.forEach(function (c) {\n\t\t\t\treturn _this._tooltip.classList.add(c);\n\t\t\t});\n\t\t\tthis._tooltipContent.innerHTML = tooltipText;\n\n\t\t\t// Attributes on root element\n\t\t\tthis._root.setAttribute('aria-describedby', tooltipId);\n\t\t\tthis._root.setAttribute('id', rootId);\n\t\t\tthis._root.setAttribute('tabindex', this._root.getAttribute('tabindex') || 0);\n\t\t\tthis._root.removeAttribute('title');\n\n\t\t\t// Keyboard focusable elements inside tooltip to handle closing during tabbing\n\t\t\tvar hideWhenTabbedOut = function hideWhenTabbedOut() {\n\t\t\t\t_this._hide();\n\t\t\t\t_this._root.focus();\n\t\t\t};\n\n\t\t\tvar focusBefore = document.createElement('span');\n\t\t\tfocusBefore.setAttribute('tabindex', 0);\n\t\t\tthis._tooltip.insertBefore(focusBefore, this._tooltipContent);\n\t\t\tfocusBefore.addEventListener('focus', hideWhenTabbedOut);\n\n\t\t\tvar focusAfter = document.createElement('span');\n\t\t\tfocusAfter.setAttribute('tabindex', 0);\n\t\t\tthis._tooltip.insertBefore(focusAfter, this._tooltipContent.nextSibling);\n\t\t\tfocusAfter.addEventListener('focus', hideWhenTabbedOut);\n\n\t\t\t// Event listeners on root element\n\n\t\t\tvar rootKeydown = function rootKeydown(e) {\n\t\t\t\tif (_this._options.keyboardControl && e.keyCode === 32) e.preventDefault();else if (e.key === 'Tab' && !e.shiftKey && _this._active && _this._options.allowFocusInside) {\n\t\t\t\t\t// If tooltip is open and user tabs forward, focus on first A inside, if any\n\t\t\t\t\tvar a = _this._tooltip.querySelector('a');\n\t\t\t\t\tif (a) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\ta.focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis._root.addEventListener('keydown', rootKeydown);\n\n\t\t\tvar rootKeyup = function rootKeyup(e) {\n\t\t\t\tif (e.key === 'Enter' || e.keyCode === 32) _this._toggle();else if (e.key === 'Escape' || e.key === 'Esc') _this._hide();\n\t\t\t};\n\n\t\t\tif (this._options.keyboardControl) {\n\t\t\t\tthis._root.addEventListener('keyup', rootKeyup);\n\t\t\t}\n\n\t\t\tthis._options.triggers.forEach(function (t) {\n\t\t\t\t_this._root.addEventListener(t, function (e) {\n\t\t\t\t\treturn _this._toggle(e);\n\t\t\t\t}, {\n\t\t\t\t\tpassive: true\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// Event listeners on tooltip\n\n\t\t\tvar tooltipKeyUp = function tooltipKeyUp(e) {\n\t\t\t\tif (e.key === 'Escape' || e.key === 'Esc') {\n\t\t\t\t\t_this._hide();\n\t\t\t\t\t_this._root.focus();\n\t\t\t\t}\n\t\t\t\tif (e.key === 'Tab') {\n\t\t\t\t\tif (document.activeElement === _trapFocus2.default.lastFocusableEl) {\n\t\t\t\t\t\t_trapFocus2.default.endTrapFocus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis._tooltip.addEventListener('keyup', tooltipKeyUp);\n\n\t\t\tthis._options.globalUntriggers.forEach(function (t) {\n\t\t\t\t_this._tooltip.addEventListener(t, function (e) {\n\t\t\t\t\treturn e.stopPropagation();\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t// Global event listeners to close the tooltip\n\t\t\tthis.globalFocusout = function (e) {\n\t\t\t\tvar t = e.target;\n\t\t\t\tif (t !== _this._root) {\n\t\t\t\t\t_this._hide();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.scrolled = function () {\n\t\t\t\t_this._updateTooltipPosition();\n\t\t\t};\n\n\t\t\tvar timer = void 0;\n\t\t\tvar handleResize = function handleResize() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(function () {\n\t\t\t\t\treturn _this._hide();\n\t\t\t\t}, 50);\n\t\t\t};\n\n\t\t\twindow.addEventListener('orientationchange', handleResize);\n\t\t\twindow.addEventListener('resize', handleResize);\n\t\t}\n\t}, {\n\t\tkey: '_toggle',\n\t\tvalue: function _toggle(e) {\n\t\t\tvar _this2 = this;\n\n\t\t\t// Cooldown stops consecutive events from conflicting (i.e. focus + mouseenter on touch devices)\n\t\t\tif (this._cooldown) return;\n\t\t\tthis._cooldown = true;\n\t\t\tsetTimeout(function () {\n\t\t\t\t_this2._cooldown = false;\n\t\t\t}, 500);\n\n\t\t\tif (this._active) {\n\t\t\t\tthis._hide();\n\t\t\t} else {\n\t\t\t\tthis._show();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: '_show',\n\t\tvalue: function _show() {\n\t\t\tvar _this3 = this;\n\n\t\t\t_trapFocus2.default.startTrapFocus(this._tooltipContent);\n\n\t\t\tthis._active = true;\n\t\t\tthis._tooltip.classList.add('tooltip--is-active');\n\n\t\t\tdocument.addEventListener('scroll', this.scrolled);\n\n\t\t\tthis._updateTooltipPosition();\n\t\t\tthis._options.globalUntriggers.forEach(function (t) {\n\t\t\t\treturn document.body.addEventListener(t, _this3.globalFocusout);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_hide',\n\t\tvalue: function _hide() {\n\t\t\tvar _this4 = this;\n\n\t\t\t_trapFocus2.default.endTrapFocus();\n\n\t\t\tthis._active = false;\n\t\t\tthis._tooltip.classList.remove('tooltip--is-active');\n\n\t\t\tdocument.removeEventListener('scroll', this.scrolled);\n\t\t\tthis._options.globalUntriggers.forEach(function (t) {\n\t\t\t\treturn document.body.removeEventListener(t, _this4.globalFocusout);\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: '_updateTooltipPosition',\n\t\tvalue: function _updateTooltipPosition() {\n\t\t\tvar bodyRect = document.body.getBoundingClientRect();\n\t\t\tvar rootRect = this._root.getBoundingClientRect();\n\t\t\tvar rootWidth = this._root.offsetWidth;\n\n\t\t\tvar left = rootRect.left - bodyRect.left + rootWidth / 2;\n\t\t\tvar top = rootRect.top - bodyRect.top;\n\t\t\tvar w = this._tooltip.offsetWidth;\n\n\t\t\tthis._tooltip.style.width = w + 'px';\n\n\t\t\t// Counter overflowing the canvas on left and right\n\t\t\tvar offRight = left + w / 2 - document.body.offsetWidth;\n\t\t\tif (offRight > 0) {\n\t\t\t\tthis._tooltip.style.marginLeft = -offRight + 'px';\n\t\t\t\tthis._tooltipArrow.style.marginLeft = offRight + 'px';\n\t\t\t}\n\n\t\t\tvar offLeft = left - w / 2;\n\t\t\tif (offLeft < 0) {\n\t\t\t\tthis._tooltip.style.marginLeft = -offLeft + 'px';\n\t\t\t\tthis._tooltipArrow.style.marginLeft = offLeft + 'px';\n\t\t\t}\n\n\t\t\t// Set x and y, if the tooltip will overlap the top of the window, position it under the text instead\n\t\t\tif (this._tooltip.getBoundingClientRect().height > this._root.getBoundingClientRect().top) {\n\t\t\t\tthis._tooltip.style.top = top + this._tooltip.getBoundingClientRect().height + this._options.offsetBottom + 'px';\n\t\t\t} else {\n\t\t\t\tthis._tooltip.style.top = top + this._options.offsetTop + 'px';\n\t\t\t}\n\t\t\tthis._tooltip.style.left = left + 'px';\n\t\t}\n\t}]);\n\n\treturn ToolTip;\n}();\n\nexports.default = ToolTip;\n\n},{\"../Helpers/trap-focus\":1,\"../Partials/_create-id.js\":25,\"core-js/fn/array/for-each\":45}],42:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nrequire('custom-event-polyfill');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// More states can be added here.\n// - The height property should match the height set to the #viewport-state element in SCSS/Partials/_viewport-state.scss\n// - The label should be a discriptive name, like a CSS media query range\nvar presetStates = [{ height: 1, label: 'small' }, { height: 2, label: 'medium' }, { height: 3, label: 'mediumPlus' }, { height: 4, label: 'large' }, { height: 5, label: 'xlarge' }];\n\n// Potential TODO: read CSS property based on property name ('height'), and set an array of current states or something, in order to allow\n// for multiple active states that can overlap in requirements.\n\n/**\n * A singleton that determines the state of the viewport (in most cases, the current CSS media query range)\n * and fires off a custom event when this state changes. It also offers run() and watch() methods to kick off\n * callback functions when given states match or fail to match the current state.\n *\n * @param {array} - An array with objects that define the preset states\n *\n * @class ViewPortStateWatcher\n */\n\nvar ViewPortStateWatcher = function () {\n\tfunction ViewPortStateWatcher() {\n\t\tvar arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n\t\t_classCallCheck(this, ViewPortStateWatcher);\n\n\t\tthis._states = arr;\n\t\tthis._currentStateIndex = -1;\n\n\t\tthis._sample = document.createElement('div');\n\t\tthis._sample.setAttribute('id', 'viewport-state');\n\t\tthis._sample.setAttribute('role', 'presentation');\n\t}\n\n\t_createClass(ViewPortStateWatcher, [{\n\t\tkey: '_init',\n\t\tvalue: function _init() {\n\t\t\tvar _this = this;\n\n\t\t\t// Append sample element to BODY\n\t\t\tdocument.body.appendChild(this._sample);\n\n\t\t\t// Viewport resizing event listeners\n\t\t\tvar timer = void 0;\n\t\t\tvar handleResize = function handleResize() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(function () {\n\t\t\t\t\treturn _this._trigger();\n\t\t\t\t}, 100);\n\t\t\t};\n\t\t\twindow.addEventListener('resize', handleResize);\n\t\t\twindow.addEventListener('orientationchange', handleResize);\n\t\t}\n\n\t\t/**\n * Matches sample element's current height with index in states array.\n * _currentStateIndex is updated in case array index differs from _currentStateIndex's value\n *\n * @returns {boolean} - True of false depending on whether the current state changed\n *\n * @memberOf ViewPortStateWatcher\n */\n\n\t}, {\n\t\tkey: '_update',\n\t\tvalue: function _update() {\n\t\t\tvar samplestyle = window.getComputedStyle(this._sample);\n\t\t\tvar h = parseInt(samplestyle.height.substr(0, 1));\n\t\t\tvar i = -1;\n\t\t\tthis._states.map(function (obj, index) {\n\t\t\t\tif (obj.height === h) {\n\t\t\t\t\ti = index;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (i > -1 && i !== this._currentStateIndex) {\n\t\t\t\t// State changed\n\t\t\t\tthis._currentStateIndex = i;\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\t// State didn't change\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\t/**\n * Called when viewport is resized, fires off a custom event in case viewport state was changed by calling _update\n *\n * @memberOf ViewPortStateWatcher\n */\n\n\t}, {\n\t\tkey: '_trigger',\n\t\tvalue: function _trigger() {\n\t\t\tvar stateChanged = this._update();\n\t\t\tif (stateChanged) {\n\t\t\t\tvar event = new CustomEvent('viewportstatechange', {\n\t\t\t\t\tdetail: {\n\t\t\t\t\t\tcurrent: this._states[this._currentStateIndex].label\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\twindow.dispatchEvent(event);\n\t\t\t}\n\t\t}\n\n\t\t/**\n * Based on _currentStateIndex, this returns the label of the current viewport state.\n *\n * @returns {string} - The label of the current viewport state\n *\n * @memberOf ViewPortStateWatcher\n */\n\n\t}, {\n\t\tkey: 'getState',\n\t\tvalue: function getState() {\n\t\t\tthis._update();\n\t\t\tvar result = this._states[this._currentStateIndex] ? this._states[this._currentStateIndex].label : false;\n\t\t\treturn result;\n\t\t}\n\n\t\t/**\n * This method will try to match the current viewport state with the given states and runs a callback function if a match.\n *\n * @param {string, array} states - Either a string with a single state label, or an array containing states as strings. The string \"all\" will match with all viewport states.\n * @param {function} yesFn - Callback function that is executed when current viewport state matches any of the given states.\n * @param {any} [noFn=function(){}] - Optional callback function executed when current viewport state does not match any of the given states.\n *\n * @memberOf ViewPortStateWatcher\n *\n * @example\n * viewPortStateWatcher.run(\n * ['small'],\n * () => match,\n * () => noMatch\n * );\n */\n\n\t}, {\n\t\tkey: 'run',\n\t\tvalue: function run(states, yesFn) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar noFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n\n\t\t\tvar stateArr = typeof states === 'string' ? [states] : states;\n\n\t\t\tvar check = function check() {\n\t\t\t\tif (stateArr.indexOf(_this2.getState()) > -1 || stateArr[0] === 'all') {\n\t\t\t\t\tyesFn();\n\t\t\t\t} else {\n\t\t\t\t\tnoFn();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (this.getState() === false) {\n\t\t\t\t// CSS has not loaded yet to set the height of the sample element\n\t\t\t\tvar link = document.querySelector('link[href$=\"/styles.css\"]');\n\t\t\t\tlink.addEventListener('load', check, { once: true });\n\t\t\t} else {\n\t\t\t\tcheck();\n\t\t\t}\n\t\t}\n\n\t\t/**\n * This method will execute run() once and sets an event listener to kick off run() again when a viewport state change occurs. See run() for parameters.\n * Do note that the success callback function will be run every time a viewportstatechange event takes place that matches with the given states.\n *\n * @memberOf ViewPortStateWatcher\n */\n\n\t}, {\n\t\tkey: 'watch',\n\t\tvalue: function watch(states, yesFn) {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar noFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n\n\t\t\tthis.run(states, yesFn, noFn);\n\t\t\twindow.addEventListener('viewportstatechange', function () {\n\t\t\t\treturn _this3.run(states, yesFn, noFn);\n\t\t\t});\n\t\t}\n\t}]);\n\n\treturn ViewPortStateWatcher;\n}();\n\nvar viewPortStateWatcher = new ViewPortStateWatcher(presetStates);\n\nvar init = function init() {\n\tviewPortStateWatcher._init();\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\nexports.default = viewPortStateWatcher;\n\n},{\"custom-event-polyfill\":129}],43:[function(require,module,exports){\n'use strict';\n\nrequire('picturefill');\n\nrequire('svgxuse');\n\nrequire('dom4');\n\nrequire('./Partials/_ordered-lists.js');\n\nrequire('./Partials/_browser-detect.js');\n\nrequire('./Partials/_file-upload.js');\n\nrequire('./Partials/_forms.js');\n\nrequire('./Modules/_search.js');\n\nrequire('./Modules/_page-footer.js');\n\nrequire('./Modules/_masthead.js');\n\nrequire('./Modules/_service-listing.js');\n\nrequire('./Modules/_expand-listing.js');\n\nrequire('./Modules/_definitions.js');\n\nrequire('./Modules/_listings.js');\n\nrequire('./Modules/_page-utils.js');\n\nrequire('./Modules/_rte.js');\n\nrequire('./Modules/_clustered-blocks');\n\nrequire('./Modules/_faq.js');\n\nrequire('./Modules/_messages');\n\nrequire('./Modules/_read-more');\n\nrequire('./Modules/_map-view');\n\nvar _init = require('./LRV/_init.js');\n\nvar _init2 = _interopRequireDefault(_init);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar init = function init() {\n\tvar html = document.documentElement;\n\thtml.classList.remove('no-js');\n\thtml.classList.add('js');\n\tdocument.body.classList.remove('js-stop-transitions');\n\t(0, _init2.default)();\n};\n\ndocument.addEventListener('DOMContentLoaded', init, { once: true });\n\n},{\"./LRV/_init.js\":4,\"./Modules/_clustered-blocks\":5,\"./Modules/_definitions.js\":6,\"./Modules/_expand-listing.js\":7,\"./Modules/_faq.js\":8,\"./Modules/_listings.js\":9,\"./Modules/_map-view\":10,\"./Modules/_masthead.js\":12,\"./Modules/_messages\":13,\"./Modules/_page-footer.js\":14,\"./Modules/_page-utils.js\":15,\"./Modules/_read-more\":17,\"./Modules/_rte.js\":18,\"./Modules/_search.js\":19,\"./Modules/_service-listing.js\":20,\"./Partials/_browser-detect.js\":22,\"./Partials/_file-upload.js\":26,\"./Partials/_forms.js\":29,\"./Partials/_ordered-lists.js\":32,\"dom4\":130,\"picturefill\":131,\"svgxuse\":133}],44:[function(require,module,exports){\nrequire('../../modules/es6.array.find-index');\nmodule.exports = require('../../modules/_core').Array.findIndex;\n\n},{\"../../modules/_core\":60,\"../../modules/es6.array.find-index\":117}],45:[function(require,module,exports){\nrequire('../../modules/es6.array.for-each');\nmodule.exports = require('../../modules/_core').Array.forEach;\n\n},{\"../../modules/_core\":60,\"../../modules/es6.array.for-each\":118}],46:[function(require,module,exports){\nrequire('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n},{\"../../modules/_core\":60,\"../../modules/es6.array.from\":119,\"../../modules/es6.string.iterator\":123}],47:[function(require,module,exports){\nrequire('../../modules/es6.array.index-of');\nmodule.exports = require('../../modules/_core').Array.indexOf;\n\n},{\"../../modules/_core\":60,\"../../modules/es6.array.index-of\":120}],48:[function(require,module,exports){\nrequire('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n\n},{\"../../modules/_core\":60,\"../../modules/es7.object.entries\":125}],49:[function(require,module,exports){\nrequire('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n},{\"../../modules/_core\":60,\"../../modules/es6.object.to-string\":122,\"../../modules/es6.symbol\":124,\"../../modules/es7.symbol.async-iterator\":126,\"../../modules/es7.symbol.observable\":127}],50:[function(require,module,exports){\nrequire('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n},{\"../../modules/_wks-ext\":114,\"../../modules/es6.string.iterator\":123,\"../../modules/web.dom.iterable\":128}],51:[function(require,module,exports){\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n},{}],52:[function(require,module,exports){\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n},{\"./_hide\":72,\"./_wks\":115}],53:[function(require,module,exports){\nvar isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n},{\"./_is-object\":78}],54:[function(require,module,exports){\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n},{\"./_to-absolute-index\":106,\"./_to-iobject\":108,\"./_to-length\":109}],55:[function(require,module,exports){\n// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n},{\"./_array-species-create\":57,\"./_ctx\":62,\"./_iobject\":75,\"./_to-length\":109,\"./_to-object\":110}],56:[function(require,module,exports){\nvar isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n},{\"./_is-array\":77,\"./_is-object\":78,\"./_wks\":115}],57:[function(require,module,exports){\n// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n},{\"./_array-species-constructor\":56}],58:[function(require,module,exports){\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n},{\"./_cof\":59,\"./_wks\":115}],59:[function(require,module,exports){\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n},{}],60:[function(require,module,exports){\nvar core = module.exports = { version: '2.6.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n},{}],61:[function(require,module,exports){\n'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n},{\"./_object-dp\":88,\"./_property-desc\":99}],62:[function(require,module,exports){\n// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n},{\"./_a-function\":51}],63:[function(require,module,exports){\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n},{}],64:[function(require,module,exports){\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n},{\"./_fails\":69}],65:[function(require,module,exports){\nvar isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n},{\"./_global\":70,\"./_is-object\":78}],66:[function(require,module,exports){\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n},{}],67:[function(require,module,exports){\n// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n\n},{\"./_object-gops\":93,\"./_object-keys\":96,\"./_object-pie\":97}],68:[function(require,module,exports){\nvar global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n},{\"./_core\":60,\"./_ctx\":62,\"./_global\":70,\"./_hide\":72,\"./_redefine\":100}],69:[function(require,module,exports){\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n},{}],70:[function(require,module,exports){\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n},{}],71:[function(require,module,exports){\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n},{}],72:[function(require,module,exports){\nvar dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n},{\"./_descriptors\":64,\"./_object-dp\":88,\"./_property-desc\":99}],73:[function(require,module,exports){\nvar document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n},{\"./_global\":70}],74:[function(require,module,exports){\nmodule.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n},{\"./_descriptors\":64,\"./_dom-create\":65,\"./_fails\":69}],75:[function(require,module,exports){\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n},{\"./_cof\":59}],76:[function(require,module,exports){\n// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n},{\"./_iterators\":84,\"./_wks\":115}],77:[function(require,module,exports){\n// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n},{\"./_cof\":59}],78:[function(require,module,exports){\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n},{}],79:[function(require,module,exports){\n// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n},{\"./_an-object\":53}],80:[function(require,module,exports){\n'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n},{\"./_hide\":72,\"./_object-create\":87,\"./_property-desc\":99,\"./_set-to-string-tag\":101,\"./_wks\":115}],81:[function(require,module,exports){\n'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n},{\"./_export\":68,\"./_hide\":72,\"./_iter-create\":80,\"./_iterators\":84,\"./_library\":85,\"./_object-gpo\":94,\"./_redefine\":100,\"./_set-to-string-tag\":101,\"./_wks\":115}],82:[function(require,module,exports){\nvar ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n},{\"./_wks\":115}],83:[function(require,module,exports){\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n},{}],84:[function(require,module,exports){\nmodule.exports = {};\n\n},{}],85:[function(require,module,exports){\nmodule.exports = false;\n\n},{}],86:[function(require,module,exports){\nvar META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n},{\"./_fails\":69,\"./_has\":71,\"./_is-object\":78,\"./_object-dp\":88,\"./_uid\":112}],87:[function(require,module,exports){\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n},{\"./_an-object\":53,\"./_dom-create\":65,\"./_enum-bug-keys\":66,\"./_html\":73,\"./_object-dps\":89,\"./_shared-key\":102}],88:[function(require,module,exports){\nvar anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n},{\"./_an-object\":53,\"./_descriptors\":64,\"./_ie8-dom-define\":74,\"./_to-primitive\":111}],89:[function(require,module,exports){\nvar dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n},{\"./_an-object\":53,\"./_descriptors\":64,\"./_object-dp\":88,\"./_object-keys\":96}],90:[function(require,module,exports){\nvar pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n},{\"./_descriptors\":64,\"./_has\":71,\"./_ie8-dom-define\":74,\"./_object-pie\":97,\"./_property-desc\":99,\"./_to-iobject\":108,\"./_to-primitive\":111}],91:[function(require,module,exports){\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n},{\"./_object-gopn\":92,\"./_to-iobject\":108}],92:[function(require,module,exports){\n// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n},{\"./_enum-bug-keys\":66,\"./_object-keys-internal\":95}],93:[function(require,module,exports){\nexports.f = Object.getOwnPropertySymbols;\n\n},{}],94:[function(require,module,exports){\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n},{\"./_has\":71,\"./_shared-key\":102,\"./_to-object\":110}],95:[function(require,module,exports){\nvar has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n},{\"./_array-includes\":54,\"./_has\":71,\"./_shared-key\":102,\"./_to-iobject\":108}],96:[function(require,module,exports){\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n},{\"./_enum-bug-keys\":66,\"./_object-keys-internal\":95}],97:[function(require,module,exports){\nexports.f = {}.propertyIsEnumerable;\n\n},{}],98:[function(require,module,exports){\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n\n},{\"./_object-keys\":96,\"./_object-pie\":97,\"./_to-iobject\":108}],99:[function(require,module,exports){\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n},{}],100:[function(require,module,exports){\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n},{\"./_core\":60,\"./_global\":70,\"./_has\":71,\"./_hide\":72,\"./_uid\":112}],101:[function(require,module,exports){\nvar def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n},{\"./_has\":71,\"./_object-dp\":88,\"./_wks\":115}],102:[function(require,module,exports){\nvar shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n},{\"./_shared\":103,\"./_uid\":112}],103:[function(require,module,exports){\nvar core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n},{\"./_core\":60,\"./_global\":70,\"./_library\":85}],104:[function(require,module,exports){\n'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n\n},{\"./_fails\":69}],105:[function(require,module,exports){\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n},{\"./_defined\":63,\"./_to-integer\":107}],106:[function(require,module,exports){\nvar toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n},{\"./_to-integer\":107}],107:[function(require,module,exports){\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n},{}],108:[function(require,module,exports){\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n},{\"./_defined\":63,\"./_iobject\":75}],109:[function(require,module,exports){\n// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n},{\"./_to-integer\":107}],110:[function(require,module,exports){\n// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n},{\"./_defined\":63}],111:[function(require,module,exports){\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n},{\"./_is-object\":78}],112:[function(require,module,exports){\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n},{}],113:[function(require,module,exports){\nvar global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n},{\"./_core\":60,\"./_global\":70,\"./_library\":85,\"./_object-dp\":88,\"./_wks-ext\":114}],114:[function(require,module,exports){\nexports.f = require('./_wks');\n\n},{\"./_wks\":115}],115:[function(require,module,exports){\nvar store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n},{\"./_global\":70,\"./_shared\":103,\"./_uid\":112}],116:[function(require,module,exports){\nvar classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n},{\"./_classof\":58,\"./_core\":60,\"./_iterators\":84,\"./_wks\":115}],117:[function(require,module,exports){\n'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n\n},{\"./_add-to-unscopables\":52,\"./_array-methods\":55,\"./_export\":68}],118:[function(require,module,exports){\n'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n\n},{\"./_array-methods\":55,\"./_export\":68,\"./_strict-method\":104}],119:[function(require,module,exports){\n'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n},{\"./_create-property\":61,\"./_ctx\":62,\"./_export\":68,\"./_is-array-iter\":76,\"./_iter-call\":79,\"./_iter-detect\":82,\"./_to-length\":109,\"./_to-object\":110,\"./core.get-iterator-method\":116}],120:[function(require,module,exports){\n'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n\n},{\"./_array-includes\":54,\"./_export\":68,\"./_strict-method\":104}],121:[function(require,module,exports){\n'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n},{\"./_add-to-unscopables\":52,\"./_iter-define\":81,\"./_iter-step\":83,\"./_iterators\":84,\"./_to-iobject\":108}],122:[function(require,module,exports){\n'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n\n},{\"./_classof\":58,\"./_redefine\":100,\"./_wks\":115}],123:[function(require,module,exports){\n'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n},{\"./_iter-define\":81,\"./_string-at\":105}],124:[function(require,module,exports){\n'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n},{\"./_an-object\":53,\"./_descriptors\":64,\"./_enum-keys\":67,\"./_export\":68,\"./_fails\":69,\"./_global\":70,\"./_has\":71,\"./_hide\":72,\"./_is-array\":77,\"./_is-object\":78,\"./_library\":85,\"./_meta\":86,\"./_object-create\":87,\"./_object-dp\":88,\"./_object-gopd\":90,\"./_object-gopn\":92,\"./_object-gopn-ext\":91,\"./_object-gops\":93,\"./_object-keys\":96,\"./_object-pie\":97,\"./_property-desc\":99,\"./_redefine\":100,\"./_set-to-string-tag\":101,\"./_shared\":103,\"./_to-iobject\":108,\"./_to-primitive\":111,\"./_uid\":112,\"./_wks\":115,\"./_wks-define\":113,\"./_wks-ext\":114}],125:[function(require,module,exports){\n// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n\n},{\"./_export\":68,\"./_object-to-array\":98}],126:[function(require,module,exports){\nrequire('./_wks-define')('asyncIterator');\n\n},{\"./_wks-define\":113}],127:[function(require,module,exports){\nrequire('./_wks-define')('observable');\n\n},{\"./_wks-define\":113}],128:[function(require,module,exports){\nvar $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n},{\"./_global\":70,\"./_hide\":72,\"./_iterators\":84,\"./_object-keys\":96,\"./_redefine\":100,\"./_wks\":115,\"./es6.array.iterator\":121}],129:[function(require,module,exports){\n// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\n(function() {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n var ce = new window.CustomEvent('test', { cancelable: true });\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n } catch (e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n origPrevent = evt.preventDefault;\n evt.preventDefault = function() {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n } catch (e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n }\n})();\n\n},{}],130:[function(require,module,exports){\n/*!\nCopyright (C) 2013-2015 by Andrea Giammarchi - @WebReflection\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n(function(window){'use strict';\n /* jshint loopfunc: true, noempty: false*/\n // http://www.w3.org/TR/dom/#element\n\n function createDocumentFragment() {\n return document.createDocumentFragment();\n }\n\n function createElement(nodeName) {\n return document.createElement(nodeName);\n }\n\n function enoughArguments(length, name) {\n if (!length) throw new Error(\n 'Failed to construct ' +\n name +\n ': 1 argument required, but only 0 present.'\n );\n }\n\n function mutationMacro(nodes) {\n if (nodes.length === 1) {\n return textNodeIfString(nodes[0]);\n }\n for (var\n fragment = createDocumentFragment(),\n list = slice.call(nodes),\n i = 0; i < nodes.length; i++\n ) {\n fragment.appendChild(textNodeIfString(list[i]));\n }\n return fragment;\n }\n\n function textNodeIfString(node) {\n return typeof node === 'string' ? document.createTextNode(node) : node;\n }\n\n for(var\n head,\n property,\n TemporaryPrototype,\n TemporaryTokenList,\n wrapVerifyToken,\n document = window.document,\n hOP = Object.prototype.hasOwnProperty,\n defineProperty = Object.defineProperty || function (object, property, descriptor) {\n if (hOP.call(descriptor, 'value')) {\n object[property] = descriptor.value;\n } else {\n if (hOP.call(descriptor, 'get'))\n object.__defineGetter__(property, descriptor.get);\n if (hOP.call(descriptor, 'set'))\n object.__defineSetter__(property, descriptor.set);\n }\n return object;\n },\n indexOf = [].indexOf || function indexOf(value){\n var length = this.length;\n while(length--) {\n if (this[length] === value) {\n break;\n }\n }\n return length;\n },\n // http://www.w3.org/TR/domcore/#domtokenlist\n verifyToken = function (token) {\n if (!token) {\n throw 'SyntaxError';\n } else if (spaces.test(token)) {\n throw 'InvalidCharacterError';\n }\n return token;\n },\n DOMTokenList = function (node) {\n var\n noClassName = typeof node.className === 'undefined',\n className = noClassName ?\n (node.getAttribute('class') || '') : node.className,\n isSVG = noClassName || typeof className === 'object',\n value = (isSVG ?\n (noClassName ? className : className.baseVal) :\n className\n ).replace(trim, '')\n ;\n if (value.length) {\n properties.push.apply(\n this,\n value.split(spaces)\n );\n }\n this._isSVG = isSVG;\n this._ = node;\n },\n classListDescriptor = {\n get: function get() {\n return new DOMTokenList(this);\n },\n set: function(){}\n },\n trim = /^\\s+|\\s+$/g,\n spaces = /\\s+/,\n SPACE = '\\x20',\n CLASS_LIST = 'classList',\n toggle = function toggle(token, force) {\n if (this.contains(token)) {\n if (!force) {\n // force is not true (either false or omitted)\n this.remove(token);\n }\n } else if(force === undefined || force) {\n force = true;\n this.add(token);\n }\n return !!force;\n },\n DocumentFragmentPrototype = window.DocumentFragment && DocumentFragment.prototype,\n Node = window.Node,\n NodePrototype = (Node || Element).prototype,\n CharacterData = window.CharacterData || Node,\n CharacterDataPrototype = CharacterData && CharacterData.prototype,\n DocumentType = window.DocumentType,\n DocumentTypePrototype = DocumentType && DocumentType.prototype,\n ElementPrototype = (window.Element || Node || window.HTMLElement).prototype,\n HTMLSelectElement = window.HTMLSelectElement || createElement('select').constructor,\n selectRemove = HTMLSelectElement.prototype.remove,\n SVGElement = window.SVGElement,\n properties = [\n 'matches', (\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.khtmlMatchesSelector ||\n ElementPrototype.mozMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n ElementPrototype.oMatchesSelector ||\n function matches(selector) {\n var parentNode = this.parentNode;\n return !!parentNode && -1 < indexOf.call(\n parentNode.querySelectorAll(selector),\n this\n );\n }\n ),\n 'closest', function closest(selector) {\n var parentNode = this, matches;\n while (\n // document has no .matches\n (matches = parentNode && parentNode.matches) &&\n !parentNode.matches(selector)\n ) {\n parentNode = parentNode.parentNode;\n }\n return matches ? parentNode : null;\n },\n 'prepend', function prepend() {\n var firstChild = this.firstChild,\n node = mutationMacro(arguments);\n if (firstChild) {\n this.insertBefore(node, firstChild);\n } else {\n this.appendChild(node);\n }\n },\n 'append', function append() {\n this.appendChild(mutationMacro(arguments));\n },\n 'before', function before() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.insertBefore(\n mutationMacro(arguments), this\n );\n }\n },\n 'after', function after() {\n var parentNode = this.parentNode,\n nextSibling = this.nextSibling,\n node = mutationMacro(arguments);\n if (parentNode) {\n if (nextSibling) {\n parentNode.insertBefore(node, nextSibling);\n } else {\n parentNode.appendChild(node);\n }\n }\n },\n // https://dom.spec.whatwg.org/#dom-element-toggleattribute\n 'toggleAttribute', function toggleAttribute(name, force) {\n var had = this.hasAttribute(name);\n if (1 < arguments.length) {\n if (had && !force)\n this.removeAttribute(name);\n else if (force && !had)\n this.setAttribute(name, \"\");\n }\n else if (had)\n this.removeAttribute(name);\n else\n this.setAttribute(name, \"\");\n return this.hasAttribute(name);\n },\n // WARNING - DEPRECATED - use .replaceWith() instead\n 'replace', function replace() {\n this.replaceWith.apply(this, arguments);\n },\n 'replaceWith', function replaceWith() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.replaceChild(\n mutationMacro(arguments),\n this\n );\n }\n },\n 'remove', function remove() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.removeChild(this);\n }\n }\n ],\n slice = properties.slice,\n i = properties.length; i; i -= 2\n ) {\n property = properties[i - 2];\n if (!(property in ElementPrototype)) {\n ElementPrototype[property] = properties[i - 1];\n }\n // avoid unnecessary re-patch when the script is included\n // gazillion times without any reason whatsoever\n // https://github.com/WebReflection/dom4/pull/48\n if (property === 'remove' && !selectRemove._dom4) {\n // see https://github.com/WebReflection/dom4/issues/19\n (HTMLSelectElement.prototype[property] = function () {\n return 0 < arguments.length ?\n selectRemove.apply(this, arguments) :\n ElementPrototype.remove.call(this);\n })._dom4 = true;\n }\n // see https://github.com/WebReflection/dom4/issues/18\n if (/^(?:before|after|replace|replaceWith|remove)$/.test(property)) {\n if (CharacterData && !(property in CharacterDataPrototype)) {\n CharacterDataPrototype[property] = properties[i - 1];\n }\n if (DocumentType && !(property in DocumentTypePrototype)) {\n DocumentTypePrototype[property] = properties[i - 1];\n }\n }\n // see https://github.com/WebReflection/dom4/pull/26\n if (/^(?:append|prepend)$/.test(property)) {\n if (DocumentFragmentPrototype) {\n if (!(property in DocumentFragmentPrototype)) {\n DocumentFragmentPrototype[property] = properties[i - 1];\n }\n } else {\n try {\n createDocumentFragment().constructor.prototype[property] = properties[i - 1];\n } catch(o_O) {}\n }\n }\n }\n\n // most likely an IE9 only issue\n // see https://github.com/WebReflection/dom4/issues/6\n if (!createElement('a').matches('a')) {\n ElementPrototype[property] = function(matches){\n return function (selector) {\n return matches.call(\n this.parentNode ?\n this :\n createDocumentFragment().appendChild(this),\n selector\n );\n };\n }(ElementPrototype[property]);\n }\n\n // used to fix both old webkit and SVG\n DOMTokenList.prototype = {\n length: 0,\n add: function add() {\n for(var j = 0, token; j < arguments.length; j++) {\n token = arguments[j];\n if(!this.contains(token)) {\n properties.push.call(this, property);\n }\n }\n if (this._isSVG) {\n this._.setAttribute('class', '' + this);\n } else {\n this._.className = '' + this;\n }\n },\n contains: (function(indexOf){\n return function contains(token) {\n i = indexOf.call(this, property = verifyToken(token));\n return -1 < i;\n };\n }([].indexOf || function (token) {\n i = this.length;\n while(i-- && this[i] !== token){}\n return i;\n })),\n item: function item(i) {\n return this[i] || null;\n },\n remove: function remove() {\n for(var j = 0, token; j < arguments.length; j++) {\n token = arguments[j];\n if(this.contains(token)) {\n properties.splice.call(this, i, 1);\n }\n }\n if (this._isSVG) {\n this._.setAttribute('class', '' + this);\n } else {\n this._.className = '' + this;\n }\n },\n toggle: toggle,\n toString: function toString() {\n return properties.join.call(this, SPACE);\n }\n };\n\n if (SVGElement && !(CLASS_LIST in SVGElement.prototype)) {\n defineProperty(SVGElement.prototype, CLASS_LIST, classListDescriptor);\n }\n\n // http://www.w3.org/TR/dom/#domtokenlist\n // iOS 5.1 has completely screwed this property\n // classList in ElementPrototype is false\n // but it's actually there as getter\n if (!(CLASS_LIST in document.documentElement)) {\n defineProperty(ElementPrototype, CLASS_LIST, classListDescriptor);\n } else {\n // iOS 5.1 and Nokia ASHA do not support multiple add or remove\n // trying to detect and fix that in here\n TemporaryTokenList = createElement('div')[CLASS_LIST];\n TemporaryTokenList.add('a', 'b', 'a');\n if ('a\\x20b' != TemporaryTokenList) {\n // no other way to reach original methods in iOS 5.1\n TemporaryPrototype = TemporaryTokenList.constructor.prototype;\n if (!('add' in TemporaryPrototype)) {\n // ASHA double fails in here\n TemporaryPrototype = window.TemporaryTokenList.prototype;\n }\n wrapVerifyToken = function (original) {\n return function () {\n var i = 0;\n while (i < arguments.length) {\n original.call(this, arguments[i++]);\n }\n };\n };\n TemporaryPrototype.add = wrapVerifyToken(TemporaryPrototype.add);\n TemporaryPrototype.remove = wrapVerifyToken(TemporaryPrototype.remove);\n // toggle is broken too ^_^ ... let's fix it\n TemporaryPrototype.toggle = toggle;\n }\n }\n\n if (!('contains' in NodePrototype)) {\n defineProperty(NodePrototype, 'contains', {\n value: function (el) {\n while (el && el !== this) el = el.parentNode;\n return this === el;\n }\n });\n }\n\n if (!('head' in document)) {\n defineProperty(document, 'head', {\n get: function () {\n return head || (\n head = document.getElementsByTagName('head')[0]\n );\n }\n });\n }\n\n // requestAnimationFrame partial polyfill\n (function () {\n for (var\n raf,\n rAF = window.requestAnimationFrame,\n cAF = window.cancelAnimationFrame,\n prefixes = ['o', 'ms', 'moz', 'webkit'],\n i = prefixes.length;\n !cAF && i--;\n ) {\n rAF = rAF || window[prefixes[i] + 'RequestAnimationFrame'];\n cAF = window[prefixes[i] + 'CancelAnimationFrame'] ||\n window[prefixes[i] + 'CancelRequestAnimationFrame'];\n }\n if (!cAF) {\n // some FF apparently implemented rAF but no cAF \n if (rAF) {\n raf = rAF;\n rAF = function (callback) {\n var goOn = true;\n raf(function () {\n if (goOn) callback.apply(this, arguments);\n });\n return function () {\n goOn = false;\n };\n };\n cAF = function (id) {\n id();\n };\n } else {\n rAF = function (callback) {\n return setTimeout(callback, 15, 15);\n };\n cAF = function (id) {\n clearTimeout(id);\n };\n }\n }\n window.requestAnimationFrame = rAF;\n window.cancelAnimationFrame = cAF;\n }());\n\n // http://www.w3.org/TR/dom/#customevent\n try{new window.CustomEvent('?');}catch(o_O){\n window.CustomEvent = function(\n eventName,\n defaultInitDict\n ){\n\n // the infamous substitute\n function CustomEvent(type, eventInitDict) {\n /*jshint eqnull:true */\n var event = document.createEvent(eventName);\n if (typeof type != 'string') {\n throw new Error('An event name must be provided');\n }\n if (eventName == 'Event') {\n event.initCustomEvent = initCustomEvent;\n }\n if (eventInitDict == null) {\n eventInitDict = defaultInitDict;\n }\n event.initCustomEvent(\n type,\n eventInitDict.bubbles,\n eventInitDict.cancelable,\n eventInitDict.detail\n );\n return event;\n }\n\n // attached at runtime\n function initCustomEvent(\n type, bubbles, cancelable, detail\n ) {\n /*jshint validthis:true*/\n this.initEvent(type, bubbles, cancelable);\n this.detail = detail;\n }\n\n // that's it\n return CustomEvent;\n }(\n // is this IE9 or IE10 ?\n // where CustomEvent is there\n // but not usable as construtor ?\n window.CustomEvent ?\n // use the CustomEvent interface in such case\n 'CustomEvent' : 'Event',\n // otherwise the common compatible one\n {\n bubbles: false,\n cancelable: false,\n detail: null\n }\n );\n }\n\n // window.Event as constructor\n try { new Event('_'); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($Event) {\n function Event(type, init) {\n enoughArguments(arguments.length, 'Event');\n var out = document.createEvent('Event');\n if (!init) init = {};\n out.initEvent(\n type,\n !!init.bubbles,\n !!init.cancelable\n );\n return out;\n }\n Event.prototype = $Event.prototype;\n return Event;\n }(window.Event || function Event() {}));\n defineProperty(window, 'Event', {value: o_O});\n // Android 4 gotcha\n if (Event !== o_O) Event = o_O;\n }\n\n // window.KeyboardEvent as constructor\n try { new KeyboardEvent('_', {}); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($KeyboardEvent) {\n // code inspired by https://gist.github.com/termi/4654819\n var\n initType = 0,\n defaults = {\n char: '',\n key: '',\n location: 0,\n ctrlKey: false,\n shiftKey: false,\n altKey: false,\n metaKey: false,\n altGraphKey: false,\n repeat: false,\n locale: navigator.language,\n detail: 0,\n bubbles: false,\n cancelable: false,\n keyCode: 0,\n charCode: 0,\n which: 0\n },\n eventType\n ;\n try {\n var e = document.createEvent('KeyboardEvent');\n e.initKeyboardEvent(\n 'keyup', false, false, window, '+', 3,\n true, false, true, false, false\n );\n initType = (\n (e.keyIdentifier || e.key) == '+' &&\n (e.keyLocation || e.location) == 3\n ) && (\n e.ctrlKey ? e.altKey ? 1 : 3 : e.shiftKey ? 2 : 4\n ) || 9;\n } catch(o_O) {}\n eventType = 0 < initType ? 'KeyboardEvent' : 'Event';\n\n function getModifier(init) {\n for (var\n out = [],\n keys = [\n 'ctrlKey',\n 'Control',\n 'shiftKey',\n 'Shift',\n 'altKey',\n 'Alt',\n 'metaKey',\n 'Meta',\n 'altGraphKey',\n 'AltGraph'\n ],\n i = 0; i < keys.length; i += 2\n ) {\n if (init[keys[i]])\n out.push(keys[i + 1]);\n }\n return out.join(' ');\n }\n\n function withDefaults(target, source) {\n for (var key in source) {\n if (\n source.hasOwnProperty(key) &&\n !source.hasOwnProperty.call(target, key)\n ) target[key] = source[key];\n }\n return target;\n }\n\n function withInitValues(key, out, init) {\n try {\n out[key] = init[key];\n } catch(o_O) {}\n }\n\n function KeyboardEvent(type, init) {\n enoughArguments(arguments.length, 'KeyboardEvent');\n init = withDefaults(init || {}, defaults);\n var\n out = document.createEvent(eventType),\n ctrlKey = init.ctrlKey,\n shiftKey = init.shiftKey,\n altKey = init.altKey,\n metaKey = init.metaKey,\n altGraphKey = init.altGraphKey,\n modifiers = initType > 3 ? getModifier(init) : null,\n key = String(init.key),\n chr = String(init.char),\n location = init.location,\n keyCode = init.keyCode || (\n (init.keyCode = key) &&\n key.charCodeAt(0)\n ) || 0,\n charCode = init.charCode || (\n (init.charCode = chr) &&\n chr.charCodeAt(0)\n ) || 0,\n bubbles = init.bubbles,\n cancelable = init.cancelable,\n repeat = init.repeat,\n locale = init.locale,\n view = init.view || window,\n args\n ;\n if (!init.which) init.which = init.keyCode;\n if ('initKeyEvent' in out) {\n out.initKeyEvent(\n type, bubbles, cancelable, view,\n ctrlKey, altKey, shiftKey, metaKey, keyCode, charCode\n );\n } else if (0 < initType && 'initKeyboardEvent' in out) {\n args = [type, bubbles, cancelable, view];\n switch (initType) {\n case 1:\n args.push(key, location, ctrlKey, shiftKey, altKey, metaKey, altGraphKey);\n break;\n case 2:\n args.push(ctrlKey, altKey, shiftKey, metaKey, keyCode, charCode);\n break;\n case 3:\n args.push(key, location, ctrlKey, altKey, shiftKey, metaKey, altGraphKey);\n break;\n case 4:\n args.push(key, location, modifiers, repeat, locale);\n break;\n default:\n args.push(char, key, location, modifiers, repeat, locale);\n }\n out.initKeyboardEvent.apply(out, args);\n } else {\n out.initEvent(type, bubbles, cancelable);\n }\n for (key in out) {\n if (defaults.hasOwnProperty(key) && out[key] !== init[key]) {\n withInitValues(key, out, init);\n }\n }\n return out;\n }\n KeyboardEvent.prototype = $KeyboardEvent.prototype;\n return KeyboardEvent;\n }(window.KeyboardEvent || function KeyboardEvent() {}));\n defineProperty(window, 'KeyboardEvent', {value: o_O});\n // Android 4 gotcha\n if (KeyboardEvent !== o_O) KeyboardEvent = o_O;\n }\n\n // window.MouseEvent as constructor\n try { new MouseEvent('_', {}); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($MouseEvent) {\n function MouseEvent(type, init) {\n enoughArguments(arguments.length, 'MouseEvent');\n var out = document.createEvent('MouseEvent');\n if (!init) init = {};\n out.initMouseEvent(\n type,\n !!init.bubbles,\n !!init.cancelable,\n init.view || window,\n init.detail || 1,\n init.screenX || 0,\n init.screenY || 0,\n init.clientX || 0,\n init.clientY || 0,\n !!init.ctrlKey,\n !!init.altKey,\n !!init.shiftKey,\n !!init.metaKey,\n init.button || 0,\n init.relatedTarget || null\n );\n return out;\n }\n MouseEvent.prototype = $MouseEvent.prototype;\n return MouseEvent;\n }(window.MouseEvent || function MouseEvent() {}));\n defineProperty(window, 'MouseEvent', {value: o_O});\n // Android 4 gotcha\n if (MouseEvent !== o_O) MouseEvent = o_O;\n }\n\n if (!document.querySelectorAll('*').forEach) {\n (function () {\n function patch(what) {\n var querySelectorAll = what.querySelectorAll;\n what.querySelectorAll = function qSA(css) {\n var result = querySelectorAll.call(this, css);\n result.forEach = Array.prototype.forEach;\n return result;\n };\n }\n patch(document);\n patch(Element.prototype);\n }());\n }\n\n try {\n // https://drafts.csswg.org/selectors-4/#the-scope-pseudo\n document.querySelector(':scope *');\n } catch(o_O) {\n (function () {\n var dataScope = 'data-scope-' + (Math.random() * 1e9 >>> 0);\n var proto = Element.prototype;\n var querySelector = proto.querySelector;\n var querySelectorAll = proto.querySelectorAll;\n proto.querySelector = function qS(css) {\n return find(this, querySelector, css);\n };\n proto.querySelectorAll = function qSA(css) {\n return find(this, querySelectorAll, css);\n };\n function find(node, method, css) {\n node.setAttribute(dataScope, null);\n var result = method.call(\n node,\n String(css).replace(\n /(^|,\\s*)(:scope([ >]|$))/g,\n function ($0, $1, $2, $3) {\n return $1 + '[' + dataScope + ']' + ($3 || ' ');\n }\n )\n );\n node.removeAttribute(dataScope);\n return result;\n }\n }());\n }\n}(window));\n(function (global){'use strict';\n\n // a WeakMap fallback for DOM nodes only used as key\n var DOMMap = global.WeakMap || (function () {\n\n var\n counter = 0,\n dispatched = false,\n drop = false,\n value\n ;\n\n function dispatch(key, ce, shouldDrop) {\n drop = shouldDrop;\n dispatched = false;\n value = undefined;\n key.dispatchEvent(ce);\n }\n\n function Handler(value) {\n this.value = value;\n }\n\n Handler.prototype.handleEvent = function handleEvent(e) {\n dispatched = true;\n if (drop) {\n e.currentTarget.removeEventListener(e.type, this, false);\n } else {\n value = this.value;\n }\n };\n\n function DOMMap() {\n counter++; // make id clashing highly improbable\n this.__ce__ = new Event(('@DOMMap:' + counter) + Math.random());\n }\n\n DOMMap.prototype = {\n 'constructor': DOMMap,\n 'delete': function del(key) {\n return dispatch(key, this.__ce__, true), dispatched;\n },\n 'get': function get(key) {\n dispatch(key, this.__ce__, false);\n var v = value;\n value = undefined;\n return v;\n },\n 'has': function has(key) {\n return dispatch(key, this.__ce__, false), dispatched;\n },\n 'set': function set(key, value) {\n dispatch(key, this.__ce__, true);\n key.addEventListener(this.__ce__.type, new Handler(value), false);\n return this;\n },\n };\n\n return DOMMap;\n\n }());\n\n function Dict() {}\n Dict.prototype = (Object.create || Object)(null);\n\n // https://dom.spec.whatwg.org/#interface-eventtarget\n\n function createEventListener(type, callback, options) {\n function eventListener(e) {\n if (eventListener.once) {\n e.currentTarget.removeEventListener(\n e.type,\n callback,\n eventListener\n );\n eventListener.removed = true;\n }\n if (eventListener.passive) {\n e.preventDefault = createEventListener.preventDefault;\n }\n if (typeof eventListener.callback === 'function') {\n /* jshint validthis: true */\n eventListener.callback.call(this, e);\n } else if (eventListener.callback) {\n eventListener.callback.handleEvent(e);\n }\n if (eventListener.passive) {\n delete e.preventDefault;\n }\n }\n eventListener.type = type;\n eventListener.callback = callback;\n eventListener.capture = !!options.capture;\n eventListener.passive = !!options.passive;\n eventListener.once = !!options.once;\n // currently pointless but specs say to use it, so ...\n eventListener.removed = false;\n return eventListener;\n }\n\n createEventListener.preventDefault = function preventDefault() {};\n\n var\n Event = global.CustomEvent,\n dE = global.dispatchEvent,\n aEL = global.addEventListener,\n rEL = global.removeEventListener,\n counter = 0,\n increment = function () { counter++; },\n indexOf = [].indexOf || function indexOf(value){\n var length = this.length;\n while(length--) {\n if (this[length] === value) {\n break;\n }\n }\n return length;\n },\n getListenerKey = function (options) {\n return ''.concat(\n options.capture ? '1' : '0',\n options.passive ? '1' : '0',\n options.once ? '1' : '0'\n );\n },\n augment\n ;\n\n try {\n aEL('_', increment, {once: true});\n dE(new Event('_'));\n dE(new Event('_'));\n rEL('_', increment, {once: true});\n } catch(o_O) {}\n\n if (counter !== 1) {\n (function () {\n var dm = new DOMMap();\n function createAEL(aEL) {\n return function addEventListener(type, handler, options) {\n if (options && typeof options !== 'boolean') {\n var\n info = dm.get(this),\n key = getListenerKey(options),\n i, tmp, wrap\n ;\n if (!info) dm.set(this, (info = new Dict()));\n if (!(type in info)) info[type] = {\n handler: [],\n wrap: []\n };\n tmp = info[type];\n i = indexOf.call(tmp.handler, handler);\n if (i < 0) {\n i = tmp.handler.push(handler) - 1;\n tmp.wrap[i] = (wrap = new Dict());\n } else {\n wrap = tmp.wrap[i];\n }\n if (!(key in wrap)) {\n wrap[key] = createEventListener(type, handler, options);\n aEL.call(this, type, wrap[key], wrap[key].capture);\n }\n } else {\n aEL.call(this, type, handler, options);\n }\n };\n }\n function createREL(rEL) {\n return function removeEventListener(type, handler, options) {\n if (options && typeof options !== 'boolean') {\n var\n info = dm.get(this),\n key, i, tmp, wrap\n ;\n if (info && (type in info)) {\n tmp = info[type];\n i = indexOf.call(tmp.handler, handler);\n if (-1 < i) {\n key = getListenerKey(options);\n wrap = tmp.wrap[i];\n if (key in wrap) {\n rEL.call(this, type, wrap[key], wrap[key].capture);\n delete wrap[key];\n // return if there are other wraps\n for (key in wrap) return;\n // otherwise remove all the things\n tmp.handler.splice(i, 1);\n tmp.wrap.splice(i, 1);\n // if there are no other handlers\n if (tmp.handler.length === 0)\n // drop the info[type] entirely\n delete info[type];\n }\n }\n }\n } else {\n rEL.call(this, type, handler, options);\n }\n };\n }\n\n augment = function (Constructor) {\n if (!Constructor) return;\n var proto = Constructor.prototype;\n proto.addEventListener = createAEL(proto.addEventListener);\n proto.removeEventListener = createREL(proto.removeEventListener);\n };\n\n if (global.EventTarget) {\n augment(EventTarget);\n } else {\n augment(global.Text);\n augment(global.Element || global.HTMLElement);\n augment(global.HTMLDocument);\n augment(global.Window || {prototype:global});\n augment(global.XMLHttpRequest);\n }\n\n }());\n }\n\n}(self));\n\n},{}],131:[function(require,module,exports){\n/*! picturefill - v3.0.2 - 2016-02-12\n * https://scottjehl.github.io/picturefill/\n * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT\n */\n/*! Gecko-Picture - v1.0\n * https://github.com/scottjehl/picturefill/tree/3.0/src/plugins/gecko-picture\n * Firefox's early picture implementation (prior to FF41) is static and does\n * not react to viewport changes. This tiny module fixes this.\n */\n(function(window) {\n\t/*jshint eqnull:true */\n\tvar ua = navigator.userAgent;\n\n\tif ( window.HTMLPictureElement && ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 < 45) ) {\n\t\taddEventListener(\"resize\", (function() {\n\t\t\tvar timer;\n\n\t\t\tvar dummySrc = document.createElement(\"source\");\n\n\t\t\tvar fixRespimg = function(img) {\n\t\t\t\tvar source, sizes;\n\t\t\t\tvar picture = img.parentNode;\n\n\t\t\t\tif (picture.nodeName.toUpperCase() === \"PICTURE\") {\n\t\t\t\t\tsource = dummySrc.cloneNode();\n\n\t\t\t\t\tpicture.insertBefore(source, picture.firstElementChild);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpicture.removeChild(source);\n\t\t\t\t\t});\n\t\t\t\t} else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) {\n\t\t\t\t\timg._pfLastSize = img.offsetWidth;\n\t\t\t\t\tsizes = img.sizes;\n\t\t\t\t\timg.sizes += \",100vw\";\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\timg.sizes = sizes;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar findPictureImgs = function() {\n\t\t\t\tvar i;\n\t\t\t\tvar imgs = document.querySelectorAll(\"picture > img, img[srcset][sizes]\");\n\t\t\t\tfor (i = 0; i < imgs.length; i++) {\n\t\t\t\t\tfixRespimg(imgs[i]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onResize = function() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(findPictureImgs, 99);\n\t\t\t};\n\t\t\tvar mq = window.matchMedia && matchMedia(\"(orientation: landscape)\");\n\t\t\tvar init = function() {\n\t\t\t\tonResize();\n\n\t\t\t\tif (mq && mq.addListener) {\n\t\t\t\t\tmq.addListener(onResize);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdummySrc.srcset = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\n\t\t\tif (/^[c|i]|d$/.test(document.readyState || \"\")) {\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t\t\t}\n\n\t\t\treturn onResize;\n\t\t})());\n\t}\n})(window);\n\n/*! Picturefill - v3.0.2\n * http://scottjehl.github.io/picturefill\n * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt;\n * License: MIT\n */\n\n(function( window, document, undefined ) {\n\t// Enable strict mode\n\t\"use strict\";\n\n\t// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)\n\tdocument.createElement( \"picture\" );\n\n\tvar warn, eminpx, alwaysCheckWDescriptor, evalId;\n\t// local object for method references and testing exposure\n\tvar pf = {};\n\tvar isSupportTestReady = false;\n\tvar noop = function() {};\n\tvar image = document.createElement( \"img\" );\n\tvar getImgAttr = image.getAttribute;\n\tvar setImgAttr = image.setAttribute;\n\tvar removeImgAttr = image.removeAttribute;\n\tvar docElem = document.documentElement;\n\tvar types = {};\n\tvar cfg = {\n\t\t//resource selection:\n\t\talgorithm: \"\"\n\t};\n\tvar srcAttr = \"data-pfsrc\";\n\tvar srcsetAttr = srcAttr + \"set\";\n\t// ua sniffing is done for undetectable img loading features,\n\t// to do some non crucial perf optimizations\n\tvar ua = navigator.userAgent;\n\tvar supportAbort = (/rident/).test(ua) || ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 > 35 );\n\tvar curSrcProp = \"currentSrc\";\n\tvar regWDesc = /\\s+\\+?\\d+(e\\d+)?w/;\n\tvar regSize = /(\\([^)]+\\))?\\s*(.+)/;\n\tvar setOptions = window.picturefillCFG;\n\t/**\n\t * Shortcut property for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )\n\t */\n\t// baseStyle also used by getEmValue (i.e.: width: 1em is important)\n\tvar baseStyle = \"position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)\";\n\tvar fsCss = \"font-size:100%!important;\";\n\tvar isVwDirty = true;\n\n\tvar cssCache = {};\n\tvar sizeLengthCache = {};\n\tvar DPR = window.devicePixelRatio;\n\tvar units = {\n\t\tpx: 1,\n\t\t\"in\": 96\n\t};\n\tvar anchor = document.createElement( \"a\" );\n\t/**\n\t * alreadyRun flag used for setOptions. is it true setOptions will reevaluate\n\t * @type {boolean}\n\t */\n\tvar alreadyRun = false;\n\n\t// Reusable, non-\"g\" Regexes\n\n\t// (Don't use \\s, to avoid matching non-breaking space.)\n\tvar regexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t regexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t regexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t regexTrailingCommas = /[,]+$/,\n\t regexNonNegativeInteger = /^\\d+$/,\n\n\t // ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t // Must include at least one digit.\n\t // According to spec tests any decimal point must be followed by a digit.\n\t // No leading plus sign is allowed.)\n\t // https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\n\n\tvar on = function(obj, evt, fn, capture) {\n\t\tif ( obj.addEventListener ) {\n\t\t\tobj.addEventListener(evt, fn, capture || false);\n\t\t} else if ( obj.attachEvent ) {\n\t\t\tobj.attachEvent( \"on\" + evt, fn);\n\t\t}\n\t};\n\n\t/**\n\t * simple memoize function:\n\t */\n\n\tvar memoize = function(fn) {\n\t\tvar cache = {};\n\t\treturn function(input) {\n\t\t\tif ( !(input in cache) ) {\n\t\t\t\tcache[ input ] = fn(input);\n\t\t\t}\n\t\t\treturn cache[ input ];\n\t\t};\n\t};\n\n\t// UTILITY FUNCTIONS\n\n\t// Manual is faster than RegEx\n\t// http://jsperf.com/whitespace-character/5\n\tfunction isSpace(c) {\n\t\treturn (c === \"\\u0020\" || // space\n\t\t c === \"\\u0009\" || // horizontal tab\n\t\t c === \"\\u000A\" || // new line\n\t\t c === \"\\u000C\" || // form feed\n\t\t c === \"\\u000D\"); // carriage return\n\t}\n\n\t/**\n\t * gets a mediaquery and returns a boolean or gets a css length and returns a number\n\t * @param css mediaqueries or css length\n\t * @returns {boolean|number}\n\t *\n\t * based on: https://gist.github.com/jonathantneal/db4f77009b155f083738\n\t */\n\tvar evalCSS = (function() {\n\n\t\tvar regLength = /^([\\d\\.]+)(em|vw|px)$/;\n\t\tvar replace = function() {\n\t\t\tvar args = arguments, index = 0, string = args[0];\n\t\t\twhile (++index in args) {\n\t\t\t\tstring = string.replace(args[index], args[++index]);\n\t\t\t}\n\t\t\treturn string;\n\t\t};\n\n\t\tvar buildStr = memoize(function(css) {\n\n\t\t\treturn \"return \" + replace((css || \"\").toLowerCase(),\n\t\t\t\t// interpret `and`\n\t\t\t\t/\\band\\b/g, \"&&\",\n\n\t\t\t\t// interpret `,`\n\t\t\t\t/,/g, \"||\",\n\n\t\t\t\t// interpret `min-` as >=\n\t\t\t\t/min-([a-z-\\s]+):/g, \"e.$1>=\",\n\n\t\t\t\t// interpret `max-` as <=\n\t\t\t\t/max-([a-z-\\s]+):/g, \"e.$1<=\",\n\n\t\t\t\t//calc value\n\t\t\t\t/calc([^)]+)/g, \"($1)\",\n\n\t\t\t\t// interpret css values\n\t\t\t\t/(\\d+[\\.]*[\\d]*)([a-z]+)/g, \"($1 * e.$2)\",\n\t\t\t\t//make eval less evil\n\t\t\t\t/^(?!(e.[a-z]|[0-9\\.&=|><\\+\\-\\*\\(\\)\\/])).*/ig, \"\"\n\t\t\t) + \";\";\n\t\t});\n\n\t\treturn function(css, length) {\n\t\t\tvar parsedLength;\n\t\t\tif (!(css in cssCache)) {\n\t\t\t\tcssCache[css] = false;\n\t\t\t\tif (length && (parsedLength = css.match( regLength ))) {\n\t\t\t\t\tcssCache[css] = parsedLength[ 1 ] * units[parsedLength[ 2 ]];\n\t\t\t\t} else {\n\t\t\t\t\t/*jshint evil:true */\n\t\t\t\t\ttry{\n\t\t\t\t\t\tcssCache[css] = new Function(\"e\", buildStr(css))(units);\n\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t/*jshint evil:false */\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cssCache[css];\n\t\t};\n\t})();\n\n\tvar setResolution = function( candidate, sizesattr ) {\n\t\tif ( candidate.w ) { // h = means height: || descriptor.type === 'h' do not handle yet...\n\t\t\tcandidate.cWidth = pf.calcListLength( sizesattr || \"100vw\" );\n\t\t\tcandidate.res = candidate.w / candidate.cWidth ;\n\t\t} else {\n\t\t\tcandidate.res = candidate.d;\n\t\t}\n\t\treturn candidate;\n\t};\n\n\t/**\n\t *\n\t * @param opt\n\t */\n\tvar picturefill = function( opt ) {\n\n\t\tif (!isSupportTestReady) {return;}\n\n\t\tvar elements, i, plen;\n\n\t\tvar options = opt || {};\n\n\t\tif ( options.elements && options.elements.nodeType === 1 ) {\n\t\t\tif ( options.elements.nodeName.toUpperCase() === \"IMG\" ) {\n\t\t\t\toptions.elements = [ options.elements ];\n\t\t\t} else {\n\t\t\t\toptions.context = options.elements;\n\t\t\t\toptions.elements = null;\n\t\t\t}\n\t\t}\n\n\t\telements = options.elements || pf.qsa( (options.context || document), ( options.reevaluate || options.reselect ) ? pf.sel : pf.selShort );\n\n\t\tif ( (plen = elements.length) ) {\n\n\t\t\tpf.setupRun( options );\n\t\t\talreadyRun = true;\n\n\t\t\t// Loop through all elements\n\t\t\tfor ( i = 0; i < plen; i++ ) {\n\t\t\t\tpf.fillImg(elements[ i ], options);\n\t\t\t}\n\n\t\t\tpf.teardownRun( options );\n\t\t}\n\t};\n\n\t/**\n\t * outputs a warning for the developer\n\t * @param {message}\n\t * @type {Function}\n\t */\n\twarn = ( window.console && console.warn ) ?\n\t\tfunction( message ) {\n\t\t\tconsole.warn( message );\n\t\t} :\n\t\tnoop\n\t;\n\n\tif ( !(curSrcProp in image) ) {\n\t\tcurSrcProp = \"src\";\n\t}\n\n\t// Add support for standard mime types.\n\ttypes[ \"image/jpeg\" ] = true;\n\ttypes[ \"image/gif\" ] = true;\n\ttypes[ \"image/png\" ] = true;\n\n\tfunction detectTypeSupport( type, typeUri ) {\n\t\t// based on Modernizr's lossless img-webp test\n\t\t// note: asynchronous\n\t\tvar image = new window.Image();\n\t\timage.onerror = function() {\n\t\t\ttypes[ type ] = false;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.onload = function() {\n\t\t\ttypes[ type ] = image.width === 1;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.src = typeUri;\n\t\treturn \"pending\";\n\t}\n\n\t// test svg support\n\ttypes[ \"image/svg+xml\" ] = document.implementation.hasFeature( \"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\" );\n\n\t/**\n\t * updates the internal vW property with the current viewport width in px\n\t */\n\tfunction updateMetrics() {\n\n\t\tisVwDirty = false;\n\t\tDPR = window.devicePixelRatio;\n\t\tcssCache = {};\n\t\tsizeLengthCache = {};\n\n\t\tpf.DPR = DPR || 1;\n\n\t\tunits.width = Math.max(window.innerWidth || 0, docElem.clientWidth);\n\t\tunits.height = Math.max(window.innerHeight || 0, docElem.clientHeight);\n\n\t\tunits.vw = units.width / 100;\n\t\tunits.vh = units.height / 100;\n\n\t\tevalId = [ units.height, units.width, DPR ].join(\"-\");\n\n\t\tunits.em = pf.getEmValue();\n\t\tunits.rem = units.em;\n\t}\n\n\tfunction chooseLowRes( lowerValue, higherValue, dprValue, isCached ) {\n\t\tvar bonusFactor, tooMuch, bonus, meanDensity;\n\n\t\t//experimental\n\t\tif (cfg.algorithm === \"saveData\" ){\n\t\t\tif ( lowerValue > 2.7 ) {\n\t\t\t\tmeanDensity = dprValue + 1;\n\t\t\t} else {\n\t\t\t\ttooMuch = higherValue - dprValue;\n\t\t\t\tbonusFactor = Math.pow(lowerValue - 0.6, 1.5);\n\n\t\t\t\tbonus = tooMuch * bonusFactor;\n\n\t\t\t\tif (isCached) {\n\t\t\t\t\tbonus += 0.1 * bonusFactor;\n\t\t\t\t}\n\n\t\t\t\tmeanDensity = lowerValue + bonus;\n\t\t\t}\n\t\t} else {\n\t\t\tmeanDensity = (dprValue > 1) ?\n\t\t\t\tMath.sqrt(lowerValue * higherValue) :\n\t\t\t\tlowerValue;\n\t\t}\n\n\t\treturn meanDensity > dprValue;\n\t}\n\n\tfunction applyBestCandidate( img ) {\n\t\tvar srcSetCandidates;\n\t\tvar matchingSet = pf.getSet( img );\n\t\tvar evaluated = false;\n\t\tif ( matchingSet !== \"pending\" ) {\n\t\t\tevaluated = evalId;\n\t\t\tif ( matchingSet ) {\n\t\t\t\tsrcSetCandidates = pf.setRes( matchingSet );\n\t\t\t\tpf.applySetCandidate( srcSetCandidates, img );\n\t\t\t}\n\t\t}\n\t\timg[ pf.ns ].evaled = evaluated;\n\t}\n\n\tfunction ascendingSort( a, b ) {\n\t\treturn a.res - b.res;\n\t}\n\n\tfunction setSrcToCur( img, src, set ) {\n\t\tvar candidate;\n\t\tif ( !set && src ) {\n\t\t\tset = img[ pf.ns ].sets;\n\t\t\tset = set && set[set.length - 1];\n\t\t}\n\n\t\tcandidate = getCandidateForSrc(src, set);\n\n\t\tif ( candidate ) {\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\timg[ pf.ns ].curSrc = src;\n\t\t\timg[ pf.ns ].curCan = candidate;\n\n\t\t\tif ( !candidate.res ) {\n\t\t\t\tsetResolution( candidate, candidate.set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getCandidateForSrc( src, set ) {\n\t\tvar i, candidate, candidates;\n\t\tif ( src && set ) {\n\t\t\tcandidates = pf.parseSet( set );\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\tfor ( i = 0; i < candidates.length; i++ ) {\n\t\t\t\tif ( src === pf.makeUrl(candidates[ i ].url) ) {\n\t\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getAllSourceElements( picture, candidates ) {\n\t\tvar i, len, source, srcset;\n\n\t\t// SPEC mismatch intended for size and perf:\n\t\t// actually only source elements preceding the img should be used\n\t\t// also note: don't use qsa here, because IE8 sometimes doesn't like source as the key part in a selector\n\t\tvar sources = picture.getElementsByTagName( \"source\" );\n\n\t\tfor ( i = 0, len = sources.length; i < len; i++ ) {\n\t\t\tsource = sources[ i ];\n\t\t\tsource[ pf.ns ] = true;\n\t\t\tsrcset = source.getAttribute( \"srcset\" );\n\n\t\t\t// if source does not have a srcset attribute, skip\n\t\t\tif ( srcset ) {\n\t\t\t\tcandidates.push( {\n\t\t\t\t\tsrcset: srcset,\n\t\t\t\t\tmedia: source.getAttribute( \"media\" ),\n\t\t\t\t\ttype: source.getAttribute( \"type\" ),\n\t\t\t\t\tsizes: source.getAttribute( \"sizes\" )\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Srcset Parser\n\t * By Alex Bell | MIT License\n\t *\n\t * @returns Array [{url: _, d: _, w: _, h:_, set:_(????)}, ...]\n\t *\n\t * Based super duper closely on the reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n\t */\n\n\t// 1. Let input be the value passed to this algorithm.\n\t// (TO-DO : Explain what \"set\" argument is here. Maybe choose a more\n\t// descriptive & more searchable name. Since passing the \"set\" in really has\n\t// nothing to do with parsing proper, I would prefer this assignment eventually\n\t// go in an external fn.)\n\tfunction parseSrcset(input, set) {\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t match = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\t\t url,\n\t\t descriptors,\n\t\t currentDescriptor,\n\t\t state,\n\t\t c,\n\n\t\t // 2. Let position be a pointer into input, initially pointing at the start\n\t\t // of the string.\n\t\t pos = 0,\n\n\t\t // 3. Let candidates be an initially empty source set.\n\t\t candidates = [];\n\n\t\t/**\n\t\t* Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t* @return undefined\n\t\t*/\n\t\t// (Declared outside of the while loop so that it's only created once.\n\t\t// (This fn is defined before it is used, in order to pass JSHINT.\n\t\t// Unfortunately this breaks the sequencing of the spec comments. :/ )\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t// 10. Let width be absent.\n\t\t\t// 11. Let density be absent.\n\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t w, d, h, i,\n\t\t\t candidate = {},\n\t\t\t desc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tif (!h && !d && !w) {candidate.d = 1;}\n\t\t\t\tif (candidate.d === 1) {set.has1x = true;}\n\t\t\t\tcandidate.set = set;\n\n\t\t\t\tcandidates.push(candidate);\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t\t/**\n\t\t* Tokenizes descriptor properties prior to parsing\n\t\t* Returns undefined.\n\t\t* (Again, this fn is defined before it is used, in order to pass JSHINT.\n\t\t* Unfortunately this breaks the logical sequencing of the spec comments. :/ )\n\t\t*/\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t // Space character\n\t\t\t\t // If current descriptor is not empty, append current descriptor to\n\t\t\t\t // descriptors and let current descriptor be the empty string.\n\t\t\t\t // Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\t}\n\n\t/*\n\t * Sizes Parser\n\t *\n\t * By Alex Bell | MIT License\n\t *\n\t * Non-strict but accurate and lightweight JS Parser for the string value \n\t *\n\t * Reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-sizes-attribute\n\t *\n\t * Most comments are copied in directly from the spec\n\t * (except for comments in parens).\n\t *\n\t * Grammar is:\n\t * = # [ , ]? | \n\t * = \n\t * = \n\t * http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-img-sizes\n\t *\n\t * E.g. \"(max-width: 30em) 100vw, (max-width: 50em) 70vw, 100vw\"\n\t * or \"(min-width: 30em), calc(30vw - 15px)\" or just \"30vw\"\n\t *\n\t * Returns the first valid with a media condition that evaluates to true,\n\t * or \"100vw\" if all valid media conditions evaluate to false.\n\t *\n\t */\n\n\tfunction parseSizes(strValue) {\n\n\t\t// (Percentage CSS lengths are not allowed in this case, to avoid confusion:\n\t\t// https://html.spec.whatwg.org/multipage/embedded-content.html#valid-source-size-list\n\t\t// CSS allows a single optional plus or minus sign:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#numbers\n\t\t// CSS is ASCII case-insensitive:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#characters )\n\t\t// Spec allows exponential notation for type:\n\t\t// http://dev.w3.org/csswg/css-values/#numbers\n\t\tvar regexCssLengthWithUnits = /^(?:[+-]?[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i;\n\n\t\t// (This is a quick and lenient test. Because of optional unlimited-depth internal\n\t\t// grouping parens and strict spacing rules, this could get very complicated.)\n\t\tvar regexCssCalc = /^calc\\((?:[0-9a-z \\.\\+\\-\\*\\/\\(\\)]+)\\)$/i;\n\n\t\tvar i;\n\t\tvar unparsedSizesList;\n\t\tvar unparsedSizesListLength;\n\t\tvar unparsedSize;\n\t\tvar lastComponentValue;\n\t\tvar size;\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// (Toy CSS parser. The goals here are:\n\t\t// 1) expansive test coverage without the weight of a full CSS parser.\n\t\t// 2) Avoiding regex wherever convenient.\n\t\t// Quick tests: http://jsfiddle.net/gtntL4gr/3/\n\t\t// Returns an array of arrays.)\n\t\tfunction parseComponentValues(str) {\n\t\t\tvar chrctr;\n\t\t\tvar component = \"\";\n\t\t\tvar componentArray = [];\n\t\t\tvar listArray = [];\n\t\t\tvar parenDepth = 0;\n\t\t\tvar pos = 0;\n\t\t\tvar inComment = false;\n\n\t\t\tfunction pushComponent() {\n\t\t\t\tif (component) {\n\t\t\t\t\tcomponentArray.push(component);\n\t\t\t\t\tcomponent = \"\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction pushComponentArray() {\n\t\t\t\tif (componentArray[0]) {\n\t\t\t\t\tlistArray.push(componentArray);\n\t\t\t\t\tcomponentArray = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// (Loop forwards from the beginning of the string.)\n\t\t\twhile (true) {\n\t\t\t\tchrctr = str.charAt(pos);\n\n\t\t\t\tif (chrctr === \"\") { // ( End of string reached.)\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\treturn listArray;\n\t\t\t\t} else if (inComment) {\n\t\t\t\t\tif ((chrctr === \"*\") && (str[pos + 1] === \"/\")) { // (At end of a comment.)\n\t\t\t\t\t\tinComment = false;\n\t\t\t\t\t\tpos += 2;\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpos += 1; // (Skip all characters inside comments.)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (isSpace(chrctr)) {\n\t\t\t\t\t// (If previous character in loop was also a space, or if\n\t\t\t\t\t// at the beginning of the string, do not add space char to\n\t\t\t\t\t// component.)\n\t\t\t\t\tif ( (str.charAt(pos - 1) && isSpace( str.charAt(pos - 1) ) ) || !component ) {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (parenDepth === 0) {\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tpos +=1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// (Replace any space character with a plain space for legibility.)\n\t\t\t\t\t\tchrctr = \" \";\n\t\t\t\t\t}\n\t\t\t\t} else if (chrctr === \"(\") {\n\t\t\t\t\tparenDepth += 1;\n\t\t\t\t} else if (chrctr === \")\") {\n\t\t\t\t\tparenDepth -= 1;\n\t\t\t\t} else if (chrctr === \",\") {\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ( (chrctr === \"/\") && (str.charAt(pos + 1) === \"*\") ) {\n\t\t\t\t\tinComment = true;\n\t\t\t\t\tpos += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcomponent = component + chrctr;\n\t\t\t\tpos += 1;\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNonNegativeSourceSizeValue(s) {\n\t\t\tif (regexCssLengthWithUnits.test(s) && (parseFloat(s) >= 0)) {return true;}\n\t\t\tif (regexCssCalc.test(s)) {return true;}\n\t\t\t// ( http://www.w3.org/TR/CSS2/syndata.html#numbers says:\n\t\t\t// \"-0 is equivalent to 0 and is not a negative number.\" which means that\n\t\t\t// unitless zero and unitless negative zero must be accepted as special cases.)\n\t\t\tif ((s === \"0\") || (s === \"-0\") || (s === \"+0\")) {return true;}\n\t\t\treturn false;\n\t\t}\n\n\t\t// When asked to parse a sizes attribute from an element, parse a\n\t\t// comma-separated list of component values from the value of the element's\n\t\t// sizes attribute (or the empty string, if the attribute is absent), and let\n\t\t// unparsed sizes list be the result.\n\t\t// http://dev.w3.org/csswg/css-syntax/#parse-comma-separated-list-of-component-values\n\n\t\tunparsedSizesList = parseComponentValues(strValue);\n\t\tunparsedSizesListLength = unparsedSizesList.length;\n\n\t\t// For each unparsed size in unparsed sizes list:\n\t\tfor (i = 0; i < unparsedSizesListLength; i++) {\n\t\t\tunparsedSize = unparsedSizesList[i];\n\n\t\t\t// 1. Remove all consecutive s from the end of unparsed size.\n\t\t\t// ( parseComponentValues() already omits spaces outside of parens. )\n\n\t\t\t// If unparsed size is now empty, that is a parse error; continue to the next\n\t\t\t// iteration of this algorithm.\n\t\t\t// ( parseComponentValues() won't push an empty array. )\n\n\t\t\t// 2. If the last component value in unparsed size is a valid non-negative\n\t\t\t// , let size be its value and remove the component value\n\t\t\t// from unparsed size. Any CSS function other than the calc() function is\n\t\t\t// invalid. Otherwise, there is a parse error; continue to the next iteration\n\t\t\t// of this algorithm.\n\t\t\t// http://dev.w3.org/csswg/css-syntax/#parse-component-value\n\t\t\tlastComponentValue = unparsedSize[unparsedSize.length - 1];\n\n\t\t\tif (isValidNonNegativeSourceSizeValue(lastComponentValue)) {\n\t\t\t\tsize = lastComponentValue;\n\t\t\t\tunparsedSize.pop();\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 3. Remove all consecutive s from the end of unparsed\n\t\t\t// size. If unparsed size is now empty, return size and exit this algorithm.\n\t\t\t// If this was not the last item in unparsed sizes list, that is a parse error.\n\t\t\tif (unparsedSize.length === 0) {\n\t\t\t\treturn size;\n\t\t\t}\n\n\t\t\t// 4. Parse the remaining component values in unparsed size as a\n\t\t\t// . If it does not parse correctly, or it does parse\n\t\t\t// correctly but the evaluates to false, continue to the\n\t\t\t// next iteration of this algorithm.\n\t\t\t// (Parsing all possible compound media conditions in JS is heavy, complicated,\n\t\t\t// and the payoff is unclear. Is there ever an situation where the\n\t\t\t// media condition parses incorrectly but still somehow evaluates to true?\n\t\t\t// Can we just rely on the browser/polyfill to do it?)\n\t\t\tunparsedSize = unparsedSize.join(\" \");\n\t\t\tif (!(pf.matchesMedia( unparsedSize ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 5. Return size and exit this algorithm.\n\t\t\treturn size;\n\t\t}\n\n\t\t// If the above algorithm exhausts unparsed sizes list without returning a\n\t\t// size value, return 100vw.\n\t\treturn \"100vw\";\n\t}\n\n\t// namespace\n\tpf.ns = (\"pf\" + new Date().getTime()).substr(0, 9);\n\n\t// srcset support test\n\tpf.supSrcset = \"srcset\" in image;\n\tpf.supSizes = \"sizes\" in image;\n\tpf.supPicture = !!window.HTMLPictureElement;\n\n\t// UC browser does claim to support srcset and picture, but not sizes,\n\t// this extended test reveals the browser does support nothing\n\tif (pf.supSrcset && pf.supPicture && !pf.supSizes) {\n\t\t(function(image2) {\n\t\t\timage.srcset = \"data:,a\";\n\t\t\timage2.src = \"data:,a\";\n\t\t\tpf.supSrcset = image.complete === image2.complete;\n\t\t\tpf.supPicture = pf.supSrcset && pf.supPicture;\n\t\t})(document.createElement(\"img\"));\n\t}\n\n\t// Safari9 has basic support for sizes, but does't expose the `sizes` idl attribute\n\tif (pf.supSrcset && !pf.supSizes) {\n\n\t\t(function() {\n\t\t\tvar width2 = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\";\n\t\t\tvar width1 = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\t\t\tvar img = document.createElement(\"img\");\n\t\t\tvar test = function() {\n\t\t\t\tvar width = img.width;\n\n\t\t\t\tif (width === 2) {\n\t\t\t\t\tpf.supSizes = true;\n\t\t\t\t}\n\n\t\t\t\talwaysCheckWDescriptor = pf.supSrcset && !pf.supSizes;\n\n\t\t\t\tisSupportTestReady = true;\n\t\t\t\t// force async\n\t\t\t\tsetTimeout(picturefill);\n\t\t\t};\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\t\t\timg.setAttribute(\"sizes\", \"9px\");\n\n\t\t\timg.srcset = width1 + \" 1w,\" + width2 + \" 9w\";\n\t\t\timg.src = width1;\n\t\t})();\n\n\t} else {\n\t\tisSupportTestReady = true;\n\t}\n\n\t// using pf.qsa instead of dom traversing does scale much better,\n\t// especially on sites mixing responsive and non-responsive images\n\tpf.selShort = \"picture>img,img[srcset]\";\n\tpf.sel = pf.selShort;\n\tpf.cfg = cfg;\n\n\t/**\n\t * Shortcut property for `devicePixelRatio` ( for easy overriding in tests )\n\t */\n\tpf.DPR = (DPR || 1 );\n\tpf.u = units;\n\n\t// container of supported mime types that one might need to qualify before using\n\tpf.types = types;\n\n\tpf.setSize = noop;\n\n\t/**\n\t * Gets a string and returns the absolute URL\n\t * @param src\n\t * @returns {String} absolute URL\n\t */\n\n\tpf.makeUrl = memoize(function(src) {\n\t\tanchor.href = src;\n\t\treturn anchor.href;\n\t});\n\n\t/**\n\t * Gets a DOM element or document and a selctor and returns the found matches\n\t * Can be extended with jQuery/Sizzle for IE7 support\n\t * @param context\n\t * @param sel\n\t * @returns {NodeList|Array}\n\t */\n\tpf.qsa = function(context, sel) {\n\t\treturn ( \"querySelector\" in context ) ? context.querySelectorAll(sel) : [];\n\t};\n\n\t/**\n\t * Shortcut method for matchMedia ( for easy overriding in tests )\n\t * wether native or pf.mMQ is used will be decided lazy on first call\n\t * @returns {boolean}\n\t */\n\tpf.matchesMedia = function() {\n\t\tif ( window.matchMedia && (matchMedia( \"(min-width: 0.1em)\" ) || {}).matches ) {\n\t\t\tpf.matchesMedia = function( media ) {\n\t\t\t\treturn !media || ( matchMedia( media ).matches );\n\t\t\t};\n\t\t} else {\n\t\t\tpf.matchesMedia = pf.mMQ;\n\t\t}\n\n\t\treturn pf.matchesMedia.apply( this, arguments );\n\t};\n\n\t/**\n\t * A simplified matchMedia implementation for IE8 and IE9\n\t * handles only min-width/max-width with px or em values\n\t * @param media\n\t * @returns {boolean}\n\t */\n\tpf.mMQ = function( media ) {\n\t\treturn media ? evalCSS(media) : true;\n\t};\n\n\t/**\n\t * Returns the calculated length in css pixel from the given sourceSizeValue\n\t * http://dev.w3.org/csswg/css-values-3/#length-value\n\t * intended Spec mismatches:\n\t * * Does not check for invalid use of CSS functions\n\t * * Does handle a computed length of 0 the same as a negative and therefore invalid value\n\t * @param sourceSizeValue\n\t * @returns {Number}\n\t */\n\tpf.calcLength = function( sourceSizeValue ) {\n\n\t\tvar value = evalCSS(sourceSizeValue, true) || false;\n\t\tif (value < 0) {\n\t\t\tvalue = false;\n\t\t}\n\n\t\treturn value;\n\t};\n\n\t/**\n\t * Takes a type string and checks if its supported\n\t */\n\n\tpf.supportsType = function( type ) {\n\t\treturn ( type ) ? types[ type ] : true;\n\t};\n\n\t/**\n\t * Parses a sourceSize into mediaCondition (media) and sourceSizeValue (length)\n\t * @param sourceSizeStr\n\t * @returns {*}\n\t */\n\tpf.parseSize = memoize(function( sourceSizeStr ) {\n\t\tvar match = ( sourceSizeStr || \"\" ).match(regSize);\n\t\treturn {\n\t\t\tmedia: match && match[1],\n\t\t\tlength: match && match[2]\n\t\t};\n\t});\n\n\tpf.parseSet = function( set ) {\n\t\tif ( !set.cands ) {\n\t\t\tset.cands = parseSrcset(set.srcset, set);\n\t\t}\n\t\treturn set.cands;\n\t};\n\n\t/**\n\t * returns 1em in css px for html/body default size\n\t * function taken from respondjs\n\t * @returns {*|number}\n\t */\n\tpf.getEmValue = function() {\n\t\tvar body;\n\t\tif ( !eminpx && (body = document.body) ) {\n\t\t\tvar div = document.createElement( \"div\" ),\n\t\t\t\toriginalHTMLCSS = docElem.style.cssText,\n\t\t\t\toriginalBodyCSS = body.style.cssText;\n\n\t\t\tdiv.style.cssText = baseStyle;\n\n\t\t\t// 1em in a media query is the value of the default font size of the browser\n\t\t\t// reset docElem and body to ensure the correct value is returned\n\t\t\tdocElem.style.cssText = fsCss;\n\t\t\tbody.style.cssText = fsCss;\n\n\t\t\tbody.appendChild( div );\n\t\t\teminpx = div.offsetWidth;\n\t\t\tbody.removeChild( div );\n\n\t\t\t//also update eminpx before returning\n\t\t\teminpx = parseFloat( eminpx, 10 );\n\n\t\t\t// restore the original values\n\t\t\tdocElem.style.cssText = originalHTMLCSS;\n\t\t\tbody.style.cssText = originalBodyCSS;\n\n\t\t}\n\t\treturn eminpx || 16;\n\t};\n\n\t/**\n\t * Takes a string of sizes and returns the width in pixels as a number\n\t */\n\tpf.calcListLength = function( sourceSizeListStr ) {\n\t\t// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%\n\t\t//\n\t\t// or (min-width:30em) calc(30% - 15px)\n\t\tif ( !(sourceSizeListStr in sizeLengthCache) || cfg.uT ) {\n\t\t\tvar winningLength = pf.calcLength( parseSizes( sourceSizeListStr ) );\n\n\t\t\tsizeLengthCache[ sourceSizeListStr ] = !winningLength ? units.width : winningLength;\n\t\t}\n\n\t\treturn sizeLengthCache[ sourceSizeListStr ];\n\t};\n\n\t/**\n\t * Takes a candidate object with a srcset property in the form of url/\n\t * ex. \"images/pic-medium.png 1x, images/pic-medium-2x.png 2x\" or\n\t * \"images/pic-medium.png 400w, images/pic-medium-2x.png 800w\" or\n\t * \"images/pic-small.png\"\n\t * Get an array of image candidates in the form of\n\t * {url: \"/foo/bar.png\", resolution: 1}\n\t * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value\n\t * If sizes is specified, res is calculated\n\t */\n\tpf.setRes = function( set ) {\n\t\tvar candidates;\n\t\tif ( set ) {\n\n\t\t\tcandidates = pf.parseSet( set );\n\n\t\t\tfor ( var i = 0, len = candidates.length; i < len; i++ ) {\n\t\t\t\tsetResolution( candidates[ i ], set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidates;\n\t};\n\n\tpf.setRes.res = setResolution;\n\n\tpf.applySetCandidate = function( candidates, img ) {\n\t\tif ( !candidates.length ) {return;}\n\t\tvar candidate,\n\t\t\ti,\n\t\t\tj,\n\t\t\tlength,\n\t\t\tbestCandidate,\n\t\t\tcurSrc,\n\t\t\tcurCan,\n\t\t\tcandidateSrc,\n\t\t\tabortCurSrc;\n\n\t\tvar imageData = img[ pf.ns ];\n\t\tvar dpr = pf.DPR;\n\n\t\tcurSrc = imageData.curSrc || img[curSrcProp];\n\n\t\tcurCan = imageData.curCan || setSrcToCur(img, curSrc, candidates[0].set);\n\n\t\t// if we have a current source, we might either become lazy or give this source some advantage\n\t\tif ( curCan && curCan.set === candidates[ 0 ].set ) {\n\n\t\t\t// if browser can abort image request and the image has a higher pixel density than needed\n\t\t\t// and this image isn't downloaded yet, we skip next part and try to save bandwidth\n\t\t\tabortCurSrc = (supportAbort && !img.complete && curCan.res - 0.1 > dpr);\n\n\t\t\tif ( !abortCurSrc ) {\n\t\t\t\tcurCan.cached = true;\n\n\t\t\t\t// if current candidate is \"best\", \"better\" or \"okay\",\n\t\t\t\t// set it to bestCandidate\n\t\t\t\tif ( curCan.res >= dpr ) {\n\t\t\t\t\tbestCandidate = curCan;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( !bestCandidate ) {\n\n\t\t\tcandidates.sort( ascendingSort );\n\n\t\t\tlength = candidates.length;\n\t\t\tbestCandidate = candidates[ length - 1 ];\n\n\t\t\tfor ( i = 0; i < length; i++ ) {\n\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\tif ( candidate.res >= dpr ) {\n\t\t\t\t\tj = i - 1;\n\n\t\t\t\t\t// we have found the perfect candidate,\n\t\t\t\t\t// but let's improve this a little bit with some assumptions ;-)\n\t\t\t\t\tif (candidates[ j ] &&\n\t\t\t\t\t\t(abortCurSrc || curSrc !== pf.makeUrl( candidate.url )) &&\n\t\t\t\t\t\tchooseLowRes(candidates[ j ].res, candidate.res, dpr, candidates[ j ].cached)) {\n\n\t\t\t\t\t\tbestCandidate = candidates[ j ];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbestCandidate = candidate;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( bestCandidate ) {\n\n\t\t\tcandidateSrc = pf.makeUrl( bestCandidate.url );\n\n\t\t\timageData.curSrc = candidateSrc;\n\t\t\timageData.curCan = bestCandidate;\n\n\t\t\tif ( candidateSrc !== curSrc ) {\n\t\t\t\tpf.setSrc( img, bestCandidate );\n\t\t\t}\n\t\t\tpf.setSize( img );\n\t\t}\n\t};\n\n\tpf.setSrc = function( img, bestCandidate ) {\n\t\tvar origWidth;\n\t\timg.src = bestCandidate.url;\n\n\t\t// although this is a specific Safari issue, we don't want to take too much different code paths\n\t\tif ( bestCandidate.set.type === \"image/svg+xml\" ) {\n\t\t\torigWidth = img.style.width;\n\t\t\timg.style.width = (img.offsetWidth + 1) + \"px\";\n\n\t\t\t// next line only should trigger a repaint\n\t\t\t// if... is only done to trick dead code removal\n\t\t\tif ( img.offsetWidth + 1 ) {\n\t\t\t\timg.style.width = origWidth;\n\t\t\t}\n\t\t}\n\t};\n\n\tpf.getSet = function( img ) {\n\t\tvar i, set, supportsType;\n\t\tvar match = false;\n\t\tvar sets = img [ pf.ns ].sets;\n\n\t\tfor ( i = 0; i < sets.length && !match; i++ ) {\n\t\t\tset = sets[i];\n\n\t\t\tif ( !set.srcset || !pf.matchesMedia( set.media ) || !(supportsType = pf.supportsType( set.type )) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( supportsType === \"pending\" ) {\n\t\t\t\tset = supportsType;\n\t\t\t}\n\n\t\t\tmatch = set;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn match;\n\t};\n\n\tpf.parseSets = function( element, parent, options ) {\n\t\tvar srcsetAttribute, imageSet, isWDescripor, srcsetParsed;\n\n\t\tvar hasPicture = parent && parent.nodeName.toUpperCase() === \"PICTURE\";\n\t\tvar imageData = element[ pf.ns ];\n\n\t\tif ( imageData.src === undefined || options.src ) {\n\t\t\timageData.src = getImgAttr.call( element, \"src\" );\n\t\t\tif ( imageData.src ) {\n\t\t\t\tsetImgAttr.call( element, srcAttr, imageData.src );\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcAttr );\n\t\t\t}\n\t\t}\n\n\t\tif ( imageData.srcset === undefined || options.srcset || !pf.supSrcset || element.srcset ) {\n\t\t\tsrcsetAttribute = getImgAttr.call( element, \"srcset\" );\n\t\t\timageData.srcset = srcsetAttribute;\n\t\t\tsrcsetParsed = true;\n\t\t}\n\n\t\timageData.sets = [];\n\n\t\tif ( hasPicture ) {\n\t\t\timageData.pic = true;\n\t\t\tgetAllSourceElements( parent, imageData.sets );\n\t\t}\n\n\t\tif ( imageData.srcset ) {\n\t\t\timageSet = {\n\t\t\t\tsrcset: imageData.srcset,\n\t\t\t\tsizes: getImgAttr.call( element, \"sizes\" )\n\t\t\t};\n\n\t\t\timageData.sets.push( imageSet );\n\n\t\t\tisWDescripor = (alwaysCheckWDescriptor || imageData.src) && regWDesc.test(imageData.srcset || \"\");\n\n\t\t\t// add normal src as candidate, if source has no w descriptor\n\t\t\tif ( !isWDescripor && imageData.src && !getCandidateForSrc(imageData.src, imageSet) && !imageSet.has1x ) {\n\t\t\t\timageSet.srcset += \", \" + imageData.src;\n\t\t\t\timageSet.cands.push({\n\t\t\t\t\turl: imageData.src,\n\t\t\t\t\td: 1,\n\t\t\t\t\tset: imageSet\n\t\t\t\t});\n\t\t\t}\n\n\t\t} else if ( imageData.src ) {\n\t\t\timageData.sets.push( {\n\t\t\t\tsrcset: imageData.src,\n\t\t\t\tsizes: null\n\t\t\t} );\n\t\t}\n\n\t\timageData.curCan = null;\n\t\timageData.curSrc = undefined;\n\n\t\t// if img has picture or the srcset was removed or has a srcset and does not support srcset at all\n\t\t// or has a w descriptor (and does not support sizes) set support to false to evaluate\n\t\timageData.supported = !( hasPicture || ( imageSet && !pf.supSrcset ) || (isWDescripor && !pf.supSizes) );\n\n\t\tif ( srcsetParsed && pf.supSrcset && !imageData.supported ) {\n\t\t\tif ( srcsetAttribute ) {\n\t\t\t\tsetImgAttr.call( element, srcsetAttr, srcsetAttribute );\n\t\t\t\telement.srcset = \"\";\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcsetAttr );\n\t\t\t}\n\t\t}\n\n\t\tif (imageData.supported && !imageData.srcset && ((!imageData.src && element.src) || element.src !== pf.makeUrl(imageData.src))) {\n\t\t\tif (imageData.src === null) {\n\t\t\t\telement.removeAttribute(\"src\");\n\t\t\t} else {\n\t\t\t\telement.src = imageData.src;\n\t\t\t}\n\t\t}\n\n\t\timageData.parsed = true;\n\t};\n\n\tpf.fillImg = function(element, options) {\n\t\tvar imageData;\n\t\tvar extreme = options.reselect || options.reevaluate;\n\n\t\t// expando for caching data on the img\n\t\tif ( !element[ pf.ns ] ) {\n\t\t\telement[ pf.ns ] = {};\n\t\t}\n\n\t\timageData = element[ pf.ns ];\n\n\t\t// if the element has already been evaluated, skip it\n\t\t// unless `options.reevaluate` is set to true ( this, for example,\n\t\t// is set to true when running `picturefill` on `resize` ).\n\t\tif ( !extreme && imageData.evaled === evalId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !imageData.parsed || options.reevaluate ) {\n\t\t\tpf.parseSets( element, element.parentNode, options );\n\t\t}\n\n\t\tif ( !imageData.supported ) {\n\t\t\tapplyBestCandidate( element );\n\t\t} else {\n\t\t\timageData.evaled = evalId;\n\t\t}\n\t};\n\n\tpf.setupRun = function() {\n\t\tif ( !alreadyRun || isVwDirty || (DPR !== window.devicePixelRatio) ) {\n\t\t\tupdateMetrics();\n\t\t}\n\t};\n\n\t// If picture is supported, well, that's awesome.\n\tif ( pf.supPicture ) {\n\t\tpicturefill = noop;\n\t\tpf.fillImg = noop;\n\t} else {\n\n\t\t // Set up picture polyfill by polling the document\n\t\t(function() {\n\t\t\tvar isDomReady;\n\t\t\tvar regReady = window.attachEvent ? /d$|^c/ : /d$|^c|^i/;\n\n\t\t\tvar run = function() {\n\t\t\t\tvar readyState = document.readyState || \"\";\n\n\t\t\t\ttimerId = setTimeout(run, readyState === \"loading\" ? 200 : 999);\n\t\t\t\tif ( document.body ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t\tisDomReady = isDomReady || regReady.test(readyState);\n\t\t\t\t\tif ( isDomReady ) {\n\t\t\t\t\t\tclearTimeout( timerId );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar timerId = setTimeout(run, document.body ? 9 : 99);\n\n\t\t\t// Also attach picturefill on resize and readystatechange\n\t\t\t// http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html\n\t\t\tvar debounce = function(func, wait) {\n\t\t\t\tvar timeout, timestamp;\n\t\t\t\tvar later = function() {\n\t\t\t\t\tvar last = (new Date()) - timestamp;\n\n\t\t\t\t\tif (last < wait) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait - last);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimeout = null;\n\t\t\t\t\t\tfunc();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function() {\n\t\t\t\t\ttimestamp = new Date();\n\n\t\t\t\t\tif (!timeout) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tvar lastClientWidth = docElem.clientHeight;\n\t\t\tvar onResize = function() {\n\t\t\t\tisVwDirty = Math.max(window.innerWidth || 0, docElem.clientWidth) !== units.width || docElem.clientHeight !== lastClientWidth;\n\t\t\t\tlastClientWidth = docElem.clientHeight;\n\t\t\t\tif ( isVwDirty ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ton( window, \"resize\", debounce(onResize, 99 ) );\n\t\t\ton( document, \"readystatechange\", run );\n\t\t})();\n\t}\n\n\tpf.picturefill = picturefill;\n\t//use this internally for easy monkey patching/performance testing\n\tpf.fillImgs = picturefill;\n\tpf.teardownRun = noop;\n\n\t/* expose methods for testing */\n\tpicturefill._ = pf;\n\n\twindow.picturefillCFG = {\n\t\tpf: pf,\n\t\tpush: function(args) {\n\t\t\tvar name = args.shift();\n\t\t\tif (typeof pf[name] === \"function\") {\n\t\t\t\tpf[name].apply(pf, args);\n\t\t\t} else {\n\t\t\t\tcfg[name] = args[0];\n\t\t\t\tif (alreadyRun) {\n\t\t\t\t\tpf.fillImgs( { reselect: true } );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\twhile (setOptions && setOptions.length) {\n\t\twindow.picturefillCFG.push(setOptions.shift());\n\t}\n\n\t/* expose picturefill */\n\twindow.picturefill = picturefill;\n\n\t/* expose picturefill */\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// CommonJS, just export\n\t\tmodule.exports = picturefill;\n\t} else if ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD support\n\t\tdefine( \"picturefill\", function() { return picturefill; } );\n\t}\n\n\t// IE8 evals this sync, so it must be the last thing we do\n\tif ( !pf.supPicture ) {\n\t\ttypes[ \"image/webp\" ] = detectTypeSupport(\"image/webp\", \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\" );\n\t}\n\n} )( window, document );\n\n},{}],132:[function(require,module,exports){\n/* smoothscroll v0.4.0 - 2018 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n var isBody;\n\n do {\n el = el.parentNode;\n\n isBody = el === d.body;\n } while (isBody === false && isScrollable(el) === false);\n\n isBody = null;\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n\n},{}],133:[function(require,module,exports){\n/*!\n * @copyright Copyright (c) 2017 IcoMoon.io\n * @license Licensed under MIT license\n * See https://github.com/Keyamoon/svgxuse\n * @version 1.2.6\n */\n/*jslint browser: true */\n/*global XDomainRequest, MutationObserver, window */\n(function () {\n \"use strict\";\n if (typeof window !== \"undefined\" && window.addEventListener) {\n var cache = Object.create(null); // holds xhr objects to prevent multiple requests\n var checkUseElems;\n var tid; // timeout id\n var debouncedCheck = function () {\n clearTimeout(tid);\n tid = setTimeout(checkUseElems, 100);\n };\n var unobserveChanges = function () {\n return;\n };\n var observeChanges = function () {\n var observer;\n window.addEventListener(\"resize\", debouncedCheck, false);\n window.addEventListener(\"orientationchange\", debouncedCheck, false);\n if (window.MutationObserver) {\n observer = new MutationObserver(debouncedCheck);\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n attributes: true\n });\n unobserveChanges = function () {\n try {\n observer.disconnect();\n window.removeEventListener(\"resize\", debouncedCheck, false);\n window.removeEventListener(\"orientationchange\", debouncedCheck, false);\n } catch (ignore) {}\n };\n } else {\n document.documentElement.addEventListener(\"DOMSubtreeModified\", debouncedCheck, false);\n unobserveChanges = function () {\n document.documentElement.removeEventListener(\"DOMSubtreeModified\", debouncedCheck, false);\n window.removeEventListener(\"resize\", debouncedCheck, false);\n window.removeEventListener(\"orientationchange\", debouncedCheck, false);\n };\n }\n };\n var createRequest = function (url) {\n // In IE 9, cross origin requests can only be sent using XDomainRequest.\n // XDomainRequest would fail if CORS headers are not set.\n // Therefore, XDomainRequest should only be used with cross origin requests.\n function getOrigin(loc) {\n var a;\n if (loc.protocol !== undefined) {\n a = loc;\n } else {\n a = document.createElement(\"a\");\n a.href = loc;\n }\n return a.protocol.replace(/:/g, \"\") + a.host;\n }\n var Request;\n var origin;\n var origin2;\n if (window.XMLHttpRequest) {\n Request = new XMLHttpRequest();\n origin = getOrigin(location);\n origin2 = getOrigin(url);\n if (Request.withCredentials === undefined && origin2 !== \"\" && origin2 !== origin) {\n Request = XDomainRequest || undefined;\n } else {\n Request = XMLHttpRequest;\n }\n }\n return Request;\n };\n var xlinkNS = \"http://www.w3.org/1999/xlink\";\n checkUseElems = function () {\n var base;\n var bcr;\n var fallback = \"\"; // optional fallback URL in case no base path to SVG file was given and no symbol definition was found.\n var hash;\n var href;\n var i;\n var inProgressCount = 0;\n var isHidden;\n var Request;\n var url;\n var uses;\n var xhr;\n function observeIfDone() {\n // If done with making changes, start watching for chagnes in DOM again\n inProgressCount -= 1;\n if (inProgressCount === 0) { // if all xhrs were resolved\n unobserveChanges(); // make sure to remove old handlers\n observeChanges(); // watch for changes to DOM\n }\n }\n function attrUpdateFunc(spec) {\n return function () {\n if (cache[spec.base] !== true) {\n spec.useEl.setAttributeNS(xlinkNS, \"xlink:href\", \"#\" + spec.hash);\n if (spec.useEl.hasAttribute(\"href\")) {\n spec.useEl.setAttribute(\"href\", \"#\" + spec.hash);\n }\n }\n };\n }\n function onloadFunc(xhr) {\n return function () {\n var body = document.body;\n var x = document.createElement(\"x\");\n var svg;\n xhr.onload = null;\n x.innerHTML = xhr.responseText;\n svg = x.getElementsByTagName(\"svg\")[0];\n if (svg) {\n svg.setAttribute(\"aria-hidden\", \"true\");\n svg.style.position = \"absolute\";\n svg.style.width = 0;\n svg.style.height = 0;\n svg.style.overflow = \"hidden\";\n body.insertBefore(svg, body.firstChild);\n }\n observeIfDone();\n };\n }\n function onErrorTimeout(xhr) {\n return function () {\n xhr.onerror = null;\n xhr.ontimeout = null;\n observeIfDone();\n };\n }\n unobserveChanges(); // stop watching for changes to DOM\n // find all use elements\n uses = document.getElementsByTagName(\"use\");\n for (i = 0; i < uses.length; i += 1) {\n try {\n bcr = uses[i].getBoundingClientRect();\n } catch (ignore) {\n // failed to get bounding rectangle of the use element\n bcr = false;\n }\n href = uses[i].getAttribute(\"href\")\n || uses[i].getAttributeNS(xlinkNS, \"href\")\n || uses[i].getAttribute(\"xlink:href\");\n if (href && href.split) {\n url = href.split(\"#\");\n } else {\n url = [\"\", \"\"];\n }\n base = url[0];\n hash = url[1];\n isHidden = bcr && bcr.left === 0 && bcr.right === 0 && bcr.top === 0 && bcr.bottom === 0;\n if (bcr && bcr.width === 0 && bcr.height === 0 && !isHidden) {\n // the use element is empty\n // if there is a reference to an external SVG, try to fetch it\n // use the optional fallback URL if there is no reference to an external SVG\n if (fallback && !base.length && hash && !document.getElementById(hash)) {\n base = fallback;\n }\n if (uses[i].hasAttribute(\"href\")) {\n uses[i].setAttributeNS(xlinkNS, \"xlink:href\", href);\n }\n if (base.length) {\n // schedule updating xlink:href\n xhr = cache[base];\n if (xhr !== true) {\n // true signifies that prepending the SVG was not required\n setTimeout(attrUpdateFunc({\n useEl: uses[i],\n base: base,\n hash: hash\n }), 0);\n }\n if (xhr === undefined) {\n Request = createRequest(base);\n if (Request !== undefined) {\n xhr = new Request();\n cache[base] = xhr;\n xhr.onload = onloadFunc(xhr);\n xhr.onerror = onErrorTimeout(xhr);\n xhr.ontimeout = onErrorTimeout(xhr);\n xhr.open(\"GET\", base);\n xhr.send();\n inProgressCount += 1;\n }\n }\n }\n } else {\n if (!isHidden) {\n if (cache[base] === undefined) {\n // remember this URL if the use element was not empty and no request was sent\n cache[base] = true;\n } else if (cache[base].onload) {\n // if it turns out that prepending the SVG is not necessary,\n // abort the in-progress xhr.\n cache[base].abort();\n delete cache[base].onload;\n cache[base] = true;\n }\n } else if (base.length && cache[base]) {\n setTimeout(attrUpdateFunc({\n useEl: uses[i],\n base: base,\n hash: hash\n }), 0);\n }\n }\n }\n uses = \"\";\n inProgressCount += 1;\n observeIfDone();\n };\n var winLoad;\n winLoad = function () {\n window.removeEventListener(\"load\", winLoad, false); // to prevent memory leaks\n tid = setTimeout(checkUseElems, 0);\n };\n if (document.readyState !== \"complete\") {\n // The load event fires when all resources have finished loading, which allows detecting whether SVG use elements are empty.\n window.addEventListener(\"load\", winLoad, false);\n } else {\n // No need to add a listener if the document is already loaded, initialize immediately.\n winLoad();\n }\n }\n}());\n\n},{}],134:[function(require,module,exports){\n(function (global){\n/**\n *\n *\n * @author Jerry Bendy \n * @licence MIT\n *\n */\n\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = self.URLSearchParams ? self.URLSearchParams : null,\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype.delete = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return name in dict ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return name in dict ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return name in this [__URLSearchParams__];\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var forSureUsePolyfill = !decodesPlusesCorrectly;\n var useProxy = (!forSureUsePolyfill && nativeURLSearchParams && !isSupportObjectConstructor && self.Proxy)\n /*\n * Apply polifill to global object and append other prototype into it\n */\n self.URLSearchParams = useProxy ?\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n new Proxy(nativeURLSearchParams, {\n construct: function(target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n }) :\n URLSearchParamsPolyfill;\n\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n USPProto.forEach = USPProto.forEach || function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n\n /**\n * Sort all name-value pairs\n */\n USPProto.sort = USPProto.sort || function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this.delete(keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.keys = USPProto.keys || function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.values = USPProto.values || function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.entries = USPProto.entries || function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key])\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n )\n\n if (name in dict) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}]},{},[43]);\n"],"file":"../scripts-npr.js"}