{"version":3,"sources":["../node_modules/core-js/modules/_global.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_fails.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/core-js/modules/_core.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_library.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_function-to-string.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_export.js","../node_modules/core-js/modules/_meta.js","../node_modules/core-js/modules/_wks.js","../node_modules/core-js/modules/_set-to-string-tag.js","../node_modules/core-js/modules/_wks-ext.js","../node_modules/core-js/modules/_wks-define.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_to-absolute-index.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_object-gops.js","../node_modules/core-js/modules/_object-pie.js","../node_modules/core-js/modules/_enum-keys.js","../node_modules/core-js/modules/_is-array.js","../node_modules/core-js/modules/_object-dps.js","../node_modules/core-js/modules/_html.js","../node_modules/core-js/modules/_object-create.js","../node_modules/core-js/modules/_object-gopn.js","../node_modules/core-js/modules/_object-gopn-ext.js","../node_modules/core-js/modules/_object-gopd.js","../node_modules/core-js/modules/es6.symbol.js","../node_modules/core-js/modules/_classof.js","../node_modules/core-js/modules/es6.object.to-string.js","../node_modules/core-js/es6/symbol.js","../node_modules/core-js/modules/_string-at.js","../node_modules/core-js/modules/_iterators.js","../node_modules/core-js/modules/_iter-create.js","../node_modules/core-js/modules/_to-object.js","../node_modules/core-js/modules/_object-gpo.js","../node_modules/core-js/modules/_iter-define.js","../node_modules/core-js/modules/es6.string.iterator.js","../node_modules/core-js/modules/_add-to-unscopables.js","../node_modules/core-js/modules/_iter-step.js","../node_modules/core-js/modules/es6.array.iterator.js","../node_modules/core-js/modules/web.dom.iterable.js","../node_modules/core-js/fn/symbol/iterator.js","lib/Utilities.js","lib/Filter.js","lib/InsertScriptFilter.js","lib/ScriptTagFilter.js","lib/WrapperFilter.js","lib/LocalCookieFilter.js","../node_modules/redom/dist/redom.es.js","lib/Language.js","lib/Interface.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/eq.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_root.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_assignMergeValue.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isArrayLikeObject.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/_safeGet.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/toPlainObject.js","../node_modules/lodash/_baseMergeDeep.js","../node_modules/lodash/_baseMerge.js","../node_modules/lodash/identity.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/constant.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_createAssigner.js","../node_modules/lodash/merge.js","lib/Configuration.js","lib/CookieConsent.js","index.js"],"names":["Utilities","fn","document","attachEvent","readyState","addEventListener","obj","Object","prototype","toString","call","slice","col","amt","usePound","num","parseInt","r","b","g","cookie","category","categories","window","CookieConsent","key","config","services","push","elem","event","Event","createEvent","initEvent","dispatchEvent","Filter","type","service","needed","wanted","blacklist","objectType","search","i","length","InsertScriptFilter","overrideAppendChild","overrideInsertBefore","Element","appendChild","arguments","tagName","outerHTML","indexOf","buffer","undefined","Node","apply","insertBefore","ScriptTagFilter","filterTags","ready","scriptTags","querySelectorAll","scriptTag","dataset","consent","newtag","createElement","parentNode","attributes","attribute","setAttribute","nodeName","nodeValue","innerHTML","removeChild","WrapperFilter","filterWrappers","wrapper","name","callback","LocalCookieFilter","filterlocalCookies","cookieDescriptor","getOwnPropertyDescriptor","HTMLDocument","get","__lookupGetter__","set","__lookupSetter__","getCookieDescriptor","defineProperty","configurable","cookieArguments","cookieName","split","Array","forEach","blacklistItem","HASH","charCodeAt","DOT","TAG_NAME","ID","CLASS_NAME","parseQuery","query","tag","id","className","mode","offset","char","isHash","isDot","isEnd","substring","ns","ref","element","createElementNS","unmount","parent","child","parentEl","getEl","childEl","__redom_view","doUnmount","hooks","__redom_lifecycle","hooksAreEmpty","__redom_mounted","traverse","trigger","parentHooks","hook","hookNames","shadowRootAvailable","mount","before","replace","wasMounted","oldParent","replaceChild","doMount","remount","hooksFound","list","hookName","triggered","ShadowRoot","el","eventName","view","hookCount","firstChild","next","nextSibling","setStyle","arg1","arg2","style","xlinkns","setAttr","isSVG","SVGElement","isFunc","setData","setXlink","setAttributeNS","text","str","createTextNode","parseArguments","args","arg","isNode","ensureEl","html","nodeType","a","htmlCache","memoizeHTML","len","cloneNode","Query","Function","bind","concat","Error","extend","clone","h","setChildren","children","current","_current","childEls","i$1","exists","__redom_index","propKey","item","listPool","View","initData","ListPool","oldLookup","lookup","oldViews","views","update","data","context","keySet","newLookup","newViews","__redom_id","List","__redom_list","pool","ref$1","oldView","place","Place","visible","_placeholder","_el","_View","_initData","placeholder","router","Views","Router","route","svgCache","memoizeSVG","svg","s","Language","locale","language","object","currentLocale","hasOwnProperty","Interface","elements","theme","barColor","barTextColor","barMainButtonTextColor","barMainButtonColor","modalMainButtonColor","modalMainButtonTextColor","lightenDarkenColor","getTranslation","listCookies","listItems","modalTabGroups","contentItems","checked","version","preserveAspectRatio","viewBox","class","d","modalMainTextMoreLink","href","target","rel","tabGroups","tabGroup","classList","contains","add","querySelector","remove","insertedElem","body","that","render","buildStyle","buildBar","bar","cookieExists","setTimeout","barTimeout","buildModal","buttonConsentGive","button","writeBufferToDOM","buildCookie","setCookie","modalRedrawIcons","getElementsByClassName","edit","getDlParent","eventTarget","parentDl","dt","getElementById","switchElements","switchElement","action","this","lastChild","cookieVersion","listGlobalServices","JSON","stringify","Configuration","configObject","setConfiguration","active","en","barMainText","barLinkSetting","barBtnAcceptAll","modalMainTitle","modalMainText","modalBtnSave","modalBtnAcceptAll","modalAffectedSolutions","learnMore","on","off","hu","cookieToConfig","removeReload","removeCookie","location","reload","filter","cookieData","parse","insertScriptFilter","scriptTagFilter","wrapperFilter","localCookieFilter","init","UI","buildInterface","addEventListeners","cookieConsent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;;ACFA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;;ACDA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACVA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;;;;;;;;;;;;;;;ICHqBA;;;;;;;;;0BAENC,IAAI;AACf,UAAIC,QAAQ,CAACC,WAAT,GAAuBD,QAAQ,CAACE,UAAT,KAAwB,UAA/C,GAA4DF,QAAQ,CAACE,UAAT,KAAwB,SAAxF,EAAkG;AAChGH,QAAAA,EAAE;AACH,OAFD,MAEO;AACLC,QAAAA,QAAQ,CAACG,gBAAT,CAA0B,kBAA1B,EAA8CJ,EAA9C;AACD;AACF;;;+BAEiBK,KAAI;AACpB,aAAOC,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BJ,GAA/B,EAAoCK,KAApC,CAA0C,CAA1C,EAA6C,CAAC,CAA9C,CAAP;AACD;;;uCAEyBC,KAAKC,KAAK;AAElC,UAAIC,QAAQ,GAAG,KAAf;;AAEA,UAAIF,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P,GAAkB3B,mBAAUqT,kBAAV,EAAlB;AAEA,UAAIpO,QAAJ,EAAcA,QAAQ,CAAC7D,MAAD,CAAR;AACd,aAAOA,MAAP;AACD;;;8BAESA,QAAQ6D,UAAU;AAC1B/E,MAAAA,QAAQ,CAACkB,MAAT,sBAA8BkS,IAAI,CAACC,SAAL,CAAenS,MAAf,CAA9B;AACA,UAAI6D,QAAJ,EAAcA,QAAQ;AACvB;;;;;;;;ACxXH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACdA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;;AACA;;;;;;;;;;IAEqBuO;;;AAEnB,yBAAYC,YAAZ,EAA0B;AAAA;;AAExBlS,IAAAA,MAAM,CAACC,aAAP,CAAqB8B,MAArB,GAA8B;AAC5BL,MAAAA,WAAW,EAAE,EADe;AAE5BS,MAAAA,YAAY,EAAE,EAFc,CAK9B;;AAL8B,KAA9B;;AAMAnC,IAAAA,MAAM,CAACC,aAAP,CAAqBuD,OAArB,GAA+B,YAAW,CAAE,CAA5C,CARwB,CAUxB;;;AACAxD,IAAAA,MAAM,CAACC,aAAP,CAAqBkS,gBAArB,GAAwC,KAAKA,gBAAL,CAAsB7H,IAAtB,CAA2B,IAA3B,CAAxC;AAEAtK,IAAAA,MAAM,CAACC,aAAP,CAAqBE,MAArB,GAA8B;AAC5BiS,MAAAA,MAAM,EAAE,IADoB;AAE5B7B,MAAAA,YAAY,EAAE,KAFc;AAG5BsB,MAAAA,aAAa,EAAE,CAHa;AAI5BxC,MAAAA,qBAAqB,EAAE,IAJK;AAK5BoB,MAAAA,UAAU,EAAE,IALgB;AAM5BvC,MAAAA,KAAK,EAAE;AACLC,QAAAA,QAAQ,EAAE,SADL;AAELC,QAAAA,YAAY,EAAE,MAFT;AAGLE,QAAAA,kBAAkB,EAAE,MAHf;AAILD,QAAAA,sBAAsB,EAAE,SAJnB;AAKLE,QAAAA,oBAAoB,EAAE,SALjB;AAMLC,QAAAA,wBAAwB,EAAE;AANrB,OANqB;AAc5BZ,MAAAA,QAAQ,EAAE;AACR9C,QAAAA,OAAO,EAAE,IADD;AAER6C,QAAAA,MAAM,EAAE;AACN0E,UAAAA,EAAE,EAAE;AACFC,YAAAA,WAAW,EAAE,iFADX;AAEFC,YAAAA,cAAc,EAAE,iBAFd;AAGFC,YAAAA,eAAe,EAAE,oBAHf;AAIFC,YAAAA,cAAc,EAAE,iBAJd;AAKFC,YAAAA,aAAa,EAAE,mbALb;AAMFC,YAAAA,YAAY,EAAE,uBANZ;AAOFC,YAAAA,iBAAiB,EAAE,8BAPjB;AAQFC,YAAAA,sBAAsB,EAAE,qBARtB;AASFC,YAAAA,SAAS,EAAE,YATT;AAUFC,YAAAA,EAAE,EAAE,IAVF;AAWFC,YAAAA,GAAG,EAAE;AAXH,WADE;AAcNC,UAAAA,EAAE,EAAE;AACFX,YAAAA,WAAW,EAAE,qEADX;AAEFC,YAAAA,cAAc,EAAE,kBAFd;AAGFC,YAAAA,eAAe,EAAE,wBAHf;AAIFC,YAAAA,cAAc,EAAE,kBAJd;AAKFC,YAAAA,aAAa,EAAE,8eALb;AAMFC,YAAAA,YAAY,EAAE,qBANZ;AAOFC,YAAAA,iBAAiB,EAAE,wBAPjB;AAQFC,YAAAA,sBAAsB,EAAE,wBARtB;AASFC,YAAAA,SAAS,EAAE,iBATT;AAUFC,YAAAA,EAAE,EAAE,IAVF;AAWFC,YAAAA,GAAG,EAAE;AAXH;AAdE;AAFA,OAdkB;AA6C5BjT,MAAAA,UAAU,EAAE,EA7CgB;AA8C5BK,MAAAA,QAAQ,EAAE;AA9CkB,KAA9B;AAiDA,SAAK+R,gBAAL,CAAsBD,YAAtB;AAED;;;;qCAEgBA,cAAc;AAC7B;AACA,0BAAQlS,MAAM,CAACC,aAAP,CAAqBE,MAA7B,EAAqC+R,YAArC,EAF6B,CAI7B;;AACA,WAAKgB,cAAL,GAL6B,CAO7B;;AACAzU,yBAAUkC,aAAV,CAAwBhC,QAAxB,EAAkC,aAAlC;AACD;;;qCAEgB;AAEf,eAASwU,YAAT,GAAwB;AACtB1U,2BAAU2U,YAAV;;AACAC,QAAAA,QAAQ,CAACC,MAAT;AACA,eAAO,KAAP;AACD;;AAED3U,MAAAA,QAAQ,CAACkB,MAAT,CAAgB4E,KAAhB,CAAsB,GAAtB,EAA2B8O,MAA3B,CAAkC,UAAClI,IAAD,EAAU;AAE1C,YAAIA,IAAI,CAACvJ,OAAL,CAAa,UAAb,KAA6B,CAAjC,EAAoC;AAClC,cAAI0R,UAAU,GAAGzB,IAAI,CAAC0B,KAAL,CAAWpI,IAAI,CAAC5G,KAAL,CAAW,GAAX,EAAgB,CAAhB,CAAX,CAAjB,CADkC,CAGlC;;AACA,cAAI,OAAO+O,UAAU,CAACxE,OAAlB,KAA8B,WAAlC,EAA+C;AAC7C,mBAAOmE,YAAY,EAAnB;AACD,WAFD,MAEO;AACL,gBAAIK,UAAU,CAACxE,OAAX,KAAuBhP,MAAM,CAACC,aAAP,CAAqBE,MAArB,CAA4B0R,aAAvD,EAAsE;AACpE,qBAAOsB,YAAY,EAAnB;AACD;AACF,WAViC,CAYlC;;;AACA,eAAK,IAAIjT,GAAT,IAAgBsT,UAAU,CAACzT,UAA3B,EAAuC;AAErC;AACA,gBAAG,OAAOC,MAAM,CAACC,aAAP,CAAqBE,MAArB,CAA4BJ,UAA5B,CAAuCG,GAAvC,CAAP,KAAuD,WAA1D,EAAuE;AACrE,qBAAOiT,YAAY,EAAnB;AACD;AACF,WAnBiC,CAqBlC;;;AACAK,UAAAA,UAAU,CAACpT,QAAX,CAAoBuE,OAApB,CAA4B,UAAS7D,OAAT,EAAiB;AAE3C;AACA,gBAAG,OAAOd,MAAM,CAACC,aAAP,CAAqBE,MAArB,CAA4BC,QAA5B,CAAqCU,OAArC,CAAP,KAAyD,WAA5D,EAAyE;AACvE,qBAAOqS,YAAY,EAAnB;AACD;AACF,WAND,EAtBkC,CA8BlC;;AACA,eAAK,IAAIjT,IAAT,IAAgBsT,UAAU,CAACzT,UAA3B,EAAuC;AACrCC,YAAAA,MAAM,CAACC,aAAP,CAAqBE,MAArB,CAA4BJ,UAA5B,CAAuCG,IAAvC,EAA4C6O,OAA5C,GAAsD/O,MAAM,CAACC,aAAP,CAAqBE,MAArB,CAA4BJ,UAA5B,CAAuCG,IAAvC,EAA4Cc,MAA5C,GAAsDwS,UAAU,CAACzT,UAAX,CAAsBG,IAAtB,EAA2Bc,MAA3B,KAAsC,IAAvC,GAA+C,IAA/C,GAAsD,KAAjK;AACD;;AAEDhB,UAAAA,MAAM,CAACC,aAAP,CAAqBE,MAArB,CAA4BoQ,YAA5B,GAA2C,IAA3C;AACA,iBAAO,IAAP;AACD;AACF,OAxCD;AA0CA,aAAO,KAAP;AACD;;;;;;;;;;;;;;;ACrIH;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEqBtQ;;;;;;;;;yBAEdiS,cAAc;AACjB,UAAID,sBAAJ,CAAkBC,YAAlB;AAEA,UAAMwB,kBAAkB,GAAG,IAAIpS,2BAAJ,EAA3B;AACA,UAAMqS,eAAe,GAAG,IAAIvR,wBAAJ,EAAxB;AACA,UAAMwR,aAAa,GAAG,IAAItQ,sBAAJ,EAAtB;AACA,UAAMuQ,iBAAiB,GAAG,IAAIlQ,0BAAJ,EAA1B;AAEA+P,MAAAA,kBAAkB,CAACI,IAAnB;AACAH,MAAAA,eAAe,CAACG,IAAhB;AACAF,MAAAA,aAAa,CAACE,IAAd;AACAD,MAAAA,iBAAiB,CAACC,IAAlB;AAEA,UAAMC,EAAE,GAAG,IAAI/F,kBAAJ,EAAX;AAEA+F,MAAAA,EAAE,CAACC,cAAH,CAAkB,YAAM;AACtBD,QAAAA,EAAE,CAACE,iBAAH;AACD,OAFD;AAGD;;;;;;;;;;AC3BH;;AACA;;AACA;;;;AAEA,IAAMC,aAAa,GAAG,IAAIjU,sBAAJ,EAAtB;AAEAD,MAAM,CAACC,aAAP,GAAuBD,MAAM,CAACC,aAAP,IAAwB,EAA/C;AACAD,MAAM,CAACC,aAAP,CAAqB6T,IAArB,GAA4BI,aAAa,CAACJ,IAA1C","file":"cookieconsent.map","sourceRoot":"..\\src","sourcesContent":["// 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","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\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","var core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var 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","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\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","var 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","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var 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","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","module.exports = false;\n","var 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","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\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","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\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","var 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","var 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","var 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","var 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","exports.f = require('./_wks');\n","var 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","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\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","// 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","// 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","// 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","// 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","var 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","// 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","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var 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","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\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","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\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","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var 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","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\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","// 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","// 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","var 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","'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","// 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","'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","require('../modules/es6.symbol');\nrequire('../modules/es6.object.to-string');\nmodule.exports = require('../modules/_core').Symbol;\n","var 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","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","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\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","'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","'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","// 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","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\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","var $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","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","export default class Utilities {\n\n static ready(fn) {\n if (document.attachEvent ? document.readyState === \"complete\" : document.readyState !== \"loading\"){\n fn();\n } else {\n document.addEventListener('DOMContentLoaded', fn);\n }\n }\n \n static objectType(obj){\n return Object.prototype.toString.call(obj).slice(8, -1);\n }\n\n static lightenDarkenColor(col, amt) {\n\n var usePound = false;\n \n if (col[0] == \"#\") {\n col = col.slice(1);\n usePound = true;\n }\n \n var num = parseInt(col, 16);\n \n var r = (num >> 16) + amt;\n \n if (r > 255) {\n r = 255;\n } else if (r < 0) {\n r = 0;\n }\n \n var b = ((num >> 8) & 0x00FF) + amt;\n \n if (b > 255) {\n b = 255;\n } else if (b < 0) {\n b = 0;\n }\n \n var g = (num & 0x0000FF) + amt;\n \n if (g > 255) {\n g = 255;\n } else if (g < 0) {\n g = 0;\n }\n \n return (usePound ? \"#\" : \"\") + (g | (b << 8) | (r << 16)).toString(16);\n \n }\n\n static removeCookie() {\n document.cookie = `cconsent=; expires=Thu, 01 Jan 1980 00:00:00 UTC; path=/;`;\n }\n\n // Create an array of services from Cookieconsent global object\n // Filter based on category or leave empty is all is wanted\n static listGlobalServices(category) {\n let categories = [];\n\n // Global config objectnot set\n if (typeof window.CookieConsent === 'undefined') return categories;\n\n // Category is not specified or opposite\n if (typeof category === 'undefined') {\n for (let key in window.CookieConsent.config.services) {\n categories.push(key);\n }\n } else {\n for (let key in window.CookieConsent.config.services) {\n if (window.CookieConsent.config.services[key].category === category) categories.push(key);\n }\n }\n\n return categories;\n }\n\n static dispatchEvent(elem, event) {\n var event;\n\n if (typeof(Event) === 'function') {\n event = new Event(event);\n } else {\n event = document.createEvent('Event');\n event.initEvent(event, true, true);\n }\n \n elem.dispatchEvent(event);\n }\n\n}\n","import Utilities from \"./Utilities\";\r\n\r\nexport default class Filter {\r\n\r\n createBlacklist(type) {\r\n var services = {};\r\n for(var service in window.CookieConsent.config.services) {\r\n if (window.CookieConsent.config.services[service].type === type) {\r\n if(window.CookieConsent.config.categories[window.CookieConsent.config.services[service].category].needed === false) {\r\n if (window.CookieConsent.config.categories[window.CookieConsent.config.services[service].category].wanted === false) {\r\n services[service] = window.CookieConsent.config.services[service];\r\n }\r\n }\r\n }\r\n }\r\n\r\n var blacklist = [];\r\n\r\n for(var service in services) {\r\n var type = Utilities.objectType(services[service].search);\r\n if (type === 'String') {\r\n blacklist.push(services[service].search);\r\n } else if(type === 'Array') {\r\n for (let i = 0; i < services[service].search.length; i++) {\r\n blacklist.push(services[service].search[i]);\r\n }\r\n }\r\n }\r\n\r\n return blacklist;\r\n }\r\n\r\n}","import Filter from './Filter';\r\n\r\nexport default class InsertScriptFilter extends Filter {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n init() {\r\n this.overrideAppendChild();\r\n this.overrideInsertBefore();\r\n }\r\n\r\n overrideAppendChild() {\r\n\r\n Element.prototype.appendChild = function(elem) {\r\n if(arguments[0].tagName === 'SCRIPT') {\r\n //console.log('Appending:', arguments);\r\n for (let key in window.CookieConsent.config.services) {\r\n // Did user opt-in?\r\n if(window.CookieConsent.config.services[key].type === 'dynamic-script') {\r\n if(arguments[0].outerHTML.indexOf(window.CookieConsent.config.services[key].search) >= 0) {\r\n if(window.CookieConsent.config.categories[window.CookieConsent.config.services[key].category].wanted === false) {\r\n window.CookieConsent.buffer.appendChild.push({'this': this, 'category': window.CookieConsent.config.services[key].category, arguments: arguments});\r\n return undefined;\r\n }\r\n }\r\n }\r\n }\r\n } \r\n \r\n return Node.prototype.appendChild.apply(this, arguments);\r\n }\r\n\r\n }\r\n\r\n overrideInsertBefore() {\r\n\r\n Element.prototype.insertBefore = function(elem) {\r\n \r\n if(arguments[0].tagName === 'SCRIPT') {\r\n //console.log('Inserting:', arguments);\r\n for (let key in window.CookieConsent.config.services) {\r\n // Did user opt-in?\r\n if(window.CookieConsent.config.services[key].type === 'dynamic-script') {\r\n if(arguments[0].outerHTML.indexOf(window.CookieConsent.config.services[key].search) >= 0) {\r\n if(window.CookieConsent.config.categories[window.CookieConsent.config.services[key].category].wanted === false) {\r\n window.CookieConsent.buffer.insertBefore.push({'this': this, 'category': window.CookieConsent.config.services[key].category, arguments: arguments});\r\n return undefined;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n return Node.prototype.insertBefore.apply(this, arguments);\r\n }\r\n }\r\n\r\n}","import Utilities from \"./Utilities\";\nimport Filter from './Filter';\n\nexport default class ScriptTagFilter extends Filter {\n \n constructor() {\n super();\n }\n\n init() {\n this.filterTags();\n }\n\n filterTags() {\n Utilities.ready(() => {\n var blacklist = super.createBlacklist('script-tag');\n var scriptTags = document.querySelectorAll('script[type=\"text/plain\"]');\n \n for (var scriptTag of scriptTags) {\n if (blacklist.indexOf(scriptTag.dataset.consent) < 0) {\n var newtag = document.createElement('script');\n var parentNode = scriptTag.parentNode;\n \n scriptTag.type = 'text/javascript';\n\n for(var attribute of scriptTag.attributes) {\n newtag.setAttribute(attribute.nodeName, attribute.nodeValue);\n }\n\n newtag.innerHTML = scriptTag.innerHTML;\n parentNode.insertBefore(newtag,scriptTag);\n parentNode.removeChild(scriptTag);\n }\n }\n });\n }\n}","import Filter from './Filter';\r\n\r\nexport default class WrapperFilter extends Filter {\r\n \r\n constructor() {\r\n super();\r\n }\r\n\r\n init() {\r\n this.filterWrappers();\r\n }\r\n\r\n filterWrappers() {\r\n var blacklist = super.createBlacklist('wrapped');\r\n\r\n function wrapper(name='', callback) {\r\n if (blacklist.indexOf(name) < 0) {\r\n callback();\r\n }\r\n }\r\n\r\n window.CookieConsent.wrapper = wrapper;\r\n }\r\n}","import Filter from './Filter';\r\n\r\nexport default class LocalCookieFilter extends Filter {\r\n \r\n constructor() {\r\n super();\r\n }\r\n\r\n init() {\r\n this.filterlocalCookies();\r\n }\r\n\r\n getCookieDescriptor() {\r\n var cookieDescriptor;\r\n\r\n cookieDescriptor = Object.getOwnPropertyDescriptor(document, 'cookie') ||\r\n Object.getOwnPropertyDescriptor(HTMLDocument.prototype, 'cookie');\r\n \r\n if (! cookieDescriptor) {\r\n\r\n cookieDescriptor = {};\r\n cookieDescriptor.get = HTMLDocument.prototype.__lookupGetter__(\"cookie\");\r\n cookieDescriptor.set = HTMLDocument.prototype.__lookupSetter__(\"cookie\");\r\n\r\n }\r\n \r\n return cookieDescriptor;\r\n }\r\n\r\n filterlocalCookies() {\r\n\r\n // TODO - implement buffer\r\n var blacklist = super.createBlacklist('localcookie');\r\n var cookieDescriptor = this.getCookieDescriptor();\r\n\r\n Object.defineProperty(document, \"cookie\", {\r\n configurable: true,\r\n get: function () {\r\n return cookieDescriptor.get.apply(document);\r\n },\r\n set: function () {\r\n var cookieArguments = arguments;\r\n\r\n if(blacklist.length) {\r\n var cookieName = arguments[0].split('=')[0];\r\n Array.prototype.forEach.call(blacklist, function(blacklistItem){\r\n if (cookieName.indexOf(blacklistItem) < 0) cookieDescriptor.set.apply(document, cookieArguments);\r\n });\r\n } else {\r\n cookieDescriptor.set.apply(document, cookieArguments);\r\n }\r\n }\r\n });\r\n }\r\n}","var HASH = '#'.charCodeAt(0);\nvar DOT = '.'.charCodeAt(0);\n\nvar TAG_NAME = 0;\nvar ID = 1;\nvar CLASS_NAME = 2;\n\nvar parseQuery = function (query) {\n var tag = null;\n var id = null;\n var className = null;\n var mode = TAG_NAME;\n var offset = 0;\n\n for (var i = 0; i <= query.length; i++) {\n var char = query.charCodeAt(i);\n var isHash = char === HASH;\n var isDot = char === DOT;\n var isEnd = !char;\n\n if (isHash || isDot || isEnd) {\n if (mode === TAG_NAME) {\n if (i === 0) {\n tag = 'div';\n } else {\n tag = query.substring(offset, i);\n }\n } else if (mode === ID) {\n id = query.substring(offset, i);\n } else {\n if (className) {\n className += ' ' + query.substring(offset, i);\n } else {\n className = query.substring(offset, i);\n }\n }\n\n if (isHash) {\n mode = ID;\n } else if (isDot) {\n mode = CLASS_NAME;\n }\n\n offset = i + 1;\n }\n }\n\n return { tag: tag, id: id, className: className };\n};\n\nvar createElement = function (query, ns) {\n var ref = parseQuery(query);\n var tag = ref.tag;\n var id = ref.id;\n var className = ref.className;\n var element = ns ? document.createElementNS(ns, tag) : document.createElement(tag);\n\n if (id) {\n element.id = id;\n }\n\n if (className) {\n if (ns) {\n element.setAttribute('class', className);\n } else {\n element.className = className;\n }\n }\n\n return element;\n};\n\nvar unmount = function (parent, child) {\n var parentEl = getEl(parent);\n var childEl = getEl(child);\n\n if (child === childEl && childEl.__redom_view) {\n // try to look up the view if not provided\n child = childEl.__redom_view;\n }\n\n if (childEl.parentNode) {\n doUnmount(child, childEl, parentEl);\n\n parentEl.removeChild(childEl);\n }\n\n return child;\n};\n\nvar doUnmount = function (child, childEl, parentEl) {\n var hooks = childEl.__redom_lifecycle;\n\n if (hooksAreEmpty(hooks)) {\n childEl.__redom_mounted = false;\n return;\n }\n\n var traverse = parentEl;\n\n if (childEl.__redom_mounted) {\n trigger(childEl, 'onunmount');\n }\n\n while (traverse) {\n var parentHooks = traverse.__redom_lifecycle || {};\n\n for (var hook in hooks) {\n if (parentHooks[hook]) {\n parentHooks[hook] -= hooks[hook];\n }\n }\n\n if (hooksAreEmpty(parentHooks)) {\n traverse.__redom_lifecycle = null;\n }\n\n traverse = traverse.parentNode;\n }\n};\n\nvar hooksAreEmpty = function (hooks) {\n if (hooks == null) {\n return true;\n }\n for (var key in hooks) {\n if (hooks[key]) {\n return false;\n }\n }\n return true;\n};\n\nvar hookNames = ['onmount', 'onremount', 'onunmount'];\nvar shadowRootAvailable = typeof window !== 'undefined' && 'ShadowRoot' in window;\n\nvar mount = function (parent, child, before, replace) {\n var parentEl = getEl(parent);\n var childEl = getEl(child);\n\n if (child === childEl && childEl.__redom_view) {\n // try to look up the view if not provided\n child = childEl.__redom_view;\n }\n\n if (child !== childEl) {\n childEl.__redom_view = child;\n }\n\n var wasMounted = childEl.__redom_mounted;\n var oldParent = childEl.parentNode;\n\n if (wasMounted && (oldParent !== parentEl)) {\n doUnmount(child, childEl, oldParent);\n }\n\n if (before != null) {\n if (replace) {\n parentEl.replaceChild(childEl, getEl(before));\n } else {\n parentEl.insertBefore(childEl, getEl(before));\n }\n } else {\n parentEl.appendChild(childEl);\n }\n\n doMount(child, childEl, parentEl, oldParent);\n\n return child;\n};\n\nvar doMount = function (child, childEl, parentEl, oldParent) {\n var hooks = childEl.__redom_lifecycle || (childEl.__redom_lifecycle = {});\n var remount = (parentEl === oldParent);\n var hooksFound = false;\n\n for (var i = 0, list = hookNames; i < list.length; i += 1) {\n var hookName = list[i];\n\n if (!remount) { // if already mounted, skip this phase\n if (child !== childEl) { // only Views can have lifecycle events\n if (hookName in child) {\n hooks[hookName] = (hooks[hookName] || 0) + 1;\n }\n }\n }\n if (hooks[hookName]) {\n hooksFound = true;\n }\n }\n\n if (!hooksFound) {\n childEl.__redom_mounted = true;\n return;\n }\n\n var traverse = parentEl;\n var triggered = false;\n\n if (remount || (traverse && traverse.__redom_mounted)) {\n trigger(childEl, remount ? 'onremount' : 'onmount');\n triggered = true;\n }\n\n while (traverse) {\n var parent = traverse.parentNode;\n var parentHooks = traverse.__redom_lifecycle || (traverse.__redom_lifecycle = {});\n\n for (var hook in hooks) {\n parentHooks[hook] = (parentHooks[hook] || 0) + hooks[hook];\n }\n\n if (triggered) {\n break;\n } else {\n if (traverse === document ||\n (shadowRootAvailable && (traverse instanceof window.ShadowRoot)) ||\n (parent && parent.__redom_mounted)\n ) {\n trigger(traverse, remount ? 'onremount' : 'onmount');\n triggered = true;\n }\n traverse = parent;\n }\n }\n};\n\nvar trigger = function (el, eventName) {\n if (eventName === 'onmount' || eventName === 'onremount') {\n el.__redom_mounted = true;\n } else if (eventName === 'onunmount') {\n el.__redom_mounted = false;\n }\n\n var hooks = el.__redom_lifecycle;\n\n if (!hooks) {\n return;\n }\n\n var view = el.__redom_view;\n var hookCount = 0;\n\n view && view[eventName] && view[eventName]();\n\n for (var hook in hooks) {\n if (hook) {\n hookCount++;\n }\n }\n\n if (hookCount) {\n var traverse = el.firstChild;\n\n while (traverse) {\n var next = traverse.nextSibling;\n\n trigger(traverse, eventName);\n\n traverse = next;\n }\n }\n};\n\nvar setStyle = function (view, arg1, arg2) {\n var el = getEl(view);\n\n if (arg2 !== undefined) {\n el.style[arg1] = arg2;\n } else if (typeof arg1 === 'string') {\n el.setAttribute('style', arg1);\n } else {\n for (var key in arg1) {\n setStyle(el, key, arg1[key]);\n }\n }\n};\n\n/* global SVGElement */\n\nvar xlinkns = 'http://www.w3.org/1999/xlink';\n\nvar setAttr = function (view, arg1, arg2) {\n var el = getEl(view);\n var isSVG = el instanceof SVGElement;\n\n var isFunc = typeof arg2 === 'function';\n\n if (arg2 !== undefined) {\n if (arg1 === 'style') {\n setStyle(el, arg2);\n } else if (isSVG && isFunc) {\n el[arg1] = arg2;\n } else if (arg1 === 'dataset') {\n setData(el, arg2);\n } else if (!isSVG && (arg1 in el || isFunc)) {\n el[arg1] = arg2;\n } else {\n if (isSVG && (arg1 === 'xlink')) {\n setXlink(el, arg2);\n return;\n }\n el.setAttribute(arg1, arg2);\n }\n } else {\n for (var key in arg1) {\n setAttr(el, key, arg1[key]);\n }\n }\n};\n\nfunction setXlink (el, obj) {\n for (var key in obj) {\n el.setAttributeNS(xlinkns, key, obj[key]);\n }\n}\n\nfunction setData (el, obj) {\n for (var key in obj) {\n el.dataset[key] = obj[key];\n }\n}\n\nvar text = function (str) { return document.createTextNode((str != null) ? str : ''); };\n\nvar parseArguments = function (element, args) {\n for (var i = 0, list = args; i < list.length; i += 1) {\n var arg = list[i];\n\n if (arg !== 0 && !arg) {\n continue;\n }\n\n var type = typeof arg;\n\n // support middleware\n if (type === 'function') {\n arg(element);\n } else if (type === 'string' || type === 'number') {\n element.appendChild(text(arg));\n } else if (isNode(getEl(arg))) {\n mount(element, arg);\n } else if (arg.length) {\n parseArguments(element, arg);\n } else if (type === 'object') {\n setAttr(element, arg);\n }\n }\n};\n\nvar ensureEl = function (parent) { return typeof parent === 'string' ? html(parent) : getEl(parent); };\nvar getEl = function (parent) { return (parent.nodeType && parent) || (!parent.el && parent) || getEl(parent.el); };\nvar isNode = function (a) { return a && a.nodeType; };\n\nvar htmlCache = {};\n\nvar memoizeHTML = function (query) { return htmlCache[query] || (htmlCache[query] = createElement(query)); };\n\nvar html = function (query) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var element;\n\n var type = typeof query;\n\n if (type === 'string') {\n element = memoizeHTML(query).cloneNode(false);\n } else if (isNode(query)) {\n element = query.cloneNode(false);\n } else if (type === 'function') {\n var Query = query;\n element = new (Function.prototype.bind.apply( Query, [ null ].concat( args) ));\n } else {\n throw new Error('At least one argument required');\n }\n\n parseArguments(getEl(element), args);\n\n return element;\n};\n\nhtml.extend = function (query) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var clone = memoizeHTML(query);\n\n return html.bind.apply(html, [ this, clone ].concat( args ));\n};\n\nvar el = html;\nvar h = html;\n\nvar setChildren = function (parent) {\n var children = [], len = arguments.length - 1;\n while ( len-- > 0 ) children[ len ] = arguments[ len + 1 ];\n\n var parentEl = getEl(parent);\n var current = traverse(parent, children, parentEl.firstChild);\n\n while (current) {\n var next = current.nextSibling;\n\n unmount(parent, current);\n\n current = next;\n }\n};\n\nfunction traverse (parent, children, _current) {\n var current = _current;\n\n var childEls = new Array(children.length);\n\n for (var i = 0; i < children.length; i++) {\n childEls[i] = children[i] && getEl(children[i]);\n }\n\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n var child = children[i$1];\n\n if (!child) {\n continue;\n }\n\n var childEl = childEls[i$1];\n\n if (childEl === current) {\n current = current.nextSibling;\n continue;\n }\n\n if (isNode(childEl)) {\n var next = current && current.nextSibling;\n var exists = child.__redom_index != null;\n var replace = exists && next === childEls[i$1 + 1];\n\n mount(parent, child, current, replace);\n\n if (replace) {\n current = next;\n }\n\n continue;\n }\n\n if (child.length != null) {\n current = traverse(parent, child, current);\n }\n }\n\n return current;\n}\n\nvar propKey = function (key) { return function (item) { return item[key]; }; };\n\nvar listPool = function (View, key, initData) {\n return new ListPool(View, key, initData);\n};\n\nvar ListPool = function ListPool (View, key, initData) {\n this.View = View;\n this.initData = initData;\n this.oldLookup = {};\n this.lookup = {};\n this.oldViews = [];\n this.views = [];\n\n if (key != null) {\n this.key = typeof key === 'function' ? key : propKey(key);\n }\n};\nListPool.prototype.update = function update (data, context) {\n var ref = this;\n var View = ref.View;\n var key = ref.key;\n var initData = ref.initData;\n var keySet = key != null;\n\n var oldLookup = this.lookup;\n var newLookup = {};\n\n var newViews = new Array(data.length);\n var oldViews = this.views;\n\n for (var i = 0; i < data.length; i++) {\n var item = data[i];\n var view = (void 0);\n\n if (keySet) {\n var id = key(item);\n\n view = oldLookup[id] || new View(initData, item, i, data);\n newLookup[id] = view;\n view.__redom_id = id;\n } else {\n view = oldViews[i] || new View(initData, item, i, data);\n }\n view.update && view.update(item, i, data, context);\n\n var el = getEl(view.el);\n\n el.__redom_view = view;\n newViews[i] = view;\n }\n\n this.oldViews = oldViews;\n this.views = newViews;\n\n this.oldLookup = oldLookup;\n this.lookup = newLookup;\n};\n\nvar list = function (parent, View, key, initData) {\n return new List(parent, View, key, initData);\n};\n\nvar List = function List (parent, View, key, initData) {\n this.__redom_list = true;\n this.View = View;\n this.initData = initData;\n this.views = [];\n this.pool = new ListPool(View, key, initData);\n this.el = ensureEl(parent);\n this.keySet = key != null;\n};\nList.prototype.update = function update (data, context) {\n if ( data === void 0 ) data = [];\n\n var ref = this;\n var keySet = ref.keySet;\n var oldViews = this.views;\n\n this.pool.update(data, context);\n\n var ref$1 = this.pool;\n var views = ref$1.views;\n var lookup = ref$1.lookup;\n\n if (keySet) {\n for (var i = 0; i < oldViews.length; i++) {\n var oldView = oldViews[i];\n var id = oldView.__redom_id;\n\n if (lookup[id] == null) {\n oldView.__redom_index = null;\n unmount(this, oldView);\n }\n }\n }\n\n for (var i$1 = 0; i$1 < views.length; i$1++) {\n var view = views[i$1];\n\n view.__redom_index = i$1;\n }\n\n setChildren(this, views);\n\n if (keySet) {\n this.lookup = lookup;\n }\n this.views = views;\n};\n\nList.extend = function (parent, View, key, initData) {\n return List.bind(List, parent, View, key, initData);\n};\n\nlist.extend = List.extend;\n\n/* global Node */\n\nvar place = function (View, initData) {\n return new Place(View, initData);\n};\n\nvar Place = function Place (View, initData) {\n this.el = text('');\n this.visible = false;\n this.view = null;\n this._placeholder = this.el;\n\n if (View instanceof Node) {\n this._el = View;\n } else {\n this._View = View;\n }\n\n this._initData = initData;\n};\nPlace.prototype.update = function update (visible, data) {\n var placeholder = this._placeholder;\n var parentNode = this.el.parentNode;\n\n if (visible) {\n if (!this.visible) {\n if (this._el) {\n mount(parentNode, this._el, placeholder);\n unmount(parentNode, placeholder);\n\n this.el = this._el;\n this.visible = visible;\n\n return;\n }\n var View = this._View;\n var view = new View(this._initData);\n\n this.el = getEl(view);\n this.view = view;\n\n mount(parentNode, view, placeholder);\n unmount(parentNode, placeholder);\n }\n this.view && this.view.update && this.view.update(data);\n } else {\n if (this.visible) {\n if (this._el) {\n mount(parentNode, placeholder, this._el);\n unmount(parentNode, this._el);\n\n this.el = placeholder;\n this.visible = visible;\n\n return;\n }\n mount(parentNode, placeholder, this.view);\n unmount(parentNode, this.view);\n\n this.el = placeholder;\n this.view = null;\n }\n }\n this.visible = visible;\n};\n\nvar router = function (parent, Views, initData) {\n return new Router(parent, Views, initData);\n};\n\nvar Router = function Router (parent, Views, initData) {\n this.el = ensureEl(parent);\n this.Views = Views;\n this.initData = initData;\n};\nRouter.prototype.update = function update (route, data) {\n if (route !== this.route) {\n var Views = this.Views;\n var View = Views[route];\n\n this.route = route;\n this.view = View && new View(this.initData, data);\n\n setChildren(this.el, [ this.view ]);\n }\n this.view && this.view.update && this.view.update(data, route);\n};\n\nvar ns = 'http://www.w3.org/2000/svg';\n\nvar svgCache = {};\n\nvar memoizeSVG = function (query) { return svgCache[query] || (svgCache[query] = createElement(query, ns)); };\n\nvar svg = function (query) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var element;\n\n var type = typeof query;\n\n if (type === 'string') {\n element = memoizeSVG(query).cloneNode(false);\n } else if (isNode(query)) {\n element = query.cloneNode(false);\n } else if (type === 'function') {\n var Query = query;\n element = new (Function.prototype.bind.apply( Query, [ null ].concat( args) ));\n } else {\n throw new Error('At least one argument required');\n }\n\n parseArguments(getEl(element), args);\n\n return element;\n};\n\nsvg.extend = function (query) {\n var clone = memoizeSVG(query);\n\n return svg.bind(this, clone);\n};\n\nsvg.ns = ns;\n\nvar s = svg;\n\nexport { el, h, html, list, List, listPool, ListPool, mount, unmount, place, Place, router, Router, setAttr, setStyle, setChildren, s, svg, text };\n","export default class Language {\r\n\r\n setLocale(locale) {\r\n window.CookieConsent.config.language.current = locale;\r\n }\r\n \r\n static getTranslation(object, locale, key) {\r\n var currentLocale;\r\n\r\n if(!object.hasOwnProperty('language')) return '[Missing language object]';\r\n if(!object.language.hasOwnProperty('locale')) return '[Missing locale object]'\r\n \r\n currentLocale = (object.language.locale.hasOwnProperty(locale)) ? locale : 'en';\r\n\r\n return (object.language.locale[currentLocale].hasOwnProperty(key)) ? object.language.locale[currentLocale][key] : '[Missing translation]';\r\n }\r\n\r\n}","import { el, mount } from 'redom';\nimport Language from './Language';\nimport Utilities from \"./Utilities\";\n\nexport default class Interface {\n\n constructor() {\n this.elements = {};\n }\n\n\n buildStyle() {\n return el('style',\n '#cconsent-bar, #cconsent-bar * { box-sizing:border-box }', \n '#cconsent-bar { background-color:' + window.CookieConsent.config.theme.barColor + '; color:' + window.CookieConsent.config.theme.barTextColor + '; padding:15px; text-align:right; font-family:sans-serif; font-size:14px; line-height:18px; position:fixed; bottom:0; left:0; width:100%; z-index:9998; transform: translateY(0); transition: transform .6s ease-in-out; transition-delay: .3s;}', \n '#cconsent-bar.ccb--hidden {transform: translateY(100%); display:block;}', \n '#cconsent-bar .ccb__wrapper { display:flex; flex-wrap:wrap; justify-content:space-between; max-width:1800px; margin:0 auto;}',\n '#cconsent-bar .ccb__left { align-self:center; text-align:left; margin: 15px 0;}',\n '#cconsent-bar .ccb__right { align-self:center; white-space: nowrap;}',\n '#cconsent-bar .ccb__right > div {display:inline-block; color:#FFF;}',\n '#cconsent-bar a { text-decoration:underline; color:' + window.CookieConsent.config.theme.barTextColor + '; }',\n '#cconsent-bar button { line-height:normal; font-size:14px; border:none; padding:10px 10px; color:' + window.CookieConsent.config.theme.barMainButtonTextColor + '; background-color:' + window.CookieConsent.config.theme.barMainButtonColor + ';}',\n '#cconsent-bar a.ccb__edit { margin-right:15px }',\n '#cconsent-bar a:hover, #cconsent-bar button:hover { cursor:pointer; }',\n '#cconsent-modal { display:none; font-size:14px; line-height:18px; color:#666; width: 100vw; height: 100vh; position:fixed; left:0; top:0; right:0; bottom:0; font-family:sans-serif; font-size:14px; background-color:rgba(0,0,0,0.6); z-index:9999; align-items:center; justify-content:center;}',\n '@media (max-width: 600px) { #cconsent-modal { height: 100% } }',\n '#cconsent-modal h2, #cconsent-modal h3 {color:#333}',\n '#cconsent-modal.ccm--visible {display:flex}',\n '#cconsent-modal .ccm__content { max-width:600px; min-height:500px; max-height:600px; overflow-Y:auto; background-color:#EFEFEF; }',\n '@media (max-width: 600px) { #cconsent-modal .ccm__content { max-width:100vw; height:100%; max-height:initial; }}',\n '#cconsent-modal .ccm__content > .ccm__content__heading { border-bottom:1px solid #D8D8D8; padding:35px 35px 20px; background-color:#EFEFEF; position:relative;}',\n '#cconsent-modal .ccm__content > .ccm__content__heading h2 { font-size:21px; font-weight:600; color:#333; margin:0 }',\n '#cconsent-modal .ccm__content > .ccm__content__heading .ccm__cheading__close {font-weight:600; color:#888; cursor:pointer; font-size:26px; position: absolute; right:15px; top: 15px;}',\n '#cconsent-modal h2, #cconsent-modal h3 {margin-top:0}',\n '#cconsent-modal .ccm__content > .ccm__content__body { background-color:#FFF;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup {margin:0; border-bottom: 1px solid #D8D8D8; }',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup .ccm__tab-head::before { position:absolute; left:35px; font-size:1.4em; font-weight: 600; color:#E56385; content:\"×\"; display:inline-block; margin-right: 20px;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup.checked-5jhk .ccm__tab-head::before {font-size:1em; content:\"✔\"; color:#28A834}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup .ccm__tab-head .ccm__tab-head__icon-wedge { transition: transform .3s ease-out; transform-origin: 16px 6px 0; position:absolute;right:25px; top:50%; transform:rotate(0deg); transform:translateY(-50%)}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup .ccm__tab-head .ccm__tab-head__icon-wedge > svg { pointer-events: none; }',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup.ccm__tabgroup--open .ccm__tab-head .ccm__tab-head__icon-wedge {transform:rotate(-180deg)}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-head {color:#333; padding:17px 35px 17px 56px; margin:0}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content {padding:25px 35px; margin:0}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-head { transition: background-color .5s ease-out }',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-head:hover { background-color:#F9F9F9 }',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-head {font-weight:600; cursor:pointer; position:relative;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup .ccm__tab-content {display:none;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup.ccm__tabgroup--open .ccm__tab-head { background-color:#F9F9F9 }',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup.ccm__tabgroup--open .ccm__tab-content {display:flex;}',\n '@media (max-width: 600px) { #cconsent-modal .ccm__content > .ccm__content__body .ccm__tabgroup.ccm__tabgroup--open .ccm__tab-content {flex-direction:column} }',\n '@media (max-width: 600px) { #cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__left { margin-bottom:20px; } }',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__left .ccm__switch-component {display:flex; margin-right:35px; align-items:center;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__left .ccm__switch-component > div {font-weight:600;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__left .ccm__switch-group {width:40px; height:20px; margin:0 10px; position:relative;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__left .ccm__switch {position: absolute; top:0; right:0; display: inline-block; width: 40px; height: 20px;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__left .ccm__switch input {display:none;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__left .ccm__switch .ccm__switch__slider {position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; border-radius:10px; -webkit-transition: .4s; transition: .4s;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__left .ccm__switch .ccm__switch__slider:before {position: absolute; content: \"\"; height: 12px; width: 12px; left: 4px; bottom: 4px; background-color: white; border-radius:50%; -webkit-transition: .4s; transition: .4s;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__left .ccm__switch input:checked + .ccm__switch__slider {background-color: #28A834;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__left .ccm__switch input:focus + .ccm__switch__slider {box-shadow: 0 0 1px #28A834;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__tab-content__left .ccm__switch input:checked + .ccm__switch__slider:before {-webkit-transform: translateX(20px); -ms-transform: translateX(20px); transform: translateX(20px);}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content h3 {font-size:18px; margin-bottom:10px; line-height:1;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content p {color:#444; margin-bottom:0}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__list:not(:empty) {margin-top:30px;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__list .ccm__list__title {color:#333; font-weight:600;}',\n '#cconsent-modal .ccm__content > .ccm__content__body .ccm__tab-content .ccm__list ul { margin:15px 0; padding-left:15px }',\n '#cconsent-modal .ccm__footer { padding:35px; background-color:#EFEFEF; text-align:center; display: flex; align-items:center; justify-content:flex-end; }',\n '#cconsent-modal .ccm__footer button { line-height:normal; font-size:14px; transition: background-color .5s ease-out; background-color:' + window.CookieConsent.config.theme.modalMainButtonColor + '; color:' + window.CookieConsent.config.theme.modalMainButtonTextColor + '; border:none; padding:13px; min-width:110px; border-radius: 2px; cursor:pointer; }',\n '#cconsent-modal .ccm__footer button:hover { background-color:' + Utilities.lightenDarkenColor(window.CookieConsent.config.theme.modalMainButtonColor, -20) + '; }',\n '#cconsent-modal .ccm__footer button#ccm__footer__consent-modal-submit { margin-right:10px; }'\n );\n }\n\n buildBar() {\n return el('div#cconsent-bar.ccb--hidden',\n el(`div.ccb__wrapper`,\n el('div.ccb__left',\n el('div.cc-text', Language.getTranslation(window.CookieConsent.config, window.CookieConsent.config.language.current, 'barMainText'))\n ),\n el('div.ccb__right',\n el('div.ccb__button',\n el('a.ccb__edit', Language.getTranslation(window.CookieConsent.config, window.CookieConsent.config.language.current, 'barLinkSetting')),\n el('button.consent-give', Language.getTranslation(window.CookieConsent.config, window.CookieConsent.config.language.current, 'barBtnAcceptAll'))\n )\n )\n ),\n );\n }\n\n buildModal() {\n\n // Cookie names list middleware\n var listCookies = function(category) {\n var list = [];\n\n for(let service in window.CookieConsent.config.services) {\n (window.CookieConsent.config.services[service].category === category) && list.push(window.CookieConsent.config.services[service]);\n }\n \n if(list.length) {\n \n var listItems = [];\n \n for(let item in list) {\n listItems.push(el('li', Language.getTranslation(list[item], window.CookieConsent.config.language.current, 'name')));\n }\n\n return [el('div.ccm__list', el('span.ccm__list__title', Language.getTranslation(window.CookieConsent.config, window.CookieConsent.config.language.current, 'modalAffectedSolutions')), el('ul', listItems))];\n }\n }\n \n function modalTabGroups() {\n\n let contentItems = [];\n\n let i = 0;\n for (let key in window.CookieConsent.config.categories) {\n\n contentItems.push(el('dl.ccm__tabgroup' + '.' + key + ((window.CookieConsent.config.categories[key].checked) ? '.checked-5jhk' : ''), {'data-category':key},\n el('dt.ccm__tab-head', Language.getTranslation(window.CookieConsent.config.categories[key], window.CookieConsent.config.language.current, 'name'),\n el('a.ccm__tab-head__icon-wedge', \n el(document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\"), { version: \"1.2\", preserveAspectRatio: \"none\", viewBox: \"0 0 24 24\", class: \"icon-wedge-svg\", \"data-id\": \"e9b3c566e8c14cfea38af128759b91a3\", style: \"opacity: 1; mix-blend-mode: normal; fill: rgb(51, 51, 51); width: 32px; height: 32px;\"},\n el(document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\"), { 'xmlns:default': \"http://www.w3.org/2000/svg\", id: \"angle-down\", d: \"M17.2,9.84c0-0.09-0.04-0.18-0.1-0.24l-0.52-0.52c-0.13-0.13-0.33-0.14-0.47-0.01c0,0-0.01,0.01-0.01,0.01 l-4.1,4.1l-4.09-4.1C7.78,8.94,7.57,8.94,7.44,9.06c0,0-0.01,0.01-0.01,0.01L6.91,9.6c-0.13,0.13-0.14,0.33-0.01,0.47 c0,0,0.01,0.01,0.01,0.01l4.85,4.85c0.13,0.13,0.33,0.14,0.47,0.01c0,0,0.01-0.01,0.01-0.01l4.85-4.85c0.06-0.06,0.1-0.15,0.1-0.24 l0,0H17.2z\", style: \"fill: rgb(51, 51, 51);\" })\n )\n ),\n ),\n el('dd.ccm__tab-content',\n el('div.ccm__tab-content__left', \n ( ! window.CookieConsent.config.categories[key].needed) && el('div.ccm__switch-component', el('div.status-off', Language.getTranslation(window.CookieConsent.config, window.CookieConsent.config.language.current, 'off')),\n el('div.ccm__switch-group',\n el('label.ccm__switch',\n el('input.category-onoff', {type:'checkbox', 'data-category': key, 'checked': window.CookieConsent.config.categories[key].checked}),\n el('span.ccm__switch__slider')\n )\n ),\n el('div.status-on', Language.getTranslation(window.CookieConsent.config, window.CookieConsent.config.language.current, 'on')))\n ),\n el('div.right',\n el('h3', Language.getTranslation(window.CookieConsent.config.categories[key], window.CookieConsent.config.language.current, 'name')),\n el('p', Language.getTranslation(window.CookieConsent.config.categories[key], window.CookieConsent.config.language.current, 'description')),\n el('div.ccm__list',\n listCookies(key)\n )\n )\n )\n )\n );\n\n i++;\n }\n\n return contentItems;\n }\n\n return el('div#cconsent-modal',\n el('div.ccm__content',\n el('div.ccm__content__heading',\n el('h2', Language.getTranslation(window.CookieConsent.config, window.CookieConsent.config.language.current, 'modalMainTitle')),\n el('p',\n Language.getTranslation(window.CookieConsent.config, window.CookieConsent.config.language.current, 'modalMainText'),\n (window.CookieConsent.config.modalMainTextMoreLink) ? el('a', { href: window.CookieConsent.config.modalMainTextMoreLink, target: '_blank', rel: 'noopener noreferrer' }, Language.getTranslation(window.CookieConsent.config, window.CookieConsent.config.language.current, 'modalMainTitle')) : null\n ),\n el('div.ccm__cheading__close', '×')\n ),\n el('div.ccm__content__body',\n el('div.ccm__tabs',\n modalTabGroups()\n )\n ),\n el('div.ccm__footer',\n el('button#ccm__footer__consent-modal-submit', Language.getTranslation(window.CookieConsent.config, window.CookieConsent.config.language.current, 'modalBtnSave')),\n el('button.consent-give', Language.getTranslation(window.CookieConsent.config, window.CookieConsent.config.language.current, 'modalBtnAcceptAll'))\n )\n )\n );\n }\n\n modalRedrawIcons() {\n var tabGroups = this.elements['modal'].querySelectorAll('.ccm__tabgroup');\n\n for(let tabGroup of tabGroups) {\n if(window.CookieConsent.config.categories[tabGroup.dataset.category].checked) {\n if( ! tabGroup.classList.contains('checked-5jhk')) {\n tabGroup.classList.add('checked-5jhk');\n tabGroup.querySelector('input.category-onoff').checked = true;\n };\n } else {\n if(tabGroup.classList.contains('checked-5jhk')) tabGroup.classList.remove('checked-5jhk');\n tabGroup.querySelector('input.category-onoff').checked = false;\n }\n }\n }\n\n render(name, elem, callback) {\n if (typeof callback === 'undefined') callback = function(){};\n if (typeof this.elements[name] !== 'undefined') {\n this.elements[name].parentNode.replaceChild(elem, this.elements[name]);\n this.elements[name] = elem;\n callback(elem);\n return elem;\n } else {\n var insertedElem = mount(document.body, elem);\n if (insertedElem) {\n this.elements[name] = insertedElem;\n }\n callback(insertedElem);\n return insertedElem;\n }\n }\n\n buildInterface(callback) {\n\n if (typeof callback === 'undefined') callback = function(){};\n var that = this;\n\n Utilities.ready(function() {\n\n that.render('style', that.buildStyle());\n\n that.render('bar', that.buildBar(), (bar) => {\n\n // Show the bar after a while\n if ( ! window.CookieConsent.config.cookieExists) {\n setTimeout(() => {\n bar.classList.remove('ccb--hidden');\n }, window.CookieConsent.config.barTimeout);\n }\n });\n\n that.render('modal', that.buildModal());\n\n callback();\n });\n }\n\n addEventListeners(elements) {\n\n // If you click Accept all cookies\n var buttonConsentGive = document.querySelectorAll('.consent-give');\n\n for(let button of buttonConsentGive) {\n button.addEventListener('click', () => {\n \n // We set config to full consent\n for(let key in window.CookieConsent.config.categories) {\n window.CookieConsent.config.categories[key].wanted =\n window.CookieConsent.config.categories[key].checked = true;\n }\n \n this.writeBufferToDOM();\n \n this.buildCookie((cookie) => {\n this.setCookie(cookie);\n });\n \n this.elements['bar'].classList.add('ccb--hidden');\n this.elements['modal'].classList.remove('ccm--visible');\n\n this.modalRedrawIcons();\n \n });\n }\n\n\n // If you click Cookie settings and open modal\n Array.prototype.forEach.call(document.getElementsByClassName('ccb__edit'), (edit) => {\n edit.addEventListener('click', () => {\n this.elements['modal'].classList.add('ccm--visible');\n });\n });\n\n // If you click trough the tabs on Cookie settings\n // If you click on/off switch\n this.elements['modal'].querySelector('.ccm__tabs').addEventListener('click', (event) => {\n\n // If you click trough the tabs on Cookie settings\n if (event.target.classList.contains('ccm__tab-head') || event.target.classList.contains('ccm__tab-head__icon-wedge')) {\n\n function getDlParent(eventTarget) {\n var parent = eventTarget.parentNode;\n if(parent.nodeName !== 'DL') {\n return getDlParent(parent);\n } else {\n return parent;\n }\n }\n \n var parentDl = getDlParent(event.target);\n \n if(parentDl.classList.contains('ccm__tabgroup--open')) {\n parentDl.classList.remove('ccm__tabgroup--open');\n } else {\n parentDl.classList.add('ccm__tabgroup--open');\n }\n }\n\n // If you click on/off switch\n if (event.target.classList.contains('category-onoff')) {\n window.CookieConsent.config.categories[event.target.dataset.category].wanted =\n window.CookieConsent.config.categories[event.target.dataset.category].checked = (event.target.checked === true) ? true : false;\n\n var dt = document.querySelector('.ccm__tabgroup.' + event.target.dataset.category);\n if(event.target.checked === false && dt.classList.contains('checked-5jhk')) {\n dt.classList.remove('checked-5jhk');\n } else {\n dt.classList.add('checked-5jhk');\n }\n }\n });\n\n\n\n // If you click close on open modal\n this.elements['modal'].querySelector('.ccm__cheading__close').addEventListener('click', (event) => {\n this.elements['modal'].classList.remove('ccm--visible');\n });\n\n // If you click submit on cookie settings\n document.getElementById('ccm__footer__consent-modal-submit').addEventListener('click', () => {\n\n let switchElements = this.elements['modal'].querySelectorAll('.ccm__switch input');\n\n Array.prototype.forEach.call(switchElements, (switchElement) => {\n window.CookieConsent.config.categories[switchElement.dataset.category].wanted = switchElement.checked;\n });\n\n this.buildCookie((cookie) => {\n this.setCookie(cookie, () => {\n this.elements['modal'].classList.remove('ccm--visible');\n this.elements['bar'].classList.add('ccb--hidden');\n });\n });\n\n this.writeBufferToDOM();\n\n });\n }\n\n writeBufferToDOM() {\n\n for(let action of window.CookieConsent.buffer.appendChild) {\n if (window.CookieConsent.config.categories[action.category].wanted === true) {\n Node.prototype.appendChild.apply(action.this, action.arguments);\n }\n }\n\n for(let action of window.CookieConsent.buffer.insertBefore) {\n if (window.CookieConsent.config.categories[action.category].wanted === true) {\n action.arguments[1] = (action.arguments[0].parentNode === null) ? action.this.lastChild : action.arguments[1];\n Node.prototype.insertBefore.apply(action.this, action.arguments);\n }\n }\n }\n\n buildCookie(callback) {\n let cookie = {\n version: window.CookieConsent.config.cookieVersion,\n categories: {},\n services: []\n };\n \n for(let key in window.CookieConsent.config.categories) {\n cookie.categories[key] = {\n wanted: window.CookieConsent.config.categories[key].wanted,\n };\n }\n\n cookie.services = Utilities.listGlobalServices();\n \n if (callback) callback(cookie);\n return cookie;\n }\n \n setCookie(cookie, callback) {\n document.cookie = `cconsent=${JSON.stringify(cookie)}; expires=Thu, 01 Jan 2099 00:00:00 UTC; path=/;`;\n if (callback) callback();\n }\n}\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n if (isObject(srcValue)) {\n stack || (stack = new Stack);\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","import Utilities from \"./Utilities\";\r\nimport loMerge from 'lodash/merge';\r\n\r\nexport default class Configuration {\r\n \r\n constructor(configObject) {\r\n\r\n window.CookieConsent.buffer = {\r\n appendChild: [],\r\n insertBefore: []\r\n }\r\n\r\n // Wrapper filter function\r\n window.CookieConsent.wrapper = function() {};\r\n\r\n // Settings injector for users\r\n window.CookieConsent.setConfiguration = this.setConfiguration.bind(this);\r\n\r\n window.CookieConsent.config = {\r\n active: true,\r\n cookieExists: false,\r\n cookieVersion: 1,\r\n modalMainTextMoreLink: null,\r\n barTimeout: 1000,\r\n theme: {\r\n barColor: '#2C7CBF',\r\n barTextColor: '#FFF',\r\n barMainButtonColor: '#FFF',\r\n barMainButtonTextColor: '#2C7CBF',\r\n modalMainButtonColor: '#4285F4',\r\n modalMainButtonTextColor: '#FFF',\r\n },\r\n language: {\r\n current: 'en',\r\n locale: {\r\n en: {\r\n barMainText: 'This website uses cookies to ensure you get the best experience on our website.',\r\n barLinkSetting: 'Cookie Settings',\r\n barBtnAcceptAll: 'Accept all cookies',\r\n modalMainTitle: 'Cookie settings',\r\n modalMainText: 'Cookies are small piece of data sent from a website and stored on the user\\'s computer by the user\\'s web browser while the user is browsing. Your browser stores each message in a small file, called cookie. When you request another page from the server, your browser sends the cookie back to the server. Cookies were designed to be a reliable mechanism for websites to remember information or to record the user\\'s browsing activity.',\r\n modalBtnSave: 'Save current settings',\r\n modalBtnAcceptAll: 'Accept all cookies and close',\r\n modalAffectedSolutions: 'Affected solutions:',\r\n learnMore: 'Learn More',\r\n on: 'On',\r\n off: 'Off',\r\n },\r\n hu: {\r\n barMainText: 'Ez a weboldal Sütiket használ a jobb felhasználói élmény érdekében.',\r\n barLinkSetting: 'Süti beállítások',\r\n barBtnAcceptAll: 'Minden süti elfogadása',\r\n modalMainTitle: 'Süti beállítások',\r\n modalMainText: 'A HTTP-süti (általában egyszerűen süti, illetve angolul cookie) egy információcsomag, amelyet a szerver küld a webböngészőnek, majd a böngésző visszaküld a szervernek minden, a szerver felé irányított kérés alkalmával. Amikor egy weboldalt kérünk le a szervertől, akkor a böngésző elküldi a számára elérhető sütiket. A süti-ket úgy tervezték, hogy megbízható mechanizmust biztosítsanak a webhelyek számára az információk megőrzésére vagy a felhasználók böngészési tevékenységének rögzítésére.',\r\n modalBtnSave: 'Beállítások mentése',\r\n modalBtnAcceptAll: 'Minden Süti elfogadása',\r\n modalAffectedSolutions: 'Mire lesz ez hatással:',\r\n learnMore: 'Tudj meg többet',\r\n on: 'Be',\r\n off: 'Ki',\r\n }\r\n }\r\n },\r\n categories: {},\r\n services: {}\r\n }\r\n\r\n this.setConfiguration(configObject);\r\n\r\n }\r\n\r\n setConfiguration(configObject) {\r\n // The user overrides the default config\r\n loMerge(window.CookieConsent.config, configObject);\r\n\r\n // The cookie overrides the default and user config\r\n this.cookieToConfig();\r\n\r\n // We tell the world we did this\r\n Utilities.dispatchEvent(document, 'CCConfigSet');\r\n }\r\n\r\n cookieToConfig() {\r\n\r\n function removeReload() {\r\n Utilities.removeCookie();\r\n location.reload();\r\n return false;\r\n }\r\n\r\n document.cookie.split(';').filter((item) => {\r\n\r\n if (item.indexOf('cconsent') >= 0) {\r\n var cookieData = JSON.parse(item.split('=')[1]);\r\n\r\n // We check cookie version. If older we need to renew cookie.\r\n if (typeof cookieData.version === 'undefined') {\r\n return removeReload();\r\n } else {\r\n if (cookieData.version !== window.CookieConsent.config.cookieVersion) {\r\n return removeReload();\r\n }\r\n }\r\n\r\n // We check if cookie data categories also exist in user config\r\n for (let key in cookieData.categories) {\r\n\r\n // The cookie contains category not present in user config so we invalidate cookie\r\n if(typeof window.CookieConsent.config.categories[key] === 'undefined') {\r\n return removeReload();\r\n }\r\n }\r\n\r\n // We check if cookie data services also exist in user config\r\n cookieData.services.forEach(function(service){\r\n\r\n // The cookie contains service not present in user config so we invalidate cookie\r\n if(typeof window.CookieConsent.config.services[service] === 'undefined') {\r\n return removeReload();\r\n } \r\n });\r\n\r\n // We we integrate cookie data into the global config object\r\n for (let key in cookieData.categories) {\r\n window.CookieConsent.config.categories[key].checked = window.CookieConsent.config.categories[key].wanted = (cookieData.categories[key].wanted === true) ? true : false;\r\n }\r\n\r\n window.CookieConsent.config.cookieExists = true;\r\n return true;\r\n }\r\n });\r\n \r\n return false;\r\n }\r\n\r\n}\r\n","import InsertScriptFilter from './InsertScriptFilter';\r\nimport ScriptTagFilter from './ScriptTagFilter';\r\nimport WrapperFilter from './WrapperFilter';\r\nimport LocalCookieFilter from './LocalCookieFilter';\r\nimport Interface from './Interface';\r\nimport Configuration from './Configuration';\r\n\r\nexport default class CookieConsent {\r\n\r\n init(configObject) {\r\n new Configuration(configObject);\r\n\r\n const insertScriptFilter = new InsertScriptFilter();\r\n const scriptTagFilter = new ScriptTagFilter();\r\n const wrapperFilter = new WrapperFilter();\r\n const localCookieFilter = new LocalCookieFilter();\r\n\r\n insertScriptFilter.init();\r\n scriptTagFilter.init();\r\n wrapperFilter.init();\r\n localCookieFilter.init();\r\n\r\n const UI = new Interface();\r\n\r\n UI.buildInterface(() => {\r\n UI.addEventListeners();\r\n });\r\n }\r\n\r\n}","import 'core-js/es6/symbol';\r\nimport 'core-js/fn/symbol/iterator';\r\nimport CookieConsent from './lib/CookieConsent';\r\n\r\nconst cookieConsent = new CookieConsent();\r\n\r\nwindow.CookieConsent = window.CookieConsent || {};\r\nwindow.CookieConsent.init = cookieConsent.init;\r\n\r\n"]}