PageSourceSearch

https://www.martinkoolhoven.nl/static/js-bundles/Mfe.bundle.js

js martinkoolhoven.nl collected 2026-10-08 23:36:36 UTC 1,555,323 bytes, 20,076 lines download raw bytes

vendor: 4,263 bytes, lines 1-2
1/*! jQuery v3.1.0 | (c) jQuery Foundation | jquery.org/license */
2!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.0",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*ne
vendor: 26,191 bytes, line 2
2w Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];
vendor: 4,079 bytes, lines 2-3
2e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,
3r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c||"false"!==c&&("null"===c?null:+c+""===c?+c:X.test(c)?JSON.parse(c):c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),Z(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=Z(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;
vendor: 17,080 bytes, line 3
3if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var $=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,_=new RegExp("^(?:([+-])=|)("+$+")([a-z%]*)$","i"),aa=["Top","Right","Bottom","Left"],ba=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ca=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function da(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&_.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ea={};function fa(a){var b,c=a.ownerDocument,d=a.nodeName,e=ea[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ea[d]=e,e)}function ga(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ba(d)&&(e[f]=fa(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ga(this,!0)},hide:function(){return ga(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ba(this)?r(this).show():r(this).hide()})}});var ha=/^(?:checkbox|radio)$/i,ia=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ja=/^$|\/(?:java|ecma)script/i,ka={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ka.optgroup=ka.option,ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead,ka.th=ka.td;function la(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function ma(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var na=/<|&#?\w+;/;function oa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(na.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ia.exec(f)||["",""])[1].toLowerCase(),i=ka[h]||ka._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=la(l.appendChild(f),"script"),j&&ma(g),c){k=0;while(f=g[k++])ja.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var pa=d.documentElement,qa=/^key/,ra=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,sa=/^([^.]*)(?:\.(.+)|)/;function ta(){return!0}function ua(){return!1}function va(){try{return d.activeElement}catch(a){}}function wa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)wa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ua;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(pa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;c<h;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?r(e,this).index(i)>-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==va()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===va()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ta:ua,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:ua,isPropagationStopped:ua,isImmediatePropagationStopped:ua,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ta,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ta,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ta,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&qa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ra.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return wa(this,a,b,c,d)},one:function(a,b,c,d){return wa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=ua),this.each(function(){r.event.remove(this,a,c,b)})}});var xa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,ya=/<script|<style|<link/i,za=/checked\s*(?:[^=]|=\s*.checked.)/i,Aa=/^true\/(.*)/,Ba=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ca(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Da(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ea(a){var b=Aa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ga(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ha.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ha(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&za.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(m&&(e=oa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(la(e,"script"),Da),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,la(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ea),l=0;l<i;l++)j=h[l],ja.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ba,""),k))}return a}function Ia(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(la(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&ma(la(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(xa,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=la(h),f=la(a),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);if(b)if(c)for(f=f||la(a),g=g||la(h),d=0,e=f.length;d<e;d++)Fa(f[d],g[d]);else Fa(a,h);return g=la(h,"script"),g.length>0&&ma(g,!i&&la(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(la(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!ya.test(a)&&!ka[(ia.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(la(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(la(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ja=/^margin/,Ka=new RegExp("^("+$+")(?!px)[a-z%]+$","i"),La=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",pa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,pa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Ma(a,b,c){var d,e,f,g,h=a.style;return c=c||La(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!
vendor: 15,095 bytes, lines 3-4
3o.pixelMarginRight()&&Ka.test(g)&&Ja.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Na(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Oa=/^(none|table(?!-c[ea]).+)/,Pa={position:"absolute",visibility:"hidden",display:"block"},Qa={letterSpacing:"0",fontWeight:"400"},Ra=["Webkit","Moz","ms"],Sa=d.createElement("div").style;function Ta(a){if(a in Sa)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ra.length;while(c--)if(a=Ra[c]+b,a in Sa)return a}function Ua(a,b,c){var d=_.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Va(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+aa[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+aa[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+aa[f]+"Width",!0,e))):(g+=r.css(a,"padding"+aa[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+aa[f]+"Width",!0,e)));return g}function Wa(a,b,c){var d,e=!0,f=La(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Ma(a,b,f),(d<0||null==d)&&(d=a.style[b]),Ka.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Va(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ma(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=_.exec(c))&&e[1]&&(c=da(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Ma(a,b,d)),"normal"===e&&b in Qa&&(e=Qa[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Oa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Wa(a,b,d):ca(a,Pa,function(){return Wa(a,b,d)})},set:function(a,c,d){var e,f=d&&La(a),g=d&&Va(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=_.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ua(a,c,g)}}}),r.cssHooks.marginLeft=Na(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Ma(a,"marginLeft"))||a.getBoundingClientRect().left-ca(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+aa[d]+b]=f[d]||f[d-2]||f[0];return e}},Ja.test(a)||(r.cssHooks[a+b].set=Ua)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=La(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Xa(a,b,c,d,e){return new Xa.prototype.init(a,b,c,d,e)}r.Tween=Xa,Xa.prototype={constructor:Xa,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Xa.propHooks[this.prop];return a&&a.get?a.get(this):Xa.propHooks._default.get(this)},run:function(a){var b,c=Xa.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Xa.propHooks._default.set(this),this}},Xa.prototype.init.prototype=Xa.prototype,Xa.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Xa.propHooks.scrollTop=Xa.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Xa.prototype.init,r.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=/queueHooks$/;function ab(){Za&&(a.requestAnimationFrame(ab),r.fx.tick())}function bb(){return a.setTimeout(function(){Ya=void 0}),Ya=r.now()}function cb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=aa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function db(a,b,c){for(var d,e=(gb.tweeners[b]||[]).concat(gb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function eb(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&ba(a),q=V.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],$a.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ga([a],!0),j=a.style.display||j,k=r.css(a,"display"),ga([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=V.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ga([a],!0),m.done(function(){p||ga([a]),V.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=db(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function fb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function gb(a,b,c){var d,e,f=0,g=gb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||bb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Ya||bb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(fb(k,j.opts.specialEasing);f<g;f++)if(d=gb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,db,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(gb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return da(c.elem,a,_.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(K);for(var c,d=0,e=a.length;d<e;d++)c=a[d],gb.tweeners[c]=gb.tweeners[c]||[],gb.tweeners[c].unshift(b)},prefilters:[eb],prefilter:function(a,b){b?gb.prefilters.unshift(a):gb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:e.duration="number"==typeof e.duration?e.duration:e.duration in r.fx.speeds?r.fx.speeds[e.duration]:r.fx.speeds._default,null!=e.queue&&e.queue!==!0||(e.queue="fx"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ba).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=gb(this,r.extend({},a),f);(e||V.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&_a.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=V.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(cb(b,!0),a,d,e)}}),r.each({slideDown:cb("show"),slideUp:cb("hide"),slideToggle:cb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Ya=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Ya=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){Za||(Za=a.requestAnimationFrame?a.requestAnimationFrame(ab):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame(Za):a.clearInterval(Za),Za=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var hb,ib=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?hb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);
4if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),hb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ib[b]||r.find.attr;ib[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ib[g],ib[g]=e,e=null!=c(a,b,d)?g:null,ib[g]=f),e}});var jb=/^(?:input|select|textarea|button)$/i,kb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):jb.test(a.nodeName)||kb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});var lb=/[\t\r\n\f]/g;function mb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,mb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,mb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,mb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];
vendor: 19,642 bytes, line 4
4while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=mb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(c)+" ").replace(lb," ").indexOf(b)>-1)return!0;return!1}});var nb=/\r/g,ob=/[\x20\t\r\n\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(nb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:r.trim(r.text(a)).replace(ob," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i<h;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ha.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,""),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=oa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=r.trim(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||pa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Na(o.pixelPosition,function(a,c){if(c)return c=Ma(a,b),Ka.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r});
vendor: 23,447 bytes, lines 4-6
4
5
6!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Handlebars=e():t.Handlebars=e()}(this,function(){return function(t){function e(s){if(r[s])return r[s].exports;var i=r[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){"use strict";function s(){var t=u();return t.compile=function(e,r){return c.compile(e,r,t)},t.precompile=function(e,r){return c.precompile(e,r,t)},t.AST=n.default,t.Compiler=c.Compiler,t.JavaScriptCompiler=h.default,t.Parser=o.parser,t.parse=o.parse,t}var i=r(1).default;e.__esModule=!0;var a=i(r(2)),n=i(r(21)),o=r(22),c=r(27),h=i(r(28)),l=i(r(25)),p=i(r(20)),u=a.default.create,f=s();f.create=s,p.default(f),f.Visitor=l.default,f.default=f,e.default=f,t.exports=e.default},function(t,e){"use strict";e.default=function(t){return t&&t.__esModule?t:{default:t}},e.__esModule=!0},function(t,e,r){"use strict";function s(){var t=new n.HandlebarsEnvironment;return h.extend(t,n),t.SafeString=o.default,t.Exception=c.default,t.Utils=h,t.escapeExpression=h.escapeExpression,t.VM=l,t.template=function(e){return l.template(e,t)},t}var i=r(3).default,a=r(1).default;e.__esModule=!0;var n=i(r(4)),o=a(r(18)),c=a(r(6)),h=i(r(5)),l=i(r(19)),p=a(r(20)),u=s();u.create=s,p.default(u),u.default=u,e.default=u,t.exports=e.default},function(t,e){"use strict";e.default=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e.default=t,e},e.__esModule=!0},function(t,e,r){"use strict";function s(t,e,r){this.helpers=t||{},this.partials=e||{},this.decorators=r||{},o.registerDefaultHelpers(this),c.registerDefaultDecorators(this)}var i=r(1).default;e.__esModule=!0,e.HandlebarsEnvironment=s;var a=r(5),n=i(r(6)),o=r(7),c=r(15),h=i(r(17));e.VERSION="4.0.5";e.COMPILER_REVISION=7;e.REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};s.prototype={constructor:s,logger:h.default,log:h.default.log,registerHelper:function(t,e){if("[object Object]"===a.toString.call(t)){if(e)throw new n.default("Arg not supported with multiple helpers");a.extend(this.helpers,t)}else this.helpers[t]=e},unregisterHelper:function(t){delete this.helpers[t]},registerPartial:function(t,e){if("[object Object]"===a.toString.call(t))a.extend(this.partials,t);else{if(void 0===e)throw new n.default('Attempting to register a partial called "'+t+'" as undefined');this.partials[t]=e}},unregisterPartial:function(t){delete this.partials[t]},registerDecorator:function(t,e){if("[object Object]"===a.toString.call(t)){if(e)throw new n.default("Arg not supported with multiple decorators");a.extend(this.decorators,t)}else this.decorators[t]=e},unregisterDecorator:function(t){delete this.decorators[t]}};var l=h.default.log;e.log=l,e.createFrame=a.createFrame,e.logger=h.default},function(t,e){"use strict";function r(t){return i[t]}function s(t){for(var e=1;e<arguments.length;e++)for(var r in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],r)&&(t[r]=arguments[e][r]);return t}e.__esModule=!0,e.extend=s,e.indexOf=function(t,e){for(var r=0,s=t.length;r<s;r++)if(t[r]===e)return r;return-1},e.escapeExpression=function(t){if("string"!=typeof t){if(t&&t.toHTML)return t.toHTML();if(null==t)return"";if(!t)return t+"";t=""+t}return n.test(t)?t.replace(a,r):t},e.isEmpty=function(t){return!t&&0!==t||!(!h(t)||0!==t.length)},e.createFrame=function(t){var e=s({},t);return e._parent=t,e},e.blockParams=function(t,e){return t.path=e,t},e.appendContextPath=function(t,e){return(t?t+".":"")+e};var i={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},a=/[&<>"'`=]/g,n=/[&<>"'`=]/,o=Object.prototype.toString;e.toString=o;var c=function(t){return"function"==typeof t};c(/x/)&&(e.isFunction=c=function(t){return"function"==typeof t&&"[object Function]"===o.call(t)}),e.isFunction=c;var h=Array.isArray||function(t){return!(!t||"object"!=typeof t)&&"[object Array]"===o.call(t)};e.isArray=h},function(t,e){"use strict";function r(t,e){var i=e&&e.loc,a=void 0,n=void 0;i&&(t+=" - "+(a=i.start.line)+":"+(n=i.start.column));for(var o=Error.prototype.constructor.call(this,t),c=0;c<s.length;c++)this[s[c]]=o[s[c]];Error.captureStackTrace&&Error.captureStackTrace(this,r),i&&(this.lineNumber=a,this.column=n)}e.__esModule=!0;var s=["description","fileName","lineNumber","message","name","number","stack"];r.prototype=new Error,e.default=r,t.exports=e.default},function(t,e,r){"use strict";var s=r(1).default;e.__esModule=!0,e.registerDefaultHelpers=function(t){i.default(t),a.default(t),n.default(t),o.default(t),c.default(t),h.default(t),l.default(t)};var i=s(r(8)),a=s(r(9)),n=s(r(10)),o=s(r(11)),c=s(r(12)),h=s(r(13)),l=s(r(14))},function(t,e,r){"use strict";e.__esModule=!0;var s=r(5);e.default=function(t){t.registerHelper("blockHelperMissing",function(e,r){var i=r.inverse,a=r.fn;if(!0===e)return a(this);if(!1===e||null==e)return i(this);if(s.isArray(e))return e.length>0?(r.ids&&(r.ids=[r.name]),t.helpers.each(e,r)):i(this);if(r.data&&r.ids){var n=s.createFrame(r.data);n.contextPath=s.appendContextPath(r.data.contextPath,r.name),r={data:n}}return a(e,r)})},t.exports=e.default},function(t,e,r){"use strict";var s=r(1).default;e.__esModule=!0;var i=r(5),a=s(r(6));e.default=function(t){t.registerHelper("each",function(t,e){function r(e,r,a){h&&(h.key=e,h.index=r,h.first=0===r,h.last=!!a,l&&(h.contextPath=l+e)),c+=s(t[e],{data:h,blockParams:i.blockParams([t[e],e],[l+e,null])})}if(!e)throw new a.default("Must pass iterator to #each");var s=e.fn,n=e.inverse,o=0,c="",h=void 0,l=void 0;if(e.data&&e.ids&&(l=i.appendContextPath(e.data.contextPath,e.ids[0])+"."),i.isFunction(t)&&(t=t.call(this)),e.data&&(h=i.createFrame(e.data)),t&&"object"==typeof t)if(i.isArray(t))for(var p=t.length;o<p;o++)o in t&&r(o,o,o===t.length-1);else{var u=void 0;for(var f in t)t.hasOwnProperty(f)&&(void 0!==u&&r(u,o-1),u=f,o++);void 0!==u&&r(u,o-1,!0)}return 0===o&&(c=n(this)),c})},t.exports=e.default},function(t,e,r){"use strict";var s=r(1).default;e.__esModule=!0;var i=s(r(6));e.default=function(t){t.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new i.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})},t.exports=e.default},function(t,e,r){"use strict";e.__esModule=!0;var s=r(5);e.default=function(t){t.registerHelper("if",function(t,e){return s.isFunction(t)&&(t=t.call(this)),!e.hash.includeZero&&!t||s.isEmpty(t)?e.inverse(this):e.fn(this)}),t.registerHelper("unless",function(e,r){return t.helpers.if.call(this,e,{fn:r.inverse,inverse:r.fn,hash:r.hash})})},t.exports=e.default},function(t,e){"use strict";e.__esModule=!0,e.default=function(t){t.registerHelper("log",function(){for(var e=[void 0],r=arguments[arguments.length-1],s=0;s<arguments.length-1;s++)e.push(arguments[s]);var i=1;null!=r.hash.level?i=r.hash.level:r.data&&null!=r.data.level&&(i=r.data.level),e[0]=i,t.log.apply(t,e)})},t.exports=e.default},function(t,e){"use strict";e.__esModule=!0,e.default=function(t){t.registerHelper("lookup",function(t,e){return t&&t[e]})},t.exports=e.default},function(t,e,r){"use strict";e.__esModule=!0;var s=r(5);e.default=function(t){t.registerHelper("with",function(t,e){s.isFunction(t)&&(t=t.call(this));var r=e.fn;if(s.isEmpty(t))return e.inverse(this);var i=e.data;return e.data&&e.ids&&((i=s.createFrame(e.data)).contextPath=s.appendContextPath(e.data.contextPath,e.ids[0])),r(t,{data:i,blockParams:s.blockParams([t],[i&&i.contextPath])})})},t.exports=e.default},function(t,e,r){"use strict";var s=r(1).default;e.__esModule=!0,e.registerDefaultDecorators=function(t){i.default(t)};var i=s(r(16))},function(t,e,r){"use strict";e.__esModule=!0;var s=r(5);e.default=function(t){t.registerDecorator("inline",function(t,e,r,i){var a=t;return e.partials||(e.partials={},a=function(i,a){var n=r.partials;r.partials=s.extend({},n,e.partials);var o=t(i,a);return r.partials=n,o}),e.partials[i.args[0]]=i.fn,a})},t.exports=e.default},function(t,e,r){"use strict";e.__esModule=!0;var s=r(5),i={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(t){if("string"==typeof t){var e=s.indexOf(i.methodMap,t.toLowerCase());t=e>=0?e:parseInt(t,10)}return t},log:function(t){if(t=i.lookupLevel(t),"undefined"!=typeof console&&i.lookupLevel(i.level)<=t){var e=i.methodMap[t];console[e]||(e="log");for(var r=arguments.length,s=Array(r>1?r-1:0),a=1;a<r;a++)s[a-1]=arguments[a];console[e].apply(console,s)}}};e.default=i,t.exports=e.default},function(t,e){"use strict";function r(t){this.string=t}e.__esModule=!0,r.prototype.toString=r.prototype.toHTML=function(){return""+this.string},e.default=r,t.exports=e.default},function(t,e,r){"use strict";function s(t,e){function r(e){function i(e){return""+t.main(s,e,s.helpers,s.partials,o,h,c)}var a=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],o=a.data;r._setup(a),!a.partial&&t.useData&&(o=function(t,e){e&&"root"in e||((e=e?p.createFrame(e):{}).root=t);return e}(e,o));var c=void 0,h=t.useBlockParams?[]:void 0;return t.useDepths&&(c=a.depths?e!==a.depths[0]?[e].concat(a.depths):a.depths:[e]),(i=n(t.main,i,s,a.depths||[],o,h))(e,a)}if(!e)throw new l.default("No environment passed to template");if(!t||!t.main)throw new l.default("Unknown template object: "+typeof t);t.main.decorator=t.main_d,e.VM.checkRevision(t.compiler);var s={strict:function(t,e){if(!(e in t))throw new l.default('"'+e+'" not defined in '+t);return t[e]},lookup:function(t,e){for(var r=t.length,s=0;s<r;s++)if(t[s]&&null!=t[s][e])return t[s][e]},lambda:function(t,e){return"function"==typeof t?t.call(e):t},escapeExpression:h.escapeExpression,invokePartial:function(r,s,i){i.hash&&(s=h.extend({},s,i.hash),i.ids&&(i.ids[0]=!0)),r=e.VM.resolvePartial.call(this,r,s,i);var a=e.VM.invokePartial.call(this,r,s,i);if(null==a&&e.compile&&(i.partials[i.name]=e.compile(r,t.compilerOptions,e),a=i.partials[i.name](s,i)),null!=a){if(i.indent){for(var n=a.split("\n"),o=0,c=n.length;o<c&&(n[o]||o+1!==c);o++)n[o]=i.indent+n[o];a=n.join("\n")}return a}throw new l.default("The partial "+i.name+" could not be compiled when running in runtime-only mode")},fn:function(e){var r=t[e];return r.decorator=t[e+"_d"],r},programs:[],program:function(t,e,r,s,a){var n=this.programs[t],o=this.fn(t);return e||a||s||r?n=i(this,t,o,e,r,s,a):n||(n=this.programs[t]=i(this,t,o)),n},data:function(t,e){for(;t&&e--;)t=t._parent;return t},merge:function(t,e){var r=t||e;return t&&e&&t!==e&&(r=h.extend({},e,t)),r},noop:e.VM.noop,compilerInfo:t.compiler};return r.isTop=!0,r._setup=function(r){r.partial?(s.helpers=r.helpers,s.partials=r.partials,s.decorators=r.decorators):(s.helpers=s.merge(r.helpers,e.helpers),t.usePartial&&(s.partials=s.merge(r.partials,e.partials)),(t.usePartial||t.useDecorators)&&(s.decorators=s.merge(r.decorators,e.decorators)))},r._child=function(e,r,a,n){if(t.useBlockParams&&!a)throw new l.default("must pass block params");if(t.useDepths&&!n)throw new l.default("must pass parent depths");return i(s,e,t[e],r,0,a,n)},r}function i(t,e,r,s,i,a,o){function c(e){var i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=o;return o&&e!==o[0]&&(n=[e].concat(o)),r(t,e,t.helpers,t.partials,i.data||s,a&&[i.blockParams].concat(a),n)}return c=n(r,c,t,o,s,a),c.program=e,c.depth=o?o.length:0,c.blockParams=i||0,c}function a(){return""}function n(t,e,r,s,i,a){if(t.decorator){var n={};e=t.decorator(e,n,r,s&&s[0],i,a,s),h.extend(e,n)}return e}var o=r(3).default,c=r(1).default;e.__esModule=!0,e.checkRevision=function(t){var e=t&&t[0]||1,r=p.COMPILER_REVISION;if(e!==r){if(e<r){var s=p.REVISION_CHANGES[r],i=p.REVISION_CHANGES[e];throw new l.default("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+s+") or downgrade your runtime to an older version ("+i+").")}throw new l.default("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+t[1]+").")}},e.template=s,e.wrapProgram=i,e.resolvePartial=function(t,e,r){return t?t.call||r.name||(r.name=t,t=r.partials[t]):t="@partial-block"===r.name?r.data["partial-block"]:r.partials[r.name],t},e.invokePartial=function(t,e,r){r.partial=!0,r.ids&&(r.data.contextPath=r.ids[0]||r.data.contextPath);var s=void 0;if(r.fn&&r.fn!==a&&(r.data=p.createFrame(r.data),(s=r.data["partial-block"]=r.fn).partials&&(r.partials=h.extend({},r.partials,s.partials))),void 0===t&&s&&(t=s),void 0===t)throw new l.default("The partial "+r.name+" could not be found");if(t instanceof Function)return t(e,r)},e.noop=a;var h=o(r(5)),l=c(r(6)),p=r(4)},function(t,e){(function(r){"use strict";e.__esModule=!0,e.default=function(t){var e=void 0!==r?r:window,s=e.Handlebars;t.noConflict=function(){return e.Handlebars===t&&(e.Handlebars=s),t}},t.exports=e.default}).call(e,function(){return this}())},function(t,e){"use strict";e.__esModule=!0;var r={helpers:{helperExpression:function(t){return"SubExpression"===t.type||("MustacheStatement"===t.type||"BlockStatement"===t.type)&&!!(t.params&&t.params.length||t.hash)},scopedId:function(t){return/^\.|this\b/.test(t.original)},simpleId:function(t){return 1===t.parts.length&&!r.helpers.scopedId(t)&&!t.depth}}};e.default=r,t.exports=e.default},function(t,e,r){"use strict";var s=r(1).default,i=r(3).default;e.__esModule=!0,e.parse=function(t,e){return"Program"===t.type?t:(a.default.yy=h,h.locInfo=function(t){return new h.SourceLocation(e&&e.srcName,t)},new n.default(e).accept(a.default.parse(t)))};var a=s(r(23)),n=s(r(24)),o=i(r(26)),c=r(5);e.parser=a.default;var h={};c.extend(h,o)},function(t,e){"use strict";var r=function(){function t(){this.yy={}}var e={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition_plus0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,1],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(t,e,r,s,i,a,n){var o=a.length-1;switch(i){case 1:return a[o-1];case 2:this.$=s.prepareProgram(a[o]);break;case 3:case 4:case 5:case 6:case 7:case 8:this.$=a[o];break;case 9:this.$={type:"CommentStatement",value:s.stripComment(a[o]),strip:s.stripFlags(a[o],a[o]),loc:s.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:a[o],value:a[o],loc:s.locInfo(this._$)};break;case 11:this.$=s.prepareRawBlock(a[o-2],a[o-1],a[o],this._$);break;case 12:this.$={path:a[o-3],params:a[o-2],hash:a[o-1]};break;case 13:this.$=s.prepareBlock(a[o-3],a[o-2],a[o-1],a[o],!1,this._$);break;case 14:this.$=s.prepareBlock(a[o-3],a[o-2],a[o-1],a[o],!0,this._$);break;case 15:this.$={open:a[o-5],path:a[o-4],params:a[o-3],hash:a[o-2],blockParams:a[o-1],strip:s.stripFlags(a[o-5],a[o])};break;case 16:case 17:this.$={path:a[o-4],params:a[o-3],hash:a[o-2],blockParams:a[o-1],strip:s.stripFlags(a[o-5],a[o])};break;case 18:this.$={strip:s.stripFlags(a[o-1],a[o-1]),program:a[o]};break;case 19:var c=s.prepareBlock(a[o-2],a[o-1],a[o],a[o],!1,this._$),h=s.prepareProgram([c],a[o-1].loc);h.chained=!0,this.$={strip:a[o-2].strip,program:h,chain:!0};break;case 20:this.$=a[o];break;case 21:this.$={path:a[o-1],strip:s.stripFlags(a[o-2],a[o])};break;case 22:case 23:this.$=s.prepareMustache(a[o-3],a[o-2],a[o-1],a[o-4],s.stripFlags(a[o-4],a[o]),this._$);break;case 24:this.$={type:"PartialStatement",name:a[o-3],params:a[o-2],hash:a[o-1],indent:"",strip:s.stripFlags(a[o-4],a[o]),loc:s.locInfo(this._$)};break;case 25:this.$=s.preparePartialBlock(a[o-2],a[o-1],a[o],this._$);break;case 26:this.$={path:a[o-3],params:a[o-2],hash:a[o-1],strip:s.stripFlags(a[o-4],a[o])};break;case 27:case 28:this.$=a[o];break;case 29:this.$={type:"SubExpression",path:a[o-3],params:a[o-2],hash:a[o-1],loc:s.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:a[o],loc:s.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:s.id(a[o-2]),value:a[o],loc:s.locInfo(this._$)};break;case 32:this.$=s.id(a[o-1]);break;case 33:case 34:this.$=a[o];break;case 35:this.$={type:"StringLiteral",value:a[o],original:a[o],loc:s.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(a[o]),original:Number(a[o]),loc:s.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:"true"===a[o],original:"true"===a[o],loc:s.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:s.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:s.locInfo(this._$)};break;case 40:case 41:this.$=a[o];break;case 42:this.$=s.preparePath(!0,a[o],this._$);break;case 43:this.$=s.preparePath(!1,a[o],this._$);break;case 44:a[o-2].push({part:s.id(a[o]),original:a[o],separator:a[o-1]}),this.$=a[o-2];break;case 45:this.$=[{part:s.id(a[o]),original:a[o]}];break;case 46:this.$=[];break;case 47:a[o-1].push(a[o]);break;case 48:this.$=[a[o]];break;case 49:a[o-1].push(a[o]);break;case 50:this.$=[];break;case 51:a[o-1].push(a[o]);break;case 58:this.$=[];break;case 59:a[o-1].push(a[o]);break;case 64:this.$=[];break;case 65:a[o-1].push(a[o]);break;case 70:this.$=[];break;case 71:a[o-1].push(a[o]);break;case 78:this.$=[];break;case 79:a[o-1].push(a[o]);break;case 82:this.$=[];break;case 83:a[o-1].push(a[o]);break;case 86:this.$=[];break;case 87:a[o-1].push(a[o]);break;case 90:this.$=[];break;case 91:a[o-1].push(a[o]);break;case 94:this.$=[];break;case 95:a[o-1].push(a[o]);break;case 98:this.$=[a[o]];break;case 99:a[o-1].push(a[o]);break;case 100:this.$=[a[o]];break;case 101:a[o-1].push(a[o])}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{13:40,15:[1,20],17:39},{20:42,56:41,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:45,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:48,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:42,56:49,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:50,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37
vendor: 4,137 bytes, line 6
6],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,51]},{72:[1,35],86:52},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:53,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:54,38:56,39:[1,58],43:57,44:[1,59],45:55,47:[2,54]},{28:60,43:61,44:[1,59],47:[2,56]},{13:63,15:[1,20],18:[1,62]},{15:[2,48],18:[2,48]},{33:[2,86],57:64,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:65,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:66,47:[1,67]},{30:68,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:69,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:70,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:71,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:75,33:[2,80],50:72,63:73,64:76,65:[1,44],69:74,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,80]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,51]},{20:75,53:81,54:[2,84],63:82,64:76,65:[1,44],69:83,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:84,47:[1,67]},{47:[2,55]},{4:85,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:86,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:87,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:88,47:[1,67]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:75,33:[2,88],58:89,63:90,64:76,65:[1,44],69:91,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:92,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:93,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,31:94,33:[2,60],63:95,64:76,65:[1,44],69:96,70:77,71:78,72:[1,79],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,66],36:97,63:98,64:76,65:[1,44],69:99,70:77,71:78,72:[1,79],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,22:100,23:[2,52],63:101,64:76,65:[1,44],69:102,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,92],62:103,63:104,64:76,65:[1,44],69:105,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,106]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]}
vendor: 6,544 bytes, line 6
6,{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:107,72:[1,108],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,109],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,110]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:56,39:[1,58],43:57,44:[1,59],45:112,46:111,47:[2,76]},{33:[2,70],40:113,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,114]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],85:[2,87]},{33:[2,89]},{20:75,63:116,64:76,65:[1,44],67:115,68:[2,96],69:117,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,118]},{32:119,33:[2,62],74:120,75:[1,121]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:122,74:123,75:[1,121]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,124]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,125]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,109]},{20:75,63:126,64:76,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:75,33:[2,72],41:127,63:128,64:76,65:[1,44],69:129,70:77,71:78,72:[1,79],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,130]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,131]},{33:[2,63]},{72:[1,133],76:132},{33:[1,134]},{33:[2,69]},{15:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:135,74:136,75:[1,121]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,138],77:[1,137]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,139]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],55:[2,55],57:[2,20],61:[2,57],74:[2,81],83:[2,85],87:[2,18],91:[2,89],102:[2,53],105:[2,93],111:[2,19],112:[2,77],117:[2,97],120:[2,63],123:[2,69],124:[2,12],136:[2,75],137:[2,32]},parseError:function(t,e){throw new Error(t)},parse:function(t){function e(){var t;return"number"!=typeof(t=r.lexer.lex()||1)&&(t=r.symbols_[t]||t),t}var r=this,s=[0],i=[null],a=[],n=this.table,o="",c=0,h=0,l=0;this.lexer.setInput(t),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var p=this.lexer.yylloc;a.push(p);var u=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var f,d,m,g,v,y,k,S,b,_={};;){if(m=s[s.length-1],this.defaultActions[m]?g=this.defaultActions[m]:(null!==f&&void 0!==f||(f=e()),g=n[m]&&n[m][f]),void 0===g||!g.length||!g[0]){var P="";if(!l){b=[];for(y in n[m])this.terminals_[y]&&y>2&&b.push("'"+this.terminals_[y]+"'");P=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+b.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(P,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:p,expected:b})}}if(g[0]instanceof Array&&g.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+f);switch(g[0]){case 1:s.push(f),i.push(this.lexer.yytext),a.push(this.lexer.yylloc),s.push(g[1]),f=null,d?(f=d,d=null):(h=this.lexer.yyleng,o=this.lexer.yytext,c=this.lexer.yylineno,p=this.lexer.yylloc,l>0&&l--);break;case 2:if(k=this.productions_[g[1]][1],_.$=i[i.length-k],_._$={first_line:a[a.length-(k||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(k||1)].first_column,last_column:a[a.length-1].last_column},u&&(_._$.range=[a[a.length-(k||1)].range[0],a[a.length-1].range[1]]),void 0!==(v=this.performAction.call(_,o,h,c,this.yy,g[1],i,a)))return v;k&&(s=s.slice(0,-1*k*2),i=i.slice(0,-1*k),a=a.slice(0,-1*k)),s.push(this.productions_[g[1]][0]),i.push(_.$),a.push(_._$),S=n[s[s.length-2]][s[s.length-1]],s.push(S);break;case 3:return!0}}return!0}},r=function(){var t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t){return this._input=t,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this}
vendor: 5,884 bytes, line 6
6,input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;return t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,r=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e-1),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===s.length?this.yylloc.first_column:0)+s[s.length-r.length].length-r[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-e]),this},more:function(){return this._more=!0,this},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,e,r,s,i;this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),n=0;n<a.length&&(!(r=this._input.match(this.rules[a[n]]))||e&&!(r[0].length>e[0].length)||(e=r,s=n,this.options.flex));n++);return e?((i=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],t=this.performAction.call(this,this.yy,this,a[s],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),t||void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return void 0!==t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(t){this.begin(t)}};return t.options={},t.performAction=function(t,e,r,s){function i(t,r){return e.yytext=e.yytext.substr(t,e.yyleng-r)}switch(r){case 0:if("\\\\"===e.yytext.slice(-2)?(i(0,1),this.begin("mu")):"\\"===e.yytext.slice(-1)?(i(0,1),this.begin("emu")):this.begin("mu"),e.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(e.yytext=e.yytext.substr(5,e.yyleng-9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(e.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return e.yytext=i(1,2).replace(/\\"/g,'"'),80;case 32:return e.yytext=i(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return e.yytext=e.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},t.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],t.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},t}();return e.lexer=r,t.prototype=e,e.Parser=t,new t}();
vendor: 9,305 bytes, line 6
6e.__esModule=!0,e.default=r},function(t,e,r){"use strict";function s(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=t}function i(t,e,r){void 0===e&&(e=t.length);var s=t[e-1],i=t[e-2];return s?"ContentStatement"===s.type?(i||!r?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(s.original):void 0:r}function a(t,e,r){void 0===e&&(e=-1);var s=t[e+1],i=t[e+2];return s?"ContentStatement"===s.type?(i||!r?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(s.original):void 0:r}function n(t,e,r){var s=t[null==e?0:e+1];if(s&&"ContentStatement"===s.type&&(r||!s.rightStripped)){var i=s.value;s.value=s.value.replace(r?/^\s+/:/^[ \t]*\r?\n?/,""),s.rightStripped=s.value!==i}}function o(t,e,r){var s=t[null==e?t.length-1:e-1];if(s&&"ContentStatement"===s.type&&(r||!s.leftStripped)){var i=s.value;return s.value=s.value.replace(r?/\s+$/:/[ \t]+$/,""),s.leftStripped=s.value!==i,s.leftStripped}}var c=r(1).default;e.__esModule=!0;var h=c(r(25));(s.prototype=new h.default).Program=function(t){var e=!this.options.ignoreStandalone,r=!this.isRootSeen;this.isRootSeen=!0;for(var s=t.body,c=0,h=s.length;c<h;c++){var l=s[c],p=this.accept(l);if(p){var u=i(s,c,r),f=a(s,c,r),d=p.openStandalone&&u,m=p.closeStandalone&&f,g=p.inlineStandalone&&u&&f;p.close&&n(s,c,!0),p.open&&o(s,c,!0),e&&g&&(n(s,c),o(s,c)&&"PartialStatement"===l.type&&(l.indent=/([ \t]+$)/.exec(s[c-1].original)[1])),e&&d&&(n((l.program||l.inverse).body),o(s,c)),e&&m&&(n(s,c),o((l.inverse||l.program).body))}}return t},s.prototype.BlockStatement=s.prototype.DecoratorBlock=s.prototype.PartialBlockStatement=function(t){this.accept(t.program),this.accept(t.inverse);var e=t.program||t.inverse,r=t.program&&t.inverse,s=r,c=r;if(r&&r.chained)for(s=r.body[0].program;c.chained;)c=c.body[c.body.length-1].program;var h={open:t.openStrip.open,close:t.closeStrip.close,openStandalone:a(e.body),closeStandalone:i((s||e).body)};if(t.openStrip.close&&n(e.body,null,!0),r){var l=t.inverseStrip;l.open&&o(e.body,null,!0),l.close&&n(s.body,null,!0),t.closeStrip.open&&o(c.body,null,!0),!this.options.ignoreStandalone&&i(e.body)&&a(s.body)&&(o(e.body),n(s.body))}else t.closeStrip.open&&o(e.body,null,!0);return h},s.prototype.Decorator=s.prototype.MustacheStatement=function(t){return t.strip},s.prototype.PartialStatement=s.prototype.CommentStatement=function(t){var e=t.strip||{};return{inlineStandalone:!0,open:e.open,close:e.close}},e.default=s,t.exports=e.default},function(t,e,r){"use strict";function s(){this.parents=[]}function i(t){this.acceptRequired(t,"path"),this.acceptArray(t.params),this.acceptKey(t,"hash")}function a(t){i.call(this,t),this.acceptKey(t,"program"),this.acceptKey(t,"inverse")}function n(t){this.acceptRequired(t,"name"),this.acceptArray(t.params),this.acceptKey(t,"hash")}var o=r(1).default;e.__esModule=!0;var c=o(r(6));s.prototype={constructor:s,mutating:!1,acceptKey:function(t,e){var r=this.accept(t[e]);if(this.mutating){if(r&&!s.prototype[r.type])throw new c.default('Unexpected node type "'+r.type+'" found when accepting '+e+" on "+t.type);t[e]=r}},acceptRequired:function(t,e){if(this.acceptKey(t,e),!t[e])throw new c.default(t.type+" requires "+e)},acceptArray:function(t){for(var e=0,r=t.length;e<r;e++)this.acceptKey(t,e),t[e]||(t.splice(e,1),e--,r--)},accept:function(t){if(t){if(!this[t.type])throw new c.default("Unknown type: "+t.type,t);this.current&&this.parents.unshift(this.current),this.current=t;var e=this[t.type](t);return this.current=this.parents.shift(),!this.mutating||e?e:!1!==e?t:void 0}},Program:function(t){this.acceptArray(t.body)},MustacheStatement:i,Decorator:i,BlockStatement:a,DecoratorBlock:a,PartialStatement:n,PartialBlockStatement:function(t){n.call(this,t),this.acceptKey(t,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:i,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(t){this.acceptArray(t.pairs)},HashPair:function(t){this.acceptRequired(t,"value")}},e.default=s,t.exports=e.default},function(t,e,r){"use strict";function s(t,e){if(e=e.path?e.path.original:e,t.path.original!==e){var r={loc:t.path.loc};throw new a.default(t.path.original+" doesn't match "+e,r)}}var i=r(1).default;e.__esModule=!0,e.SourceLocation=function(t,e){this.source=t,this.start={line:e.first_line,column:e.first_column},this.end={line:e.last_line,column:e.last_column}},e.id=function(t){return/^\[.*\]$/.test(t)?t.substr(1,t.length-2):t},e.stripFlags=function(t,e){return{open:"~"===t.charAt(2),close:"~"===e.charAt(e.length-3)}},e.stripComment=function(t){return t.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")},e.preparePath=function(t,e,r){r=this.locInfo(r);for(var s=t?"@":"",i=[],n=0,o=0,c=e.length;o<c;o++){var h=e[o].part,l=e[o].original!==h;if(s+=(e[o].separator||"")+h,l||".."!==h&&"."!==h&&"this"!==h)i.push(h);else{if(i.length>0)throw new a.default("Invalid path: "+s,{loc:r});".."===h&&n++}}return{type:"PathExpression",data:t,depth:n,parts:i,original:s,loc:r}},e.prepareMustache=function(t,e,r,s,i,a){var n=s.charAt(3)||s.charAt(2),o="{"!==n&&"&"!==n;return{type:/\*/.test(s)?"Decorator":"MustacheStatement",path:t,params:e,hash:r,escaped:o,strip:i,loc:this.locInfo(a)}},e.prepareRawBlock=function(t,e,r,i){s(t,r);var a={type:"Program",body:e,strip:{},loc:i=this.locInfo(i)};return{type:"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:a,openStrip:{},inverseStrip:{},closeStrip:{},loc:i}},e.prepareBlock=function(t,e,r,i,n,o){i&&i.path&&s(t,i);var c=/\*/.test(t.open);e.blockParams=t.blockParams;var h=void 0,l=void 0;if(r){if(c)throw new a.default("Unexpected inverse block on decorator",r);r.chain&&(r.program.body[0].closeStrip=i.strip),l=r.strip,h=r.program}return n&&(n=h,h=e,e=n),{type:c?"DecoratorBlock":"BlockStatement",path:t.path,params:t.params,hash:t.hash,program:e,inverse:h,openStrip:t.strip,inverseStrip:l,closeStrip:i&&i.strip,loc:this.locInfo(o)}},e.prepareProgram=function(t,e){if(!e&&t.length){var r=t[0].loc,s=t[t.length-1].loc;r&&s&&(e={source:r.source,start:{line:r.start.line,column:r.start.column},end:{line:s.end.line,column:s.end.column}})}return{type:"Program",body:t,strip:{},loc:e}},e.preparePartialBlock=function(t,e,r,i){return s(t,r),{type:"PartialBlockStatement",name:t.path,params:t.params,hash:t.hash,program:e,openStrip:t.strip,closeStrip:r&&r.strip,loc:this.locInfo(i)}};var a=i(r(6))},function(t,e,r){"use strict";function s(){}function i(t,e){if(t===e)return!0;if(c.isArray(t)&&c.isArray(e)&&t.length===e.length){for(var r=0;r<t.length;r++)if(!i(t[r],e[r]))return!1;return!0}}function a(t){if(!t.path.parts){var e=t.path;t.path={type:"PathExpression",data:!1,depth:0,parts:[e.original+""],original:e.original+"",loc:e.loc}}}var n=r(1).default;e.__esModule=!0,e.Compiler=s,e.precompile=function(t,e,r){if(null==t||"string"!=typeof t&&"Program"!==t.type)throw new o.default("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+t);"data"in(e=e||{})||(e.data=!0),e.compat&&(e.useDepths=!0);var s=r.parse(t,e),i=(new r.Compiler).compile(s,e);return(new r.JavaScriptCompiler).compile(i,e)},e.compile=function(t,e,r){function s(){var s=r.parse(t,e),i=(new r.Compiler).compile(s,e),a=(new r.JavaScriptCompiler).compile(i,e,void 0,!0);return r.template(a)}function i(t,e){return a||(a=s()),a.call(this,t,e)}if(void 0===e&&(e={}),null==t||"string"!=typeof t&&"Program"!==t.type)throw new o.default("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+t);"data"in e||(e.data=!0),e.compat&&(e.useDepths=!0);var a=void 0;return i._setup=function(t){return a||(a=s()),a._setup(t)},i._child=function(t,e,r,i){return a||(a=s()),a._child(t,e,r,i)},i};var o=n(r(6)),c=r(5),h=n(r(21)),l=[].slice;s.prototype={compiler:s,equals:function(t){var e=this.opcodes.length;if(t.opcodes.length!==e)return!1;for(a=0;a<e;a++){var r=this.opcodes[a],s=t.opcodes[a];if(r.opcode!==s.opcode||!i(r.args,s.args))return!1}e=this.children.length;for(var a=0;a<e;a++)if(!this.children[a].equals(t.children[a]))return!1;return!0},guid:0,compile:function(t,e){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=e,this.stringParams=e.stringParams,this.trackIds=e.trackIds,e.blockParams=e.blockParams||[];var r=e.knownHelpers;if(e.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,if:!0,unless:!0,with:!0,log:!0,lookup:!0},r)for(var s in r)s in r&&(e.knownHelpers[s]=r[s]);return this.accept(t)},compileProgram:function(t){var e=(new this.compiler).compile(t,this.options),r=this.guid++;return this.usePartial=this.usePartial||e.usePartial,this.children[r]=e,this.useDepths=this.useDepths||e.useDepths,r},accept:function(t){if(!this[t.type])throw new o.default("Unknown type: "+t.type,t);this.sourceNode.unshift(t);var e=this[t.type](t);return this.sourceNode.shift(),e},Program:function(t){this.options.blockParams.unshift(t.blockParams);for(var e=t.body,r=e.length,s=0;s<r;s++)this.accept(e[s]);return this.options.blockParams.shift(),this.isSimple=1===r,this.blockParams=t.blockParams?t.blockParams.length:0,this},BlockStatement:function(t){a(t);var e=t.program,r=t.inverse;e=e&&this.compileProgram(e),r=r&&this.compileProgram(r);var s=this.classifySexpr(t);"helper"===s?this.helperSexpr(t,e,r):"simple"===s?(this.simpleSex
vendor: 1,844 bytes, line 6
6pr(t),this.opcode("pushProgram",e),this.opcode("pushProgram",r),this.opcode("emptyHash"),this.opcode("blockValue",t.path.original)):(this.ambiguousSexpr(t,e,r),this.opcode("pushProgram",e),this.opcode("pushProgram",r),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},DecoratorBlock:function(t){var e=t.program&&this.compileProgram(t.program),r=this.setupFullMustacheParams(t,e,void 0),s=t.path;this.useDecorators=!0,this.opcode("registerDecorator",r.length,s.original)},PartialStatement:function(t){this.usePartial=!0;var e=t.program;e&&(e=this.compileProgram(t.program));var r=t.params;if(r.length>1)throw new o.default("Unsupported number of partial arguments: "+r.length,t);r.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):r.push({type:"PathExpression",parts:[],depth:0}));var s=t.name.original,i="SubExpression"===t.name.type;i&&this.accept(t.name),this.setupFullMustacheParams(t,e,void 0,!0);var a=t.indent||"";this.options.preventIndent&&a&&(this.opcode("appendContent",a),a=""),this.opcode("invokePartial",i,s,a),this.opcode("append")},PartialBlockStatement:function(t){this.PartialStatement(t)},MustacheStatement:function(t){this.SubExpression(t),t.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(t){this.DecoratorBlock(t)},ContentStatement:function(t){t.value&&this.opcode("appendContent",t.value)},CommentStatement:function(){},SubExpression:function(t){a(t);var e=this.classifySexpr(t);"simple"===e?this.simpleSexpr(t):"helper"===e?this.helperSexpr(t):this.ambiguousSexpr(t)},ambiguousSexpr:function(t,e,r){var s=t.path,i=s.parts[0],a=null!=e||null!=r;this.opcode("getContext",s.depth),this.opcode("pushProgram",e),this.opcode("pushProgram",r),s.strict=!0,this.accept(s),this.opcode("invokeAmbiguous",i,a)}
vendor: 6,976 bytes, line 6
6,simpleSexpr:function(t){var e=t.path;e.strict=!0,this.accept(e),this.opcode("resolvePossibleLambda")},helperSexpr:function(t,e,r){var s=this.setupFullMustacheParams(t,e,r),i=t.path,a=i.parts[0];if(this.options.knownHelpers[a])this.opcode("invokeKnownHelper",s.length,a);else{if(this.options.knownHelpersOnly)throw new o.default("You specified knownHelpersOnly, but used the unknown helper "+a,t);i.strict=!0,i.falsy=!0,this.accept(i),this.opcode("invokeHelper",s.length,i.original,h.default.helpers.simpleId(i))}},PathExpression:function(t){this.addDepth(t.depth),this.opcode("getContext",t.depth);var e=t.parts[0],r=h.default.helpers.scopedId(t),s=!t.depth&&!r&&this.blockParamIndex(e);s?this.opcode("lookupBlockParam",s,t.parts):e?t.data?(this.options.data=!0,this.opcode("lookupData",t.depth,t.parts,t.strict)):this.opcode("lookupOnContext",t.parts,t.falsy,t.strict,r):this.opcode("pushContext")},StringLiteral:function(t){this.opcode("pushString",t.value)},NumberLiteral:function(t){this.opcode("pushLiteral",t.value)},BooleanLiteral:function(t){this.opcode("pushLiteral",t.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(t){var e=t.pairs,r=0,s=e.length;for(this.opcode("pushHash");r<s;r++)this.pushParam(e[r].value);for(;r--;)this.opcode("assignToHash",e[r].key);this.opcode("popHash")},opcode:function(t){this.opcodes.push({opcode:t,args:l.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(t){t&&(this.useDepths=!0)},classifySexpr:function(t){var e=h.default.helpers.simpleId(t.path),r=e&&!!this.blockParamIndex(t.path.parts[0]),s=!r&&h.default.helpers.helperExpression(t),i=!r&&(s||e);if(i&&!s){var a=t.path.parts[0],n=this.options;n.knownHelpers[a]?s=!0:n.knownHelpersOnly&&(i=!1)}return s?"helper":i?"ambiguous":"simple"},pushParams:function(t){for(var e=0,r=t.length;e<r;e++)this.pushParam(t[e])},pushParam:function(t){var e=null!=t.value?t.value:t.original||"";if(this.stringParams)e.replace&&(e=e.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),t.depth&&this.addDepth(t.depth),this.opcode("getContext",t.depth||0),this.opcode("pushStringParam",e,t.type),"SubExpression"===t.type&&this.accept(t);else{if(this.trackIds){var r=void 0;if(!t.parts||h.default.helpers.scopedId(t)||t.depth||(r=this.blockParamIndex(t.parts[0])),r){var s=t.parts.slice(1).join(".");this.opcode("pushId","BlockParam",r,s)}else(e=t.original||e).replace&&(e=e.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"")),this.opcode("pushId",t.type,e)}this.accept(t)}},setupFullMustacheParams:function(t,e,r,s){var i=t.params;return this.pushParams(i),this.opcode("pushProgram",e),this.opcode("pushProgram",r),t.hash?this.accept(t.hash):this.opcode("emptyHash",s),i},blockParamIndex:function(t){for(var e=0,r=this.options.blockParams.length;e<r;e++){var s=this.options.blockParams[e],i=s&&c.indexOf(s,t);if(s&&i>=0)return[e,i]}}}},function(t,e,r){"use strict";function s(t){this.value=t}function i(){}var a=r(1).default;e.__esModule=!0;var n=r(4),o=a(r(6)),c=r(5),h=a(r(29));i.prototype={nameLookup:function(t,e){return i.isValidJavaScriptVariableName(e)?[t,".",e]:[t,"[",JSON.stringify(e),"]"]},depthedLookup:function(t){return[this.aliasable("container.lookup"),'(depths, "',t,'")']},compilerInfo:function(){var t=n.COMPILER_REVISION;return[t,n.REVISION_CHANGES[t]]},appendToBuffer:function(t,e,r){return c.isArray(t)||(t=[t]),t=this.source.wrap(t,e),this.environment.isSimple?["return ",t,";"]:r?["buffer += ",t,";"]:(t.appendToBuffer=!0,t)},initializeBuffer:function(){return this.quotedString("")},compile:function(t,e,r,s){this.environment=t,this.options=e,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!s,this.name=this.environment.name,this.isChild=!!r,this.context=r||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(t,e),this.useDepths=this.useDepths||t.useDepths||t.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||t.useBlockParams;var i=t.opcodes,a=void 0,n=void 0,c=void 0,h=void 0;for(c=0,h=i.length;c<h;c++)a=i[c],this.source.currentLocation=a.loc,n=n||a.loc,this[a.opcode].apply(this,a.args);if(this.source.currentLocation=n,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new o.default("Compile completed with content left on stack");this.decorators.isEmpty()?this.decorators=void 0:(this.useDecorators=!0,this.decorators.prepend("var decorators = container.decorators;\n"),this.decorators.push("return fn;"),s?this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]):(this.decorators.prepend("function(fn, props, container, depth0, data, blockParams, depths) {\n"),this.decorators.push("}\n"),this.decorators=this.decorators.merge()));var l=this.createFunctionContext(s);if(this.isChild)return l;var p={compiler:this.compilerInfo(),main:l};this.decorators&&(p.main_d=this.decorators,p.useDecorators=!0);var u=this.context,f=u.programs,d=u.decorators;for(c=0,h=f.length;c<h;c++)f[c]&&(p[c]=f[c],d[c]&&(p[c+"_d"]=d[c],p.useDecorators=!0));return this.environment.usePartial&&(p.usePartial=!0),this.options.data&&(p.useData=!0),this.useDepths&&(p.useDepths=!0),this.useBlockParams&&(p.useBlockParams=!0),this.options.compat&&(p.compat=!0),s?p.compilerOptions=this.options:(p.compiler=JSON.stringify(p.compiler),this.source.currentLocation={start:{line:1,column:0}},p=this.objectLiteral(p),e.srcName?(p=p.toStringWithSourceMap({file:e.destName})).map=p.map&&p.map.toString():p=p.toString()),p},preamble:function(){this.lastContext=0,this.source=new h.default(this.options.srcName),this.decorators=new h.default(this.options.srcName)},createFunctionContext:function(t){var e="",r=this.stackVars.concat(this.registers.list);r.length>0&&(e+=", "+r.join(", "));var s=0;for(var i in this.aliases){var a=this.aliases[i];this.aliases.hasOwnProperty(i)&&a.children&&a.referenceCount>1&&(e+=", alias"+ ++s+"="+i,a.children[0]="alias"+s)}var n=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&n.push("blockParams"),this.useDepths&&n.push("depths");var o=this.mergeSource(e);return t?(n.push(o),Function.apply(this,n)):this.source.wrap(["function(",n.join(","),") {\n  ",o,"}"])},mergeSource:function(t){var e=this.environment.isSimple,r=!this.forceBuffer,s=void 0,i=void 0,a=void 0,n=void 0;return this.source.each(function(t){t.appendToBuffer?(a?t.prepend("  + "):a=t,n=t):(a&&(i?a.prepend("buffer += "):s=!0,n.add(";"),a=n=void 0),i=!0,e||(r=!1))}),r?a?(a.prepend("return "),n.add(";")):i||this.source.push('return "";'):(t+=", buffer = "+(s?"":this.initializeBuffer()),a?(a.prepend("return buffer + "),n.add(";")):this.source.push("return buffer;
6")),t&&this.source.prepend("var "+t.substring(2)+(s?"":";\n")),this.source.merge()},blockValue:function(t){var e=this.aliasable("helpers.blockHelperMissing"),r=[this.contextName(0)];this.setupHelperArgs(t,0,r);var s=this.popStack();r.splice(1,0,s),this.push(this.source.functionCall(e,"call",r))},ambiguousBlockValue:function(){var t=this.aliasable("helpers.blockHelperMissing"),e=[this.contextName(0)];this.setupHelperArgs("",0,e,!0),this.flushInline();var r=this.topStack();e.splice(1,0,r),this.pushSource(["if (!",this.lastHelper,") { ",r," = ",this.source.functionCall(t,"call",e),"}"])},appendContent:function(t){this.pendingContent?t=this.pendingContent+t:this.pendingLocation=this.source.currentLocation,this.pendingContent=t},append:function(){if(this.isInline())this.replaceStack(function(t){return[" != null ? ",t,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var t=this.popStack();this.pushSource(["if (",t," != null) { ",this.appendToBuffer(t,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(t){this.lastContext=t},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(t,e,r,s){var i=0;s||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(t[i++])),this.resolvePath("context",t,i,e,r)},lookupBlockParam:function(t,e){this.useBlockParams=!0,this.push(["blockParams[",t[0],"][",t[1],"]"]),this.resolvePath("context",e,1)},lookupData:function(t,e,r){t?this.pushStackLiteral("container.data(data, "+t+")"):this.pushStackLiteral("data"),this.resolvePath("data",e,0,!0,r)},resolvePath:function(t,e,r,s,i){var a=this;if(this.options.strict||this.options.assumeObjects)this.push(function(t,e,r,s){var i=e.popStack(),a=0,n=r.length;for(t&&n--;a<n;a++)i=e.nameLookup(i,r[a],s);return t?[e.aliasable("container.strict"),"(",i,", ",e.quotedString(r[a]),")"]:i}(this.options.strict&&i,this,e,t));else for(var n=e.length;r<n;r++)this.replaceStack(function(i){var n=a.nameLookup(i,e[r],t);return s?[" && ",n]:[" != null ? ",n," : ",i]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(t,e){this.pushContext(),this.pushString(e),"SubExpression"!==e&&("string"==typeof t?this.pushString(t):this.pushStackLiteral(t))},emptyHash:function(t){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(t?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var t=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(t.ids)),this.stringParams&&(this.push(this.objectLiteral(t.contexts)),this.push(this.objectLiteral(t.types))),this.push(this.objectLiteral(t.values))},pushString:function(t){this.pushStackLiteral(this.quotedString(t))},pushLiteral:function(t){this.pushStackLiteral(t)},pushProgram:function(t){null!=t?this.pushStackLiteral(this.programExpression(t)):this.pushStackLiteral(null)},registerDecorator:function(t,e){var r=this.nameLookup("decorators",e,"decorator"),s=this.setupHelperArgs(e,t);this.decorators.push(["fn = ",this.decorators.functionCall(r,"",["fn","props","container",s])," || fn;"])},invokeHelper:function(t,e,r){var s=this.popStack(),i=this.setupHelper(t,e),a=r?[i.name," || "]:"",n=["("].concat(a,s);this.options.strict||n.push(" || ",this.aliasable("helpers.helperMissing")),n.push(")"),this.push(this.source.functionCall(n,"call",i.callParams))},invokeKnownHelper:function(t,e){var r=this.setupHelper(t,e);this.push(this.source.functionCall(r.name,"call",r.callParams))},invokeAmbiguous:function(t,e){this.useRegister("helper");var r=this.popStack();this.emptyHash();var s=this.setupHelper(0,t,e),i=["(","(helper = ",this.lastHelper=this.nameLookup("helpers",t,"helper")," || ",r,")"];this.options.strict||(i[0]="(helper = ",i.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",i,s.paramsInit?["),(",s.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",s.callParams)," : helper))"])},invokePartial:function(t,e,r){var s=[],i=this.setupParams(e,1,s);t&&(e=this.popStack(),delete i.name),r&&(i.indent=JSON.stringify(r)),i.helpers="helpers",i.partials="partials",i.decorators="container.decorators",t?s.unshift(e):s.unshift(this.nameLookup("partials",e,"partial")),this.options.compat&&(i.depths="depths"),i=this.objectLiteral(i),s.push(i),this.push(this.source.functionCall("container.invokePartial","",s))},assignToHash:function(t){var e=this.popStack(),r=void 0,s=void 0,i=void 0;this.trackIds&&(i=this.popStack()),this.stringParams&&(s=this.popStack(),r=this.popStack());var a=this.hash;r&&(a.contexts[t]=r),s&&(a.types[t]=s),i&&(a.ids[t]=i),a.values[t]=e},pushId:function(t,e,r){"BlockParam"===t?this.pushStackLiteral("blockParams["+e[0]+"].path["+e[1]+"]"+(r?" + "+JSON.stringify("."+r):"")):"PathExpression"===t?this.pushString(e):"SubExpression"===t?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:i,compileChildren:function(t,e){for(var r=t.children,s=void 0,i=void 0,a=0,n=r.length;a<n;a++){s=r[a],i=new this.compiler;var o=this.matchExistingProgram(s);null==o?(this.context.programs.push(""),o=this.context.programs.length,s.index=o,s.name="program"+o,this.context.programs[o]=i.compile(s,e,this.context,!this.prec
vendor: 4,418 bytes, line 6
6ompile),this.context.decorators[o]=i.decorators,this.context.environments[o]=s,this.useDepths=this.useDepths||i.useDepths,this.useBlockParams=this.useBlockParams||i.useBlockParams):(s.index=o,s.name="program"+o,this.useDepths=this.useDepths||s.useDepths,this.useBlockParams=this.useBlockParams||s.useBlockParams)}},matchExistingProgram:function(t){for(var e=0,r=this.context.environments.length;e<r;e++){var s=this.context.environments[e];if(s&&s.equals(t))return e}},programExpression:function(t){var e=this.environment.children[t],r=[e.index,"data",e.blockParams];return(this.useBlockParams||this.useDepths)&&r.push("blockParams"),this.useDepths&&r.push("depths"),"container.program("+r.join(", ")+")"},useRegister:function(t){this.registers[t]||(this.registers[t]=!0,this.registers.list.push(t))},push:function(t){return t instanceof s||(t=this.source.wrap(t)),this.inlineStack.push(t),t},pushStackLiteral:function(t){this.push(new s(t))},pushSource:function(t){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),t&&this.source.push(t)},replaceStack:function(t){var e=["("],r=void 0,i=void 0,a=void 0;if(!this.isInline())throw new o.default("replaceStack on non-inline");var n=this.popStack(!0);if(n instanceof s)e=["(",r=[n.value]],a=!0;else{i=!0;var c=this.incrStack();e=["((",this.push(c)," = ",n,")"],r=this.topStack()}var h=t.call(this,r);a||this.popStack(),i&&this.stackSlot--,this.push(e.concat(h,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var t=this.inlineStack;this.inlineStack=[];for(var e=0,r=t.length;e<r;e++){var i=t[e];if(i instanceof s)this.compileStack.push(i);else{var a=this.incrStack();this.pushSource([a," = ",i,";"]),this.compileStack.push(a)}}},isInline:function(){return this.inlineStack.length},popStack:function(t){var e=this.isInline(),r=(e?this.inlineStack:this.compileStack).pop();if(!t&&r instanceof s)return r.value;if(!e){if(!this.stackSlot)throw new o.default("Invalid stack pop");this.stackSlot--}return r},topStack:function(){var t=this.isInline()?this.inlineStack:this.compileStack,e=t[t.length-1];return e instanceof s?e.value:e},contextName:function(t){return this.useDepths&&t?"depths["+t+"]":"depth"+t},quotedString:function(t){return this.source.quotedString(t)},objectLiteral:function(t){return this.source.objectLiteral(t)},aliasable:function(t){var e=this.aliases[t];return e?(e.referenceCount++,e):(e=this.aliases[t]=this.source.wrap(t),e.aliasable=!0,e.referenceCount=1,e)},setupHelper:function(t,e,r){var s=[];return{params:s,paramsInit:this.setupHelperArgs(e,t,s,r),name:this.nameLookup("helpers",e,"helper"),callParams:[this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : {}")].concat(s)}},setupParams:function(t,e,r){var s={},i=[],a=[],n=[],o=!r,c=void 0;o&&(r=[]),s.name=this.quotedString(t),s.hash=this.popStack(),this.trackIds&&(s.hashIds=this.popStack()),this.stringParams&&(s.hashTypes=this.popStack(),s.hashContexts=this.popStack());var h=this.popStack(),l=this.popStack();(l||h)&&(s.fn=l||"container.noop",s.inverse=h||"container.noop");for(var p=e;p--;)c=this.popStack(),r[p]=c,this.trackIds&&(n[p]=this.popStack()),this.stringParams&&(a[p]=this.popStack(),i[p]=this.popStack());return o&&(s.args=this.source.generateArray(r)),this.trackIds&&(s.ids=this.source.generateArray(n)),this.stringParams&&(s.types=this.source.generateArray(a),s.contexts=this.source.generateArray(i)),this.options.data&&(s.data="data"),this.useBlockParams&&(s.blockParams="blockParams"),s},setupHelperArgs:function(t,e,r,s){var i=this.setupParams(t,e,r);return i=this.objectLiteral(i),s?(this.useRegister("options"),r.push("options"),["options=",i]):r?(r.push(i),""):i}},function(){for(var t="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),e=i.RESERVED_WORDS={},r=0,s=t.length;r<s;r++)e[t[r]]=!0}
vendor: 2,039 bytes, line 6
6(),i.isValidJavaScriptVariableName=function(t){return!i.RESERVED_WORDS[t]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(t)},e.default=i,t.exports=e.default},function(t,e,r){"use strict";function s(t,e,r){if(a.isArray(t)){for(var s=[],i=0,n=t.length;i<n;i++)s.push(e.wrap(t[i],r));return s}return"boolean"==typeof t||"number"==typeof t?t+"":t}function i(t){this.srcFile=t,this.source=[]}e.__esModule=!0;var a=r(5),n=void 0;try{}catch(t){}n||((n=function(t,e,r,s){this.src="",s&&this.add(s)}).prototype={add:function(t){a.isArray(t)&&(t=t.join("")),this.src+=t},prepend:function(t){a.isArray(t)&&(t=t.join("")),this.src=t+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),i.prototype={isEmpty:function(){return!this.source.length},prepend:function(t,e){this.source.unshift(this.wrap(t,e))},push:function(t,e){this.source.push(this.wrap(t,e))},merge:function(){var t=this.empty();return this.each(function(e){t.add(["  ",e,"\n"])}),t},each:function(t){for(var e=0,r=this.source.length;e<r;e++)t(this.source[e])},empty:function(){var t=this.currentLocation||{start:{}};return new n(t.start.line,t.start.column,this.srcFile)},wrap:function(t){var e=arguments.length<=1||void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return t instanceof n?t:(t=s(t,this,e),new n(e.start.line,e.start.column,this.srcFile,t))},functionCall:function(t,e,r){return r=this.generateList(r),this.wrap([t,e?"."+e+"(":"(",r,")"])},quotedString:function(t){return'"'+(t+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(t){var e=[];for(var r in t)if(t.hasOwnProperty(r)){var i=s(t[r],this);"undefined"!==i&&e.push([this.quotedString(r),":",i])}var a=this.generateList(e);return a.prepend("{"),a.add("}"),a},generateList:function(t){for(var e=this.empty(),r=0,i=t.length;r<i;r++)r&&e.add(","),e.add(s(t[r],this));return e},generateArray:function(t){var e=this.generateList(t);
6return e.prepend("["),e.add("]"),e}},e.default=i,t.exports=e.default}])});
7/*
8 * Copyright 2016 Small Batch, Inc.
9 *
10 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
11 * use this file except in compliance with the License. You may obtain a copy of
12 * the License at
13 *
14 * http://www.apache.org/licenses/LICENSE-2.0
15 *
16 * Unless required by applicable law or agreed to in writing, software
17 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
18 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
19 * License for the specific language governing permissions and limitations under
20 * the License.
21 */
22/* Web Font Loader v1.6.16 - (c) Adobe Systems, Google. License: Apache 2.0 */
23(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function n(a,b,c){n=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return n.apply(null,arguments)}var p=Date.now||function(){return+new Date};function r(a,b){this.F=a;this.k=b||a;this.H=this.k.document}var ca=!!window.FontFace;r.prototype.createElement=function(a,b,c){a=this.H.createElement(a);if(b)for(var d in b)b.hasOwnProperty(d)&&("style"==d?a.style.cssText=b[d]:a.setAttribute(d,b[d]));c&&a.appendChild(this.H.createTextNode(c));return a};function s(a,b,c){a=a.H.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}
24function t(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function u(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}
25function v(a){if("string"===typeof a.fa)return a.fa;var b=a.k.location.protocol;"about:"==b&&(b=a.F.location.protocol);return"https:"==b?"https:":"http:"}function x(a,b,c){function d(){l&&e&&f&&(l(g),l=null)}b=a.createElement("link",{rel:"stylesheet",href:b,media:"all"});var e=!1,f=!0,g=null,l=c||null;ca?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error("Stylesheet failed to load");d()}):setTimeout(function(){e=!0;d()},0);s(a,"head",b)}
26function y(a,b,c,d){var e=a.H.getElementsByTagName("head")[0];if(e){var f=a.createElement("script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function z(){this.S=0;this.K=null}function A(a){a.S++;return function(){a.S--;B(a)}}function C(a,b){a.K=b;B(a)}function B(a){0==a.S&&a.K&&(a.K(),a.K=null)};function D(a){this.ea=a||"-"}D.prototype.d=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.ea)};function E(a,b){this.Q=a;this.M=4;this.L="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.L=c[1],this.M=parseInt(c[2],10))}E.prototype.getName=function(){return this.Q};function da(a){return F(a)+" "+(a.M+"00")+" 300px "+G(a.Q)}function G(a){var b=[];a=a.split(/,\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['"]/g,"");-1!=d.indexOf(" ")||/^\d/.test(d)?b.push("'"+d+"'"):b.push(d)}return b.join(",")}function I(a){return a.L+a.M}
27function F(a){var b="normal";"o"===a.L?b="oblique":"i"===a.L&&(b="italic");return b}function ea(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function fa(a,b){this.a=a;this.j=a.k.document.documentElement;this.O=b;this.f="wf";this.e=new D("-");this.da=!1!==b.events;this.u=!1!==b.classes}function ga(a){a.u&&t(a.j,[a.e.d(a.f,"loading")]);J(a,"loading")}function K(a){if(a.u){var b=u(a.j,a.e.d(a.f,"active")),c=[],d=[a.e.d(a.f,"loading")];b||c.push(a.e.d(a.f,"inactive"));t(a.j,c,d)}J(a,"inactive")}function J(a,b,c){if(a.da&&a.O[b])if(c)a.O[b](c.getName(),I(c));else a.O[b]()};function ha(){this.t={}}function ia(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.t[e];f&&d.push(f(b[e],c))}return d};function L(a,b){this.a=a;this.h=b;this.m=this.a.createElement("span",{"aria-hidden":"true"},this.h)}function M(a,b){var c=a.m,d;d="display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+G(b.Q)+";"+("font-style:"+F(b)+";font-weight:"+(b.M+"00")+";");c.style.cssText=d}function N(a){s(a.a,"body",a.m)}L.prototype.remove=function(){var a=this.m;a.parentNode&&a.parentNode.removeChild(a)};function O(a,b,c,d,e,f){this.G=a;this.J=b;this.g=d;this.a=c;this.v=e||3E3;this.h=f||void 0}O.prototype.start=function(){function a(){p()-d>=c.v?c.J(c.g):b.fonts.load(da(c.g),c.h).then(function(b){1<=b.length?c.G(c.g):setTimeout(a,25)},function(){c.J(c.g)})}var b=this.a.k.document,c=this,d=p();a()};function P(a,b,c,d,e,f,g){this.G=a;this.J=b;this.a=c;this.g=d;this.h=g||"BESbswy";this.s={};this.v=e||3E3;this.Z=f||null;this.D=this.C=this.A=this.w=null;this.w=new L(this.a,this.h);this.A=new L(this.a,this.h);this.C=new L(this.a,this.h);this.D=new L(this.a,this.h);M(this.w,new E(this.g.getName()+",serif",I(this.g)));M(this.A,new E(this.g.getName()+",sans-serif",I(this.g)));M(this.C,new E("serif",I(this.g)));M(this.D,new E("sans-serif",I(this.g)));N(this.w);N(this.A);N(this.C);N(this.D)}
28var Q={ia:"serif",ha:"sans-serif"},R=null;
28function S(){if(null===R){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);R=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return R}P.prototype.start=function(){this.s.serif=this.C.m.offsetWidth;this.s["sans-serif"]=this.D.m.offsetWidth;this.ga=p();ja(this)};function ka(a,b,c){for(var d in Q)if(Q.hasOwnProperty(d)&&b===a.s[Q[d]]&&c===a.s[Q[d]])return!0;return!1}
29function ja(a){var b=a.w.m.offsetWidth,c=a.A.m.offsetWidth,d;(d=b===a.s.serif&&c===a.s["sans-serif"])||(d=S()&&ka(a,b,c));d?p()-a.ga>=a.v?S()&&ka(a,b,c)&&(null===a.Z||a.Z.hasOwnProperty(a.g.getName()))?T(a,a.G):T(a,a.J):la(a):T(a,a.G)}function la(a){setTimeout(n(function(){ja(this)},a),50)}function T(a,b){setTimeout(n(function(){this.w.remove();this.A.remove();this.C.remove();this.D.remove();b(this.g)},a),0)};function U(a,b,c){this.a=a;this.p=b;this.P=0;this.ba=this.Y=!1;this.v=c}var V=null;U.prototype.V=function(a){var b=this.p;b.u&&t(b.j,[b.e.d(b.f,a.getName(),I(a).toString(),"active")],[b.e.d(b.f,a.getName(),I(a).toString(),"loading"),b.e.d(b.f,a.getName(),I(a).toString(),"inactive")]);J(b,"fontactive",a);this.ba=!0;ma(this)};
30U.prototype.W=function(a){var b=this.p;if(b.u){var c=u(b.j,b.e.d(b.f,a.getName(),I(a).toString(),"active")),d=[],e=[b.e.d(b.f,a.getName(),I(a).toString(),"loading")];c||d.push(b.e.d(b.f,a.getName(),I(a).toString(),"inactive"));t(b.j,d,e)}J(b,"fontinactive",a);ma(this)};function ma(a){0==--a.P&&a.Y&&(a.ba?(a=a.p,a.u&&t(a.j,[a.e.d(a.f,"active")],[a.e.d(a.f,"loading"),a.e.d(a.f,"inactive")]),J(a,"active")):K(a.p))};function na(a){this.F=a;this.q=new ha;this.$=0;this.T=this.U=!0}na.prototype.load=function(a){this.a=new r(this.F,a.context||this.F);this.U=!1!==a.events;this.T=!1!==a.classes;oa(this,new fa(this.a,a),a)};
31function pa(a,b,c,d,e){var f=0==--a.$;(a.T||a.U)&&setTimeout(function(){var a=e||null,l=d||null||{};if(0===c.length&&f)K(b.p);else{b.P+=c.length;f&&(b.Y=f);var h,k=[];for(h=0;h<c.length;h++){var m=c[h],w=l[m.getName()],q=b.p,H=m;q.u&&t(q.j,[q.e.d(q.f,H.getName(),I(H).toString(),"loading")]);J(q,"fontloading",H);q=null;null===V&&(V=window.FontFace?(q=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent))?42<parseInt(q[1],10):!0:!1);q=V?new O(n(b.V,b),n(b.W,b),b.a,m,b.v,w):new P(n(b.V,b),n(b.W,b),
32b.a,m,b.v,a,w);k.push(q)}for(h=0;h<k.length;h++)k[h].start()}},0)}function oa(a,b,c){var d=[],e=c.timeout;ga(b);var d=ia(a.q,c,a.a),f=new U(a.a,b,e);a.$=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,c,d){pa(a,f,b,c,d)})};function qa(a,b,c){this.N=a?a:b+ra;this.o=[];this.R=[];this.ca=c||""}var ra="//fonts.googleapis.com/css";function sa(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(":");3==e.length&&a.R.push(e.pop());var f="";2==e.length&&""!=e[1]&&(f=":");a.o.push(e.join(f))}}
33qa.prototype.d=function(){if(0==this.o.length)throw Error("No fonts to load!");if(-1!=this.N.indexOf("kit="))return this.N;for(var a=this.o.length,b=[],c=0;c<a;c++)b.push(this.o[c].replace(/ /g,"+"));a=this.N+"?family="+b.join("%7C");0<this.R.length&&(a+="&subset="+this.R.join(","));0<this.ca.length&&(a+="&text="+encodeURIComponent(this.ca));return a};function ta(a){this.o=a;this.aa=[];this.I={}}
34var ua={latin:"BESbswy",cyrillic:"&#1081;&#1103;&#1046;",greek:"&#945;&#946;&#931;",khmer:"&#x1780;&#x1781;&#x1782;",Hanuman:"&#x1780;&#x1781;&#x1782;"},va={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},wa={i:"i",italic:"i",n:"n",normal:"n"},xa=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
35ta.prototype.parse=function(){for(var a=this.o.length,b=0;b<a;b++){var c=this.o[b].split(":"),d=c[0].replace(/\+/g," "),e=["n4"];if(2<=c.length){var f;var g=c[1];f=[];if(g)for(var g=g.split(","),l=g.length,h=0;h<l;h++){var k;k=g[h];if(k.match(/^[\w-]+$/))if(k=xa.exec(k.toLowerCase()),null==k)k="";else{var m;m=k[1];if(null==m||""==m)m="4";else{var w=va[m];m=w?w:isNaN(m)?"4":m.substr(0,1)}k=k[2];k=[null==k||""==k?"n":wa[k],m].join("")}else k="";k&&f.push(k)}0<f.length&&(e=f);3==c.length&&(c=c[2],f=
36[],c=c?c.split(","):f,0<c.length&&(c=ua[c[0]])&&(this.I[d]=c))}this.I[d]||(c=ua[d])&&(this.I[d]=c);for(c=0;c<e.length;c+=1)this.aa.push(new E(d,e[c]))}};function ya(a,b){this.a=a;this.c=b}var za={Arimo:!0,Cousine:!0,Tinos:!0};ya.prototype.load=function(a){var b=new z,c=this.a,d=new qa(this.c.api,v(c),this.c.text),e=this.c.families;sa(d,e);var f=new ta(e);f.parse();x(c,d.d(),A(b));C(b,function(){a(f.aa,f.I,za)})};function W(a,b){this.a=a;this.c=b;this.X=[]}W.prototype.B=function(a){var b=this.a;return v(this.a)+(this.c.api||"//f.fontdeck.com/s/css/js/")+(b.k.location.hostname||b.F.location.hostname)+"/"+a+".js"};
37W.prototype.load=function(a){var b=this.c.id,c=this.a.k,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,l=c.fonts.length;g<l;++g){var h=c.fonts[g];d.X.push(new E(h.name,ea("font-weight:"+h.weight+";font-style:"+h.style)))}a(d.X)},y(this.a,this.B(b),function(b){b&&a([])})):a([])};function X(a,b){this.a=a;this.c=b}X.prototype.B=function(a){return(this.c.api||"https://use.typekit.net")+"/"+a+".js"};X.prototype.load=function(a){var b=this.c.id,c=this.a.k;b?y(this.a,this.B(b),function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],l=b[f+1],h=0;h<l.length;
37h++)e.push(new E(g,l[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(k){}a(e)}},2E3):a([])};function Y(a,b){this.a=a;this.c=b}Y.prototype.B=function(a,b){var c=v(this.a),d=(this.c.api||"fast.fonts.net/jsapi").replace(/^.*http(s?):(\/\/)?/,"");return c+"//"+d+"/"+a+".js"+(b?"?v="+b:"")};
38Y.prototype.load=function(a){function b(){if(e["__mti_fntLst"+c]){var d=e["__mti_fntLst"+c](),g=[],l;if(d)for(var h=0;h<d.length;h++){var k=d[h].fontfamily;void 0!=d[h].fontStyle&&void 0!=d[h].fontWeight?(l=d[h].fontStyle+d[h].fontWeight,g.push(new E(k,l))):g.push(new E(k))}a(g)}else setTimeout(function(){b()},50)}var c=this.c.projectId,d=this.c.version;if(c){var e=this.a.k;y(this.a,this.B(c,d),function(c){c?a([]):b()}).id="__MonotypeAPIScript__"+c}else a([])};function Aa(a,b){this.a=a;this.c=b}Aa.prototype.load=function(a){var b,c,d=this.c.urls||[],e=this.c.families||[],f=this.c.testStrings||{},g=new z;b=0;for(c=d.length;b<c;b++)x(this.a,d[b],A(g));var l=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(":"),d[1])for(var h=d[1].split(","),k=0;k<h.length;k+=1)l.push(new E(d[0],h[k]));else l.push(new E(d[0]));C(g,function(){a(l,f)})};var Z=new na(window);Z.q.t.custom=function(a,b){return new Aa(b,a)};Z.q.t.fontdeck=function(a,b){return new W(b,a)};Z.q.t.monotype=function(a,b){return new Y(b,a)};Z.q.t.typekit=function(a,b){return new X(b,a)};Z.q.t.google=function(a,b){return new ya(b,a)};var $={load:n(Z.load,Z)};"function"===typeof define&&define.amd?define(function(){return $}):"undefined"!==typeof module&&module.exports?module.exports=$:(window.WebFont=$,window.WebFontConfig&&Z.load(window.WebFontConfig));}());
39
40!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="dist/",t(0)}([function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},r=n(1),a=(o(r),n(6)),u=o(a),c=n(7),f=o(c),s=n(8),d=o(s),l=n(9),p=o(l),m=n(10),b=o(m),v=n(11),y=o(v),g=n(14),h=o(g),w=[],k=!1,x={offset:120,delay:0,easing:"ease",duration:400,disable:!1,once:!1,startEvent:"DOMContentLoaded",throttleDelay:99,debounceDelay:50,disableMutationObserver:!1},j=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},_=function(){w.forEach(function(e,t){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay")})},S=function(e){return e===!0||"mobile"===e&&p.default.mobile()||"phone"===e&&p.default.phone()||"tablet"===e&&p.default.tablet()||"function"==typeof e&&e()===!0},z=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?_():(document.querySelector("body").setAttribute("data-aos-easing",x.easing),document.querySelector("body").setAttribute("data-aos-duration",x.duration),document.querySelector("body").setAttribute("data-aos-delay",x.delay),"DOMContentLoaded"===x.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1?j(!0):"load"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener("resize",(0,f.default)(j,x.debounceDelay,!0)),window.addEventListener("orientationchange",(0,f.default)(j,x.debounceDelay,!0)),window.addEventListener("scroll",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||(0,d.default)("[data-aos]",O),w)};e.exports={init:z,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){"use strict";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(s,t),_?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function s(){var e=O();return c(e)?d(e):void(h=setTimeout(s,a(e)))}function d(e){return h=void 0,z&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(s,t),o(w)}return void 0===h&&(h=setTimeout(s,t)),g}var b,v,y,g,h,w,k=0,_=!1,S=!1,z=!0;if("function"!=typeof e)throw new TypeError(f);return t=u(t)||0,i(n)&&(_=!!n.leading,S="maxWait"in n,y=S?x(u(n.maxWait)||0,t):y,z="trailing"in n?!!n.trailing:z),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if("function"!=typeof e)throw new TypeError(f);return i(o)&&(r="leading"in o?!!o.leading:r,a="trailing"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t="undefined"==typeof e?"undefined":c(e);return!!e&&("object"==t||"function"==t)}function r(e){return!!e&&"object"==("undefined"==typeof e?"undefined":c(e))}function a(e){return"symbol"==("undefined"==typeof e?"undefined":c(e))||r(e)&&k.call(e)==d}function u(e){if("number"==typeof e)return e;if(a(e))return s;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(l,"");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?s:+e}var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f="Expected a function",s=NaN,d="[object Symbol]",l=/^\s+|\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y="object"==("undefined"==typeof t?"undefined":c(t))&&t&&t.Object===Object&&t,g="object"==("undefined"==typeof self?"undefined":c(self))&&self&&self.Object===Object&&self,h=y||g||Function("return this")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){"use strict";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(s,t),_?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function f(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function s(){var e=j();return f(e)?d(e):void(h=setTimeout(s,u(e)))}function d(e){return h=void 0,z&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=f(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(s,t),i(w)}return void 0===h&&(h=setTimeout(s,t)),g}var b,v,y,g,h,w,O=0,_=!1,S=!1,z=!0;if("function"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(_=!!n.leading,S="maxWait"in n,y=S?k(a(n.maxWait)||0,t):y,z="trailing"in n?!!n.trailing:z),m.cancel=l,m.flush=p,m}function o(e){var t="undefined"==typeof e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function i(e){return!!e&&"object"==("undefined"==typeof e?"undefined":u(e))}function r(e){return"symbol"==("undefined"==typeof e?"undefined":u(e))||i(e)&&w.call(e)==s}function a(e){if("number"==typeof e)return e;if(r(e))return f;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(d,"");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?f:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c="Expected a function",f=NaN,s="[object Symbol]",d=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v="object"==("undefined"==typeof t?"undefined":u(t))&&t&&t.Object===Object&&t,y="object"==("undefined"==typeof self?"undefined":u(self))&&self&&self.Object===Object&&self,g=v||y||Function("return this")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){"use strict";function n(e,t){var n=window.document,r=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,a=new r(o);i=t,a.observe(n.documentElement,{childList:!0,subtree:!0,removedNodes:!0})}function o(e){e&&e.forEach(function(e){var t=Array.prototype.slice.call(e.addedNodes),n=Array.prototype.slice.call(e.removedNodes
40),o=t.concat(n).filter(function(e){return e.hasAttribute&&e.hasAttribute("data-aos")}).length;o&&i()})}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){};t.default=n},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(){return navigator.userAgent||navigator.vendor||window.opera||""}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),r=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,a=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,u=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i,c=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
40sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,f=function(){function e(){n(this,e)}return i(e,[{key:"phone",value:function(){var e=o();return!(!r.test(e)&&!a.test(e.substr(0,4)))}},{key:"mobile",value:function(){var e=o();return!(!u.test(e)&&!c.test(e.substr(0,4)))}},{key:"tablet",value:function(){return this.mobile()&&!this.phone()}}]),e}();t.default=new f},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e,t,n){var o=e.node.getAttribute("data-aos-once");t>e.position?e.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&e.node.classList.remove("aos-animate")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add("aos-init"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case"top-bottom":break;case"center-bottom":n+=e.offsetHeight/2;break;case"bottom-bottom":n+=e.offsetHeight;break;case"top-center":n+=i/2;break;case"bottom-center":n+=i/2+e.offsetHeight;break;case"center-center":n+=i/2+e.offsetHeight/2;break;case"top-top":n+=i;break;case"bottom-top":n+=e.offsetHeight+i;break;case"center-top":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){return e=e||document.querySelectorAll("[data-aos]"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});
41var Mobypicture = {};
42//! moment.js
43//! version : 2.14.1
44//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
45//! license : MIT
46//! momentjs.com
47!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return je.apply(null,arguments)}
48// This is done to register the method called with moment()
49// without creating circular dependencies.
50function b(a){je=a}function c(a){return a instanceof Array||"[object Array]"===Object.prototype.toString.call(a)}function d(a){return"[object Object]"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)
51// even if its not own property I'd still call it non-empty
52return!1;return!0}function f(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function g(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function h(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function i(a,b){for(var c in b)h(b,c)&&(a[c]=b[c]);return h(b,"toString")&&(a.toString=b.toString),h(b,"valueOf")&&(a.valueOf=b.valueOf),a}function j(a,b,c,d){return qb(a,b,c,d,!0).utc()}function k(){
53// We need to deep clone this object.
54return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invali
vendor: 13,743 bytes, lines 54-117
54dFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null}}function l(a){return null==a._pf&&(a._pf=k()),a._pf}function m(a){if(null==a._isValid){var b=l(a),c=ke.call(b.parsedDateParts,function(a){return null!=a});a._isValid=!isNaN(a._d.getTime())&&b.overflow<0&&!b.empty&&!b.invalidMonth&&!b.invalidWeekday&&!b.nullInput&&!b.invalidFormat&&!b.userInvalidated&&(!b.meridiem||b.meridiem&&c),a._strict&&(a._isValid=a._isValid&&0===b.charsLeftOver&&0===b.unusedTokens.length&&void 0===b.bigHour)}return a._isValid}function n(a){var b=j(NaN);return null!=a?i(l(b),a):l(b).userInvalidated=!0,b}function o(a){return void 0===a}function p(a,b){var c,d,e;if(o(b._isAMomentObject)||(a._isAMomentObject=b._isAMomentObject),o(b._i)||(a._i=b._i),o(b._f)||(a._f=b._f),o(b._l)||(a._l=b._l),o(b._strict)||(a._strict=b._strict),o(b._tzm)||(a._tzm=b._tzm),o(b._isUTC)||(a._isUTC=b._isUTC),o(b._offset)||(a._offset=b._offset),o(b._pf)||(a._pf=l(b)),o(b._locale)||(a._locale=b._locale),le.length>0)for(c in le)d=le[c],e=b[d],o(e)||(a[d]=e);return a}
55// Moment prototype object
56function q(b){p(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),me===!1&&(me=!0,a.updateOffset(this),me=!1)}function r(a){return a instanceof q||null!=a&&null!=a._isAMomentObject}function s(a){return 0>a?Math.ceil(a)||0:Math.floor(a)}function t(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=s(b)),c}
57// compare two arrays, return the number of differences
58function u(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&t(a[d])!==t(b[d]))&&g++;return g+f}function v(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function w(b,c){var d=!0;return i(function(){return null!=a.deprecationHandler&&a.deprecationHandler(null,b),d&&(v(b+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),d=!1),c.apply(this,arguments)},c)}function x(b,c){null!=a.deprecationHandler&&a.deprecationHandler(b,c),ne[b]||(v(c),ne[b]=!0)}function y(a){return a instanceof Function||"[object Function]"===Object.prototype.toString.call(a)}function z(a){var b,c;for(c in a)b=a[c],y(b)?this[c]=b:this["_"+c]=b;this._config=a,
59// Lenient ordinal parsing accepts just a number in addition to
60// number + (possibly) stuff coming from _ordinalParseLenient.
61this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function A(a,b){var c,e=i({},a);for(c in b)h(b,c)&&(d(a[c])&&d(b[c])?(e[c]={},i(e[c],a[c]),i(e[c],b[c])):null!=b[c]?e[c]=b[c]:delete e[c]);for(c in a)h(a,c)&&!h(b,c)&&d(a[c])&&(
62// make sure changes to properties don't modify parent config
63e[c]=i({},e[c]));return e}function B(a){null!=a&&this.set(a)}function C(a,b,c){var d=this._calendar[a]||this._calendar.sameElse;return y(d)?d.call(b,c):d}function D(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function E(){return this._invalidDate}function F(a){return this._ordinal.replace("%d",a)}function G(a,b,c,d){var e=this._relativeTime[c];return y(e)?e(a,b,c,d):e.replace(/%d/i,a)}function H(a,b){var c=this._relativeTime[a>0?"future":"past"];return y(c)?c(b):c.replace(/%s/i,b)}function I(a,b){var c=a.toLowerCase();we[c]=we[c+"s"]=we[b]=a}function J(a){return"string"==typeof a?we[a]||we[a.toLowerCase()]:void 0}function K(a){var b,c,d={};for(c in a)h(a,c)&&(b=J(c),b&&(d[b]=a[c]));return d}function L(a,b){xe[a]=b}function M(a){var b=[];for(var c in a)b.push({unit:c,priority:xe[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function N(b,c){return function(d){return null!=d?(P(this,b,d),a.updateOffset(this,c),this):O(this,b)}}function O(a,b){return a.isValid()?a._d["get"+(a._isUTC?"UTC":"")+b]():NaN}function P(a,b,c){a.isValid()&&a._d["set"+(a._isUTC?"UTC":"")+b](c)}
64// MOMENTS
65function Q(a){return a=J(a),y(this[a])?this[a]():this}function R(a,b){if("object"==typeof a){a=K(a);for(var c=M(a),d=0;d<c.length;d++)this[c[d].unit](a[c[d].unit])}else if(a=J(a),y(this[a]))return this[a](b);return this}function S(a,b,c){var d=""+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}
66// token:    'M'
67// padded:   ['MM', 2]
68// ordinal:  'Mo'
69// callback: function () { this.month() + 1 }
70function T(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(Be[a]=e),b&&(Be[b[0]]=function(){return S(e.apply(this,arguments),b[1],b[2])}),c&&(Be[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function U(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function V(a){var b,c,d=a.match(ye);for(b=0,c=d.length;c>b;b++)Be[d[b]]?d[b]=Be[d[b]]:d[b]=U(d[b]);return function(b){var e,f="";for(e=0;c>e;e++)f+=d[e]instanceof Function?d[e].call(b,a):d[e];return f}}
71// format date using native date object
72function W(a,b){return a.isValid()?(b=X(b,a.localeData()),Ae[b]=Ae[b]||V(b),Ae[b](a)):a.localeData().invalidDate()}function X(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(ze.lastIndex=0;d>=0&&ze.test(a);)a=a.replace(ze,c),ze.lastIndex=0,d-=1;return a}function Y(a,b,c){Te[a]=y(b)?b:function(a,d){return a&&c?c:b}}function Z(a,b){return h(Te,a)?Te[a](b._strict,b._locale):new RegExp($(a))}
73// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
74function $(a){return _(a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function _(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function aa(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),"number"==typeof b&&(d=function(a,c){c[b]=t(a)}),c=0;c<a.length;c++)Ue[a[c]]=d}function ba(a,b){aa(a,function(a,c,d,e){d._w=d._w||{},b(a,d._w,d,e)})}function ca(a,b,c){null!=b&&h(Ue,a)&&Ue[a](b,c._a,c,a)}function da(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function ea(a,b){return c(this._months)?this._months[a.month()]:this._months[(this._months.isFormat||cf).test(b)?"format":"standalone"][a.month()]}function fa(a,b){return c(this._monthsShort)?this._monthsShort[a.month()]:this._monthsShort[cf.test(b)?"format":"standalone"][a.month()]}function ga(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._monthsParse)for(
75// this is not used
76this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],d=0;12>d;++d)f=j([2e3,d]),this._shortMonthsParse[d]=this.monthsShort(f,"").toLocaleLowerCase(),this._longMonthsParse[d]=this.months(f,"").toLocaleLowerCase();return c?"MMM"===b?(e=pe.call(this._shortMonthsParse,g),-1!==e?e:null):(e=pe.call(this._longMonthsParse,g),-1!==e?e:null):"MMM"===b?(e=pe.call(this._shortMonthsParse,g),-1!==e?e:(e=pe.call(this._longMonthsParse,g),-1!==e?e:null)):(e=pe.call(this._longMonthsParse,g),-1!==e?e:(e=pe.call(this._shortMonthsParse,g),-1!==e?e:null))}function ha(a,b,c){var d,e,f;if(this._monthsParseExact)return ga.call(this,a,b,c);
77// TODO: add sorting
78// Sorting makes sure if one month (or abbr) is a prefix of another
79// see sorting in computeMonthsParse
80for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){
81// test the regex
82if(e=j([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}
83// MOMENTS
84function ia(a,b){var c;if(!a.isValid())
85// No op
86return a;if("string"==typeof b)if(/^\d+$/.test(b))b=t(b);else
87// TODO: Another silent failure?
88if(b=a.localeData().monthsParse(b),"number"!=typeof b)return a;return c=Math.min(a.date(),da(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a}function ja(b){return null!=b?(ia(this,b),a.updateOffset(this,!0),this):O(this,"Month")}function ka(){return da(this.year(),this.month())}function la(a){return this._monthsParseExact?(h(this,"_monthsRegex")||na.call(this),a?this._monthsShortStrictRegex:this._monthsShortRegex):(h(this,"_monthsShortRegex")||(this._monthsShortRegex=ff),this._monthsShortStrictRegex&&a?this._monthsShortStrictRegex:this._monthsShortRegex)}function ma(a){return this._monthsParseExact?(h(this,"_monthsRegex")||na.call(this),a?this._monthsStrictRegex:this._monthsRegex):(h(this,"_monthsRegex")||(this._monthsRegex=gf),this._monthsStrictRegex&&a?this._monthsStrictRegex:this._monthsRegex)}function na(){function a(a,b){return b.length-a.length}var b,c,d=[],e=[],f=[];for(b=0;12>b;b++)c=j([2e3,b]),d.push(this.monthsShort(c,"")),e.push(this.months(c,"")),f.push(this.months(c,"")),f.push(this.monthsShort(c,""));for(
89// Sorting makes sure if one month (or abbr) is a prefix of another it
90// will match the longer piece.
91d.sort(a),e.sort(a),f.sort(a),b=0;12>b;b++)d[b]=_(d[b]),e[b]=_(e[b]);for(b=0;24>b;b++)f[b]=_(f[b]);this._monthsRegex=new RegExp("^("+f.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+e.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+d.join("|")+")","i")}
92// HELPERS
93function oa(a){return pa(a)?366:365}function pa(a){return a%4===0&&a%100!==0||a%400===0}function qa(){return pa(this.year())}function ra(a,b,c,d,e,f,g){
94//can't just apply() to create a date:
95//http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply
96var h=new Date(a,b,c,d,e,f,g);
97//the date constructor remaps years 0-99 to 1900-1999
98return 100>a&&a>=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function sa(a){var b=new Date(Date.UTC.apply(null,arguments));
99//the Date.UTC function remaps years 0-99 to 1900-1999
100return 100>a&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}
101// start-of-first-week - start-of-year
102function ta(a,b,c){var// first-week day -- which january is always in the first week (4 for iso, 1 for other)
103d=7+b-c,
104// first-week day local weekday -- which local weekday is fwd
105e=(7+sa(a,0,d).getUTCDay()-b)%7;return-e+d-1}
106//http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
107function ua(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ta(a,d,e),j=1+7*(b-1)+h+i;return 0>=j?(f=a-1,g=oa(f)+j):j>oa(a)?(f=a+1,g=j-oa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function va(a,b,c){var d,e,f=ta(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return 1>g?(e=a.year()-1,d=g+wa(e,b,c)):g>wa(a.year(),b,c)?(d=g-wa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function wa(a,b,c){var d=ta(a,b,c),e=ta(a+1,b,c);return(oa(a)-d+e)/7}
108// HELPERS
109// LOCALES
110function xa(a){return va(a,this._week.dow,this._week.doy).week}function ya(){return this._week.dow}function za(){return this._week.doy}
111// MOMENTS
112function Aa(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function Ba(a){var b=va(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}
113// HELPERS
114function Ca(a,b){return"string"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),"number"==typeof a?a:null):parseInt(a,10)}function Da(a,b){return"string"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Ea(a,b){return c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?"format":"standalone"][a.day()]}function Fa(a){return this._weekdaysShort[a.day()]}function Ga(a){return this._weekdaysMin[a.day()]}function Ha(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;7>d;++d)f=j([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,"").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,"").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,"").toLocaleLowerCase();return c?"dddd"===b?(e=pe.call(this._weekdaysParse,g),-1!==e?e:null):"ddd"===b?(e=pe.call(this._shortWeekdaysParse,g),-1!==e?e:null):(e=pe.call(this._minWeekdaysParse,g),-1!==e?e:null):"dddd"===b?(e=pe.call(this._weekdaysParse,g),-1!==e?e:(e=pe.call(this._shortWeekdaysParse,g),-1!==e?e:(e=pe.call(this._minWeekdaysParse,g),-1!==e?e:null))):"ddd"===b?(e=pe.call(this._shortWeekdaysParse,g),-1!==e?e:(e=pe.call(this._weekdaysParse,g),-1!==e?e:(e=pe.call(this._minWeekdaysParse,g),-1!==e?e:null))):(e=pe.call(this._minWeekdaysParse,g),-1!==e?e:(e=pe.call(this._weekdaysParse,g),-1!==e?e:(e=pe.call(this._shortWeekdaysParse,g),-1!==e?e:null)))}function Ia(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ha.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;7>d;d++){
115// test the regex
116if(e=j([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp("^"+this.weekdays(e,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[d]=new RegExp("^"+this.weekdaysShort(e,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[d]=new RegExp("^"+this.weekdaysMin(e,"").replace(".",".?")+"$","i")),this._weekdaysParse[d]||(f="^"+this.weekdays(e,"")+"|^"+this.weekdaysShort(e,"")+"|^"+this.weekdaysMin(e,""),this._weekdaysParse[d]=new RegExp(f.replace(".",""),"i")),c&&"dddd"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&"ddd"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&"dd"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}
117// MOMENTS
vendor: 1,286 bytes, lines 118-122
118function Ja(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Ca(a,this.localeData()),this.add(a-b,"d")):b}function Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function La(a){if(!this.isValid())return null!=a?this:NaN;
119// behaves the same as moment#day except
120// as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
121// as a setter, sunday should belong to the previous week.
122if(null!=a){var b=Da(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Ma(a){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Pa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(h(this,"_weekdaysRegex")||(this._weekdaysRegex=nf),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Na(a){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Pa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(h(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=of),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Oa(a){return this._weekdaysParseExact?(h(this,"_weekdaysRegex")||Pa.
vendor: 23,999 bytes, lines 122-332
122call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(h(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=pf),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Pa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],k=[];for(b=0;7>b;b++)c=j([2e3,1]).day(b),d=this.weekdaysMin(c,""),e=this.weekdaysShort(c,""),f=this.weekdays(c,""),g.push(d),h.push(e),i.push(f),k.push(d),k.push(e),k.push(f);for(
123// Sorting makes sure if one weekday (or abbr) is a prefix of another it
124// will match the longer piece.
125g.sort(a),h.sort(a),i.sort(a),k.sort(a),b=0;7>b;b++)h[b]=_(h[b]),i[b]=_(i[b]),k[b]=_(k[b]);this._weekdaysRegex=new RegExp("^("+k.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+g.join("|")+")","i")}
126// FORMATTING
127function Qa(){return this.hours()%12||12}function Ra(){return this.hours()||24}function Sa(a,b){T(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}
128// PARSING
129function Ta(a,b){return b._meridiemParse}
130// LOCALES
131function Ua(a){
132// IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
133// Using charAt should be more compatible.
134return"p"===(a+"").toLowerCase().charAt(0)}function Va(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Wa(a){return a?a.toLowerCase().replace("_","-"):a}
135// pick the locale from the array
136// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
137// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
138function Xa(a){for(var b,c,d,e,f=0;f<a.length;){for(e=Wa(a[f]).split("-"),b=e.length,c=Wa(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=Ya(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&u(e,c,!0)>=b-1)
139//the next array item is better than a shallower substring of this one
140break;b--}f++}return null}function Ya(a){var b=null;
141// TODO: Find a better way to register and load all the locales in Node
142if(!uf[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=qf._abbr,require("./locale/"+a),
143// because defineLocale currently also sets the global locale, we
144// want to undo that for lazy loaded locales
145Za(b)}catch(c){}return uf[a]}
146// This function will load locale and then set the global locale.  If
147// no arguments are passed in, it will simply return the current global
148// locale key.
149function Za(a,b){var c;
150// moment.duration._locale = moment._locale = data;
151return a&&(c=o(b)?ab(a):$a(a,b),c&&(qf=c)),qf._abbr}function $a(a,b){if(null!==b){var c=tf;
152// treat as if there is no base config
153// backwards compat for now: also set the locale
154return b.abbr=a,null!=uf[a]?(x("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),c=uf[a]._config):null!=b.parentLocale&&(null!=uf[b.parentLocale]?c=uf[b.parentLocale]._config:x("parentLocaleUndefined","specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/")),uf[a]=new B(A(c,b)),Za(a),uf[a]}
155// useful for testing
156return delete uf[a],null}function _a(a,b){if(null!=b){var c,d=tf;
157// MERGE
158null!=uf[a]&&(d=uf[a]._config),b=A(d,b),c=new B(b),c.parentLocale=uf[a],uf[a]=c,
159// backwards compat for now: also set the locale
160Za(a)}else
161// pass null for config to unupdate, useful for tests
162null!=uf[a]&&(null!=uf[a].parentLocale?uf[a]=uf[a].parentLocale:null!=uf[a]&&delete uf[a]);return uf[a]}
163// returns locale data
164function ab(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return qf;if(!c(a)){if(b=Ya(a))return b;a=[a]}return Xa(a)}function bb(){return oe(uf)}function cb(a){var b,c=a._a;return c&&-2===l(a).overflow&&(b=c[We]<0||c[We]>11?We:c[Xe]<1||c[Xe]>da(c[Ve],c[We])?Xe:c[Ye]<0||c[Ye]>24||24===c[Ye]&&(0!==c[Ze]||0!==c[$e]||0!==c[_e])?Ye:c[Ze]<0||c[Ze]>59?Ze:c[$e]<0||c[$e]>59?$e:c[_e]<0||c[_e]>999?_e:-1,l(a)._overflowDayOfYear&&(Ve>b||b>Xe)&&(b=Xe),l(a)._overflowWeeks&&-1===b&&(b=af),l(a)._overflowWeekday&&-1===b&&(b=bf),l(a).overflow=b),a}
165// date from iso format
166function db(a){var b,c,d,e,f,g,h=a._i,i=vf.exec(h)||wf.exec(h);if(i){for(l(a).iso=!0,b=0,c=yf.length;c>b;b++)if(yf[b][1].exec(i[1])){e=yf[b][0],d=yf[b][2]!==!1;break}if(null==e)return void(a._isValid=!1);if(i[3]){for(b=0,c=zf.length;c>b;b++)if(zf[b][1].exec(i[3])){
167// match[2] should be 'T' or space
168f=(i[2]||" ")+zf[b][0];break}if(null==f)return void(a._isValid=!1)}if(!d&&null!=f)return void(a._isValid=!1);if(i[4]){if(!xf.exec(i[4]))return void(a._isValid=!1);g="Z"}a._f=e+(f||"")+(g||""),jb(a)}else a._isValid=!1}
169// date from iso format or fallback
170function eb(b){var c=Af.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(db(b),void(b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b))))}
171// Pick the first defined of two or three arguments.
172function fb(a,b,c){return null!=a?a:null!=b?b:c}function gb(b){
173// hooks is actually the exported moment object
174var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}
175// convert an array to a date.
176// the array should mirror the parameters below
177// note: all values past the year are optional and will default to the lowest possible value.
178// [year, month, day , hour, minute, second, millisecond]
179function hb(a){var b,c,d,e,f=[];if(!a._d){
180// Default to current date.
181// * if no year, month, day of month are given, default to today
182// * if day of month is given, default month and year
183// * if month is given, default only year
184// * if year is given, don't default anything
185for(d=gb(a),a._w&&null==a._a[Xe]&&null==a._a[We]&&ib(a),a._dayOfYear&&(e=fb(a._a[Ve],d[Ve]),a._dayOfYear>oa(e)&&(l(a)._overflowDayOfYear=!0),c=sa(e,0,a._dayOfYear),a._a[We]=c.getUTCMonth(),a._a[Xe]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=f[b]=d[b];
186// Zero out whatever was not defaulted, including time
187for(;7>b;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];
188// Check for 24:00:00.000
18924===a._a[Ye]&&0===a._a[Ze]&&0===a._a[$e]&&0===a._a[_e]&&(a._nextDay=!0,a._a[Ye]=0),a._d=(a._useUTC?sa:ra).apply(null,f),
190// Apply timezone offset from input. The actual utcOffset can be changed
191// with parseZone.
192null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[Ye]=24)}}function ib(a){var b,c,d,e,f,g,h,i;b=a._w,null!=b.GG||null!=b.W||null!=b.E?(f=1,g=4,c=fb(b.GG,a._a[Ve],va(rb(),1,4).year),d=fb(b.W,1),e=fb(b.E,1),(1>e||e>7)&&(i=!0)):(f=a._locale._week.dow,g=a._locale._week.doy,c=fb(b.gg,a._a[Ve],va(rb(),f,g).year),d=fb(b.w,1),null!=b.d?(e=b.d,(0>e||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f),1>d||d>wa(c,f,g)?l(a)._overflowWeeks=!0:null!=i?l(a)._overflowWeekday=!0:(h=ua(c,d,e,f,g),a._a[Ve]=h.year,a._dayOfYear=h.dayOfYear)}
193// date from string and format string
194function jb(b){
195// TODO: Move this to another part of the creation flow to prevent circular deps
196if(b._f===a.ISO_8601)return void db(b);b._a=[],l(b).empty=!0;
197// This array is used to make a Date, either with `new Date` or `Date.UTC`
198var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=X(b._f,b._locale).match(ye)||[],c=0;c<e.length;c++)f=e[c],d=(h.match(Z(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&l(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),Be[f]?(d?l(b).empty=!1:l(b).unusedTokens.push(f),ca(f,d,b)):b._strict&&!d&&l(b).unusedTokens.push(f);
199// add remaining unparsed input length to the string
200l(b).charsLeftOver=i-j,h.length>0&&l(b).unusedInput.push(h),
201// clear _12h flag if hour is <= 12
202b._a[Ye]<=12&&l(b).bigHour===!0&&b._a[Ye]>0&&(l(b).bigHour=void 0),l(b).parsedDateParts=b._a.slice(0),l(b).meridiem=b._meridiem,
203// handle meridiem
204b._a[Ye]=kb(b._locale,b._a[Ye],b._meridiem),hb(b),cb(b)}function kb(a,b,c){var d;
205// Fallback
206return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}
207// date from string and array of format strings
208function lb(a){var b,c,d,e,f;if(0===a._f.length)return l(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;e<a._f.length;e++)f=0,b=p({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._f=a._f[e],jb(b),m(b)&&(f+=l(b).charsLeftOver,f+=10*l(b).unusedTokens.length,l(b).score=f,(null==d||d>f)&&(d=f,c=b));i(a,c||b)}function mb(a){if(!a._d){var b=K(a._i);a._a=g([b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],function(a){return a&&parseInt(a,10)}),hb(a)}}function nb(a){var b=new q(cb(ob(a)));
209// Adding is smart enough around DST
210return b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b}function ob(a){var b=a._i,d=a._f;return a._locale=a._locale||ab(a._l),null===b||void 0===d&&""===b?n({nullInput:!0}):("string"==typeof b&&(a._i=b=a._locale.preparse(b)),r(b)?new q(cb(b)):(c(d)?lb(a):f(b)?a._d=b:d?jb(a):pb(a),m(a)||(a._d=null),a))}function pb(b){var d=b._i;void 0===d?b._d=new Date(a.now()):f(d)?b._d=new Date(d.valueOf()):"string"==typeof d?eb(b):c(d)?(b._a=g(d.slice(0),function(a){return parseInt(a,10)}),hb(b)):"object"==typeof d?mb(b):"number"==typeof d?
211// from milliseconds
212b._d=new Date(d):a.createFromInputFallback(b)}function qb(a,b,f,g,h){var i={};
213// object construction must be done this way.
214// https://github.com/moment/moment/issues/1423
215return"boolean"==typeof f&&(g=f,f=void 0),(d(a)&&e(a)||c(a)&&0===a.length)&&(a=void 0),i._isAMomentObject=!0,i._useUTC=i._isUTC=h,i._l=f,i._i=a,i._f=b,i._strict=g,nb(i)}function rb(a,b,c,d){return qb(a,b,c,d,!1)}
216// Pick a moment m from moments so that m[fn](other) is true for all
217// other. This relies on the function fn to be transitive.
218//
219// moments should either be an array of moment objects or an array, whose
220// first element is an array of moment objects.
221function sb(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return rb();for(d=b[0],e=1;e<b.length;++e)b[e].isValid()&&!b[e][a](d)||(d=b[e]);return d}
222// TODO: Use [].sort instead?
223function tb(){var a=[].slice.call(arguments,0);return sb("isBefore",a)}function ub(){var a=[].slice.call(arguments,0);return sb("isAfter",a)}function vb(a){var b=K(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;
224// representation for dateAddRemove
225this._milliseconds=+k+1e3*j+// 1000
2266e4*i+// 1000 * 60
2271e3*h*60*60,//using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
228// Because of dateAddRemove treats 24 hours as different from a
229// day when working around DST, we need to store them separately
230this._days=+g+7*f,
231// It is impossible translate months into days without knowing
232// which months you are are talking about, so we have to store
233// it separately.
234this._months=+e+3*d+12*c,this._data={},this._locale=ab(),this._bubble()}function wb(a){return a instanceof vb}
235// FORMATTING
236function xb(a,b){T(a,0,0,function(){var a=this.utcOffset(),c="+";return 0>a&&(a=-a,c="-"),c+S(~~(a/60),2)+b+S(~~a%60,2)})}function yb(a,b){var c=(b||"").match(a)||[],d=c[c.length-1]||[],e=(d+"").match(Ef)||["-",0,0],f=+(60*e[1])+t(e[2]);return"+"===e[0]?f:-f}
237// Return a moment from input, that is local/utc/zone equivalent to model.
238function zb(b,c){var d,e;
239// Use low-level api, because this fn is low-level api.
240return c._isUTC?(d=c.clone(),e=(r(b)||f(b)?b.valueOf():rb(b).valueOf())-d.valueOf(),d._d.setTime(d._d.valueOf()+e),a.updateOffset(d,!1),d):rb(b).local()}function Ab(a){
241// On Firefox.24 Date#getTimezoneOffset returns a floating point.
242// https://github.com/moment/moment/pull/1871
243return 15*-Math.round(a._d.getTimezoneOffset()/15)}
244// MOMENTS
245// keepLocalTime = true means only change the timezone, without
246// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
247// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
248// +0200, so we adjust the time as needed, to be valid.
249//
250// Keeping the time actually adds/subtracts (one hour)
251// from the actual represented time. That is why we call updateOffset
252// a second time. In case it wants us to change the offset again
253// _changeInProgress == true case, then we have to adjust, because
254// there is no such time in the given timezone.
255function Bb(b,c){var d,e=this._offset||0;return this.isValid()?null!=b?("string"==typeof b?b=yb(Qe,b):Math.abs(b)<16&&(b=60*b),!this._isUTC&&c&&(d=Ab(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,"m"),e!==b&&(!c||this._changeInProgress?Sb(this,Mb(b-e,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?e:Ab(this):null!=b?this:NaN}function Cb(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Db(a){return this.utcOffset(0,a)}function Eb(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Ab(this),"m")),this}function Fb(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(yb(Pe,this._i)),this}function Gb(a){return this.isValid()?(a=a?rb(a).utcOffset():0,(this.utcOffset()-a)%60===0):!1}function Hb(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ib(){if(!o(this._isDSTShifted))return this._isDSTShifted;var a={};if(p(a,this),a=ob(a),a._a){var b=a._isUTC?j(a._a):rb(a._a);this._isDSTShifted=this.isValid()&&u(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Jb(){return this.isValid()?!this._isUTC:!1}function Kb(){return this.isValid()?this._isUTC:!1}function Lb(){return this.isValid()?this._isUTC&&0===this._offset:!1}function Mb(a,b){var c,d,e,f=a,
256// matching against regexp is expensive, do it on demand
257g=null;// checks for null or undefined
258return wb(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(f={},b?f[b]=a:f.milliseconds=a):(g=Ff.exec(a))?(c="-"===g[1]?-1:1,f={y:0,d:t(g[Xe])*c,h:t(g[Ye])*c,m:t(g[Ze])*c,s:t(g[$e])*c,ms:t(g[_e])*c}):(g=Gf.exec(a))?(c="-"===g[1]?-1:1,f={y:Nb(g[2],c),M:Nb(g[3],c),w:Nb(g[4],c),d:Nb(g[5],c),h:Nb(g[6],c),m:Nb(g[7],c),s:Nb(g[8],c)}):null==f?f={}:"object"==typeof f&&("from"in f||"to"in f)&&(e=Pb(rb(f.from),rb(f.to)),f={},f.ms=e.milliseconds,f.M=e.months),d=new vb(f),wb(a)&&h(a,"_locale")&&(d._locale=a._locale),d}function Nb(a,b){
259// We'd normally use ~~inp for this, but unfortunately it also
260// converts floats to ints.
261// inp may be undefined, so careful calling replace on it.
262var c=a&&parseFloat(a.replace(",","."));
263// apply sign while we're at it
264return(isNaN(c)?0:c)*b}function Ob(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function Pb(a,b){var c;return a.isValid()&&b.isValid()?(b=zb(b,a),a.isBefore(b)?c=Ob(a,b):(c=Ob(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function Qb(a){return 0>a?-1*Math.round(-1*a):Math.round(a)}
265// TODO: remove 'name' arg after deprecation is removed
266function Rb(a,b){return function(c,d){var e,f;
267//invert the arguments, but complain about it
268return null===d||isNaN(+d)||(x(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Mb(c,d),Sb(this,e,a),this}}function Sb(b,c,d,e){var f=c._milliseconds,g=Qb(c._days),h=Qb(c._months);b.isValid()&&(e=null==e?!0:e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&P(b,"Date",O(b,"Date")+g*d),h&&ia(b,O(b,"Month")+h*d),e&&a.updateOffset(b,g||h))}function Tb(a,b){var c=a.diff(b,"days",!0);return-6>c?"sameElse":-1>c?"lastWeek":0>c?"lastDay":1>c?"sameDay":2>c?"nextDay":7>c?"nextWeek":"sameElse"}function Ub(b,c){
269// We want to compare the start of today, vs this.
270// Getting start-of-today depends on whether we're local/utc/offset or not.
271var d=b||rb(),e=zb(d,this).startOf("day"),f=a.calendarFormat(this,e)||"sameElse",g=c&&(y(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,rb(d)))}function Vb(){return new q(this)}function Wb(a,b){var c=r(a)?a:rb(a);return this.isValid()&&c.isValid()?(b=J(o(b)?"millisecond":b),"millisecond"===b?this.valueOf()>c.valueOf():c.valueOf()<this.clone().startOf(b).valueOf()):!1}function Xb(a,b){var c=r(a)?a:rb(a);return this.isValid()&&c.isValid()?(b=J(o(b)?"millisecond":b),"millisecond"===b?this.valueOf()<c.valueOf():this.clone().endOf(b).valueOf()<c.valueOf()):!1}function Yb(a,b,c,d){return d=d||"()",("("===d[0]?this.isAfter(a,c):!this.isBefore(a,c))&&(")"===d[1]?this.isBefore(b,c):!this.isAfter(b,c))}function Zb(a,b){var c,d=r(a)?a:rb(a);return this.isValid()&&d.isValid()?(b=J(b||"millisecond"),"millisecond"===b?this.valueOf()===d.valueOf():(c=d.valueOf(),this.clone().startOf(b).valueOf()<=c&&c<=this.clone().endOf(b).valueOf())):!1}function $b(a,b){return this.isSame(a,b)||this.isAfter(a,b)}function _b(a,b){return this.isSame(a,b)||this.isBefore(a,b)}function ac(a,b,c){var d,e,f,g;// 1000
272// 1000 * 60
273// 1000 * 60 * 60
274// 1000 * 60 * 60 * 24, negate dst
275// 1000 * 60 * 60 * 24 * 7, negate dst
276return this.isValid()?(d=zb(a,this),d.isValid()?(e=6e4*(d.utcOffset()-this.utcOffset()),b=J(b),"year"===b||"month"===b||"quarter"===b?(g=bc(this,d),"quarter"===b?g/=3:"year"===b&&(g/=12)):(f=this-d,g="second"===b?f/1e3:"minute"===b?f/6e4:"hour"===b?f/36e5:"day"===b?(f-e)/864e5:"week"===b?(f-e)/6048e5:f),c?g:s(g)):NaN):NaN}function bc(a,b){
277// difference in months
278var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),
279// b is in (anchor - 1 month, anchor + 1 month)
280f=a.clone().add(e,"months");
281//check for negative zero, return zero if negative zero
282// linear across the month
283// linear across the month
284return 0>b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)||0}function cc(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function dc(){var a=this.clone().utc();return 0<a.year()&&a.year()<=9999?y(Date.prototype.toISOString)?this.toDate().toISOString():W(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):W(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function ec(b){b||(b=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var c=W(this,b);return this.localeData().postformat(c)}function fc(a,b){return this.isValid()&&(r(a)&&a.isValid()||rb(a).isValid())?Mb({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function gc(a){return this.from(rb(),a)}function hc(a,b){return this.isValid()&&(r(a)&&a.isValid()||rb(a).isValid())?Mb({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function ic(a){return this.to(rb(),a)}
285// If passed a locale key, it will set the locale for this
286// instance.  Otherwise, it will return the locale configuration
287// variables for this instance.
288function jc(a){var b;return void 0===a?this._locale._abbr:(b=ab(a),null!=b&&(this._locale=b),this)}function kc(){return this._locale}function lc(a){
289// the following switch intentionally omits break keywords
290// to utilize falling through the cases.
291switch(a=J(a)){case"year":this.month(0);/* falls through */
292case"quarter":case"month":this.date(1);/* falls through */
293case"week":case"isoWeek":case"day":case"date":this.hours(0);/* falls through */
294case"hour":this.minutes(0);/* falls through */
295case"minute":this.seconds(0);/* falls through */
296case"second":this.milliseconds(0)}
297// weeks are a special case
298// quarters are also special
299return"week"===a&&this.weekday(0),"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this}function mc(a){
300// 'date' is an alias for 'day', so it should be considered as such.
301return a=J(a),void 0===a||"millisecond"===a?this:("date"===a&&(a="day"),this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms"))}function nc(){return this._d.valueOf()-6e4*(this._offset||0)}function oc(){return Math.floor(this.valueOf()/1e3)}function pc(){return new Date(this.valueOf())}function qc(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function rc(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function sc(){
302// new Date(NaN).toJSON() === null
303return this.isValid()?this.toISOString():null}function tc(){return m(this)}function uc(){return i({},l(this))}function vc(){return l(this).overflow}function wc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function xc(a,b){T(0,[a,a.length],0,b)}
304// MOMENTS
305function yc(a){return Cc.call(this,a,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function zc(a){return Cc.call(this,a,this.isoWeek(),this.isoWeekday(),1,4)}function Ac(){return wa(this.year(),1,4)}function Bc(){var a=this.localeData()._week;return wa(this.year(),a.dow,a.doy)}function Cc(a,b,c,d,e){var f;return null==a?va(this,d,e).year:(f=wa(a,d,e),b>f&&(b=f),Dc.call(this,a,b,c,d,e))}function Dc(a,b,c,d,e){var f=ua(a,b,c,d,e),g=sa(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}
306// MOMENTS
307function Ec(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}
308// HELPERS
309// MOMENTS
310function Fc(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function Gc(a,b){b[_e]=t(1e3*("0."+a))}
311// MOMENTS
312function Hc(){return this._isUTC?"UTC":""}function Ic(){return this._isUTC?"Coordinated Universal Time":""}function Jc(a){return rb(1e3*a)}function Kc(){return rb.apply(null,arguments).parseZone()}function Lc(a){return a}function Mc(a,b,c,d){var e=ab(),f=j().set(d,b);return e[c](f,a)}function Nc(a,b,c){if("number"==typeof a&&(b=a,a=void 0),a=a||"",null!=b)return Mc(a,b,c,"month");var d,e=[];for(d=0;12>d;d++)e[d]=Mc(a,d,c,"month");return e}
313// ()
314// (5)
315// (fmt, 5)
316// (fmt)
317// (true)
318// (true, 5)
319// (true, fmt, 5)
320// (true, fmt)
321function Oc(a,b,c,d){"boolean"==typeof a?("number"==typeof b&&(c=b,b=void 0),b=b||""):(b=a,c=b,a=!1,"number"==typeof b&&(c=b,b=void 0),b=b||"");var e=ab(),f=a?e._week.dow:0;if(null!=c)return Mc(b,(c+f)%7,d,"day");var g,h=[];for(g=0;7>g;g++)h[g]=Mc(b,(g+f)%7,d,"day");return h}function Pc(a,b){return Nc(a,b,"months")}function Qc(a,b){return Nc(a,b,"monthsShort")}function Rc(a,b,c){return Oc(a,b,c,"weekdays")}function Sc(a,b,c){return Oc(a,b,c,"weekdaysShort")}function Tc(a,b,c){return Oc(a,b,c,"weekdaysMin")}function Uc(){var a=this._data;return this._milliseconds=Sf(this._milliseconds),this._days=Sf(this._days),this._months=Sf(this._months),a.milliseconds=Sf(a.milliseconds),a.seconds=Sf(a.seconds),a.minutes=Sf(a.minutes),a.hours=Sf(a.hours),a.months=Sf(a.months),a.years=Sf(a.years),this}function Vc(a,b,c,d){var e=Mb(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}
322// supports only 2.0-style add(1, 's') or add(duration)
323function Wc(a,b){return Vc(this,a,b,1)}
324// supports only 2.0-style subtract(1, 's') or subtract(duration)
325function Xc(a,b){return Vc(this,a,b,-1)}function Yc(a){return 0>a?Math.floor(a):Math.ceil(a)}function Zc(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;
326// if we have a mix of positive and negative values, bubble down first
327// check: https://github.com/moment/moment/issues/2166
328// The following code bubbles up values, see the tests for
329// examples of what that means.
330// convert days to months
331// 12 months -> 1 year
332return f>=0&&g>=0&&h>=0||0>=f&&0>=g&&0>
332=h||(f+=864e5*Yc(_c(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=s(f/1e3),i.seconds=a%60,b=s(a/60),i.minutes=b%60,c=s(b/60),i.hours=c%24,g+=s(c/24),e=s($c(g)),h+=e,g-=Yc(_c(e)),d=s(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function $c(a){
333// 400 years have 146097 days (taking into account leap year rules)
334// 400 years have 12 months === 4800
335return 4800*a/146097}function _c(a){
336// the reverse of daysToMonths
337return 146097*a/4800}function ad(a){var b,c,d=this._milliseconds;if(a=J(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+$c(b),"month"===a?c:c/12;switch(b=this._days+Math.round(_c(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;
338// Math.floor prevents floating point math errors here
339case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}}
340// TODO: Use this.as('ms')?
341function bd(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*t(this._months/12)}function cd(a){return function(){return this.as(a)}}function dd(a){return a=J(a),this[a+"s"]()}function ed(a){return function(){return this._data[a]}}function fd(){return s(this.days()/7)}
342// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
343function gd(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function hd(a,b,c){var d=Mb(a).abs(),e=gg(d.as("s")),f=gg(d.as("m")),g=gg(d.as("h")),h=gg(d.as("d")),i=gg(d.as("M")),j=gg(d.as("y")),k=e<hg.s&&["s",e]||1>=f&&["m"]||f<hg.m&&["mm",f]||1>=g&&["h"]||g<hg.h&&["hh",g]||1>=h&&["d"]||h<hg.d&&["dd",h]||1>=i&&["M"]||i<hg.M&&["MM",i]||1>=j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,gd.apply(null,k)}
344// This function allows you to set the rounding function for relative time strings
345function id(a){return void 0===a?gg:"function"==typeof a?(gg=a,!0):!1}
346// This function allows you to set a threshold for relative time strings
347function jd(a,b){return void 0===hg[a]?!1:void 0===b?hg[a]:(hg[a]=b,!0)}function kd(a){var b=this.localeData(),c=hd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function ld(){
348// for ISO strings we do not use the normal bubbling rules:
349//  * milliseconds bubble up until they become hours
350//  * days do not bubble at all
351//  * months bubble up until they become years
352// This is because there is no context-free conversion between hours and days
353// (think of clock changes)
354// and also not between days and months (28-31 days per month)
355var a,b,c,d=ig(this._milliseconds)/1e3,e=ig(this._days),f=ig(this._months);a=s(d/60),b=s(a/60),d%=60,a%=60,c=s(f/12),f%=12;
356// inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
357var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(0>m?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"}function md(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function nd(a,b,c){var d={mm:b?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:b?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===c?b?"хвіліна":"хвіліну":"h"===c?b?"гадзіна":"гадзіну":a+" "+md(d[c],+a)}function od(a,b,c){var d={mm:"munutenn",MM:"miz",dd:"devezh"};return a+" "+rd(d[c],a)}function pd(a){switch(qd(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}function qd(a){return a>9?qd(a%10):a}function rd(a,b){return 2===b?sd(a):a}function sd(a){var b={m:"v",b:"v",d:"z"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)}function td(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function ud(a){return a>1&&5>a&&1!==~~(a/10)}function vd(a,b,c,d){var e=a+" ";switch(c){case"s":// a few seconds / in a few seconds / a few seconds ago
358return b||d?"pár sekund":"pár sekundami";case"m":// a minute / in a minute / a minute ago
359return b?"minuta":d?"minutu":"minutou";case"mm":// 9 minutes / in 9 minutes / 9 minutes ago
360// 9 minutes / in 9 minutes / 9 minutes ago
361return b||d?e+(ud(a)?"minuty":"minut"):e+"minutami";break;case"h":// an hour / in an hour / an hour ago
362return b?"hodina":d?"hodinu":"hodinou";case"hh":// 9 hours / in 9 hours / 9 hours ago
363// 9 hours / in 9 hours / 9 hours ago
364return b||d?e+(ud(a)?"hodiny":"hodin"):e+"hodinami";break;case"d":// a day / in a day / a day ago
365return b||d?"den":"dnem";case"dd":// 9 days / in 9 days / 9 days ago
366// 9 days / in 9 days / 9 days ago
367return b||d?e+(ud(a)?"dny":"dní"):e+"dny";break;case"M":// a month / in a month / a month ago
368return b||d?"měsíc":"měsícem";case"MM":// 9 months / in 9 months / 9 months ago
369// 9 months / in 9 months / 9 months ago
370return b||d?e+(ud(a)?"měsíce":"měsíců"):e+"měsíci";break;case"y":// a year / in a year / a year ago
371return b||d?"rok":"rokem";case"yy":// 9 years / in 9 years / 9 years ago
372// 9 years / in 9 years / 9 years ago
373return b||d?e+(ud(a)?"roky":"let"):e+"lety"}}function wd(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]}function xd(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]}function yd(a,b,c,d){var e={s:["mõne sekundi","mõni sekund","paar sekundit"],m:["ühe minuti","üks minut"],mm:[a+" minuti",a+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[a+" tunni",a+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[a+" kuu",a+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[a+" aasta",a+" aastat"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}function zd(a,b,c,d){var e="";switch(c){case"s":return d?"muutaman sekunnin":"muutama sekunti";case"m":return d?"minuutin":"minuutti";case"mm":e=d?"minuutin":"minuuttia";break;case"h":return d?"tunnin":"tunti";case"hh":e=d?"tunnin":"tuntia";break;case"d":return d?"päivän":"päivä";case"dd":e=d?"päivän":"päivää";break;case"M":return d?"kuukauden":"kuukausi";case"MM":e=d?"kuukauden":"kuukautta";break;case"y":return d?"vuoden":"vuosi";case"yy":e=d?"vuoden":"vuotta"}return e=Ad(a,d)+" "+e}function Ad(a,b){return 10>a?b?Jg[a]:Ig[a]:a}function Bd(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function Cd(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function Dd(a){return(a?"":"[múlt] ")+"["+Tg[this.day()]+"] LT[-kor]"}function Ed(a){return a%100===11?!0:a%10!==1}function Fd(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nokkrar sekúndur":"nokkrum sekúndum";
373case"m":return b?"mínúta":"mínútu";case"mm":return Ed(a)?e+(b||d?"mínútur":"mínútum"):b?e+"mínúta":e+"mínútu";case"hh":return Ed(a)?e+(b||d?"klukkustundir":"klukkustundum"):e+"klukkustund";case"d":return b?"dagur":d?"dag":"degi";case"dd":return Ed(a)?b?e+"dagar":e+(d?"daga":"dögum"):b?e+"dagur":e+(d?"dag":"degi");case"M":return b?"mánuður":d?"mánuð":"mánuði";case"MM":return Ed(a)?b?e+"mánuðir":e+(d?"mánuði":"mánuðum"):b?e+"mánuður":e+(d?"mánuð":"mánuði");case"y":return b||d?"ár":"ári";case"yy":return Ed(a)?e+(b||d?"ár":"árum"):e+(b||d?"ár":"ári")}}function Gd(a,b,c,d){var e={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return b?e[c][0]:e[c][1]}function Hd(a){var b=a.substr(0,a.indexOf(" "));return Jd(b)?"a "+a:"an "+a}function Id(a){var b=a.substr(0,a.indexOf(" "));return Jd(b)?"viru "+a:"virun "+a}/**
374     * Returns true if the word before the given number loses the '-n' ending.
375     * e.g. 'an 10 Deeg' but 'a 5 Deeg'
376     *
377     * @param number {integer}
378     * @returns {boolean}
379     */
380function Jd(a){if(a=parseInt(a,10),isNaN(a))return!1;if(0>a)
381// Negative Number --> always true
382return!0;if(10>a)
383// Only 1 digit
384return a>=4&&7>=a;if(100>a){
385// 2 digits
386var b=a%10,c=a/10;return Jd(0===b?c:b)}if(1e4>a){
387// 3 or 4 digits --> recursively check first digit
388for(;a>=10;)a/=10;return Jd(a)}
389// Anything larger than 4 digits: recursively check first n-3 digits
390return a/=1e3,Jd(a)}function Kd(a,b,c,d){return b?"kelios sekundės":d?"kelių sekundžių":"kelias sekundes"}function Ld(a,b,c,d){return b?Nd(c)[0]:d?Nd(c)[1]:Nd(c)[2]}function Md(a){return a%10===0||a>10&&20>a}function Nd(a){return Wg[a].split("_")}function Od(a,b,c,d){var e=a+" ";return 1===a?e+Ld(a,b,c[0],d):b?e+(Md(a)?Nd(c)[1]:Nd(c)[0]):d?e+Nd(c)[1]:e+(Md(a)?Nd(c)[1]:Nd(c)[2])}/**
391     * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
392     */
393function Pd(a,b,c){return c?b%10===1&&b%100!==11?a[2]:a[3]:b%10===1&&b%100!==11?a[0]:a[1]}function Qd(a,b,c){return a+" "+Pd(Xg[c],a,b)}function Rd(a,b,c){return Pd(Xg[c],a,b)}function Sd(a,b){return b?"dažas sekundes":"dažām sekundēm"}function Td(a,b,c,d){var e="";if(b)switch(c){case"s":e="काही सेकंद";break;case"m":e="एक मिनिट";break;case"mm":e="%d मिनिटे";break;case"h":e="एक तास";break;case"hh":e="%d तास";break;case"d":e="एक दिवस";break;case"dd":e="%d दिवस";break;case"M":e="एक महिना";break;case"MM":e="%d महिने";break;case"y":e="एक वर्ष";break;case"yy":e="%d वर्षे"}else switch(c){case"s":e="काही सेकंदां";break;case"m":e="एका मिनिटा";break;case"mm":e="%d मिनिटां";break;case"h":e="एका तासा";break;case"hh":e="%d तासां";break;case"d":e="एका दिवसा";break;case"dd":e="%d दिवसां";break;case"M":e="एका महिन्या";break;case"MM":e="%d महिन्यां";break;case"y":e="एका वर्षा";break;case"yy":e="%d वर्षां"}return e.replace(/%d/i,a)}function Ud(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function Vd(a,b,c){var d=a+" ";switch(c){case"m":return b?"minuta":"minutę";case"mm":return d+(Ud(a)?"minuty":"minut");case"h":return b?"godzina":"godzinę";case"hh":return d+(Ud(a)?"godziny":"godzin");case"MM":return d+(Ud(a)?"miesiące":"miesięcy");case"yy":return d+(Ud(a)?"lata":"lat")}}function Wd(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]}function Xd(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function Yd(a,b,c){var d={mm:b?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};
393return"m"===c?b?"минута":"минуту":a+" "+Xd(d[c],+a)}function Zd(a){return a>1&&5>a}function $d(a,b,c,d){var e=a+" ";switch(c){case"s":// a few seconds / in a few seconds / a few seconds ago
394return b||d?"pár sekúnd":"pár sekundami";case"m":// a minute / in a minute / a minute ago
395return b?"minúta":d?"minútu":"minútou";case"mm":// 9 minutes / in 9 minutes / 9 minutes ago
396// 9 minutes / in 9 minutes / 9 minutes ago
397return b||d?e+(Zd(a)?"minúty":"minút"):e+"minútami";break;case"h":// an hour / in an hour / an hour ago
398return b?"hodina":d?"hodinu":"hodinou";case"hh":// 9 hours / in 9 hours / 9 hours ago
399// 9 hours / in 9 hours / 9 hours ago
400return b||d?e+(Zd(a)?"hodiny":"hodín"):e+"hodinami";break;case"d":// a day / in a day / a day ago
401return b||d?"deň":"dňom";case"dd":// 9 days / in 9 days / 9 days ago
402// 9 days / in 9 days / 9 days ago
403return b||d?e+(Zd(a)?"dni":"dní"):e+"dňami";break;case"M":// a month / in a month / a month ago
404return b||d?"mesiac":"mesiacom";case"MM":// 9 months / in 9 months / 9 months ago
405// 9 months / in 9 months / 9 months ago
406return b||d?e+(Zd(a)?"mesiace":"mesiacov"):e+"mesiacmi";break;case"y":// a year / in a year / a year ago
407return b||d?"rok":"rokom";case"yy":// 9 years / in 9 years / 9 years ago
408// 9 years / in 9 years / 9 years ago
409return b||d?e+(Zd(a)?"roky":"rokov"):e+"rokmi"}}function _d(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nekaj sekund":"nekaj sekundami";case"m":return b?"ena minuta":"eno minuto";case"mm":return e+=1===a?b?"minuta":"minuto":2===a?b||d?"minuti":"minutama":5>a?b||d?"minute":"minutami":b||d?"minut":"minutami";case"h":return b?"ena ura":"eno uro";case"hh":return e+=1===a?b?"ura":"uro":2===a?b||d?"uri":"urama":5>a?b||d?"ure":"urami":b||d?"ur":"urami";case"d":return b||d?"en dan":"enim dnem";case"dd":return e+=1===a?b||d?"dan":"dnem":2===a?b||d?"dni":"dnevoma":b||d?"dni":"dnevi";case"M":return b||d?"en mesec":"enim mesecem";case"MM":return e+=1===a?b||d?"mesec":"mesecem":2===a?b||d?"meseca":"mesecema":5>a?b||d?"mesece":"meseci":b||d?"mesecev":"meseci";case"y":return b||d?"eno leto":"enim letom";case"yy":return e+=1===a?b||d?"leto":"letom":2===a?b||d?"leti":"letoma":5>a?b||d?"leta":"leti":b||d?"let":"leti"}}function ae(a){var b=a;return b=-1!==a.indexOf("jaj")?b.slice(0,-3)+"leS":-1!==a.indexOf("jar")?b.slice(0,-3)+"waQ":-1!==a.indexOf("DIS")?b.slice(0,-3)+"nem":b+" pIq"}function be(a){var b=a;return b=-1!==a.indexOf("jaj")?b.slice(0,-3)+"Hu’":-1!==a.indexOf("jar")?b.slice(0,-3)+"wen":-1!==a.indexOf("DIS")?b.slice(0,-3)+"ben":b+" ret"}function ce(a,b,c,d){var e=de(a);switch(c){case"mm":return e+" tup";case"hh":return e+" rep";case"dd":return e+" jaj";case"MM":return e+" jar";case"yy":return e+" DIS"}}function de(a){var b=Math.floor(a%1e3/100),c=Math.floor(a%100/10),d=a%10,e="";return b>0&&(e+=qh[b]+"vatlh"),c>0&&(e+=(""!==e?" ":"")+qh[c]+"maH"),d>0&&(e+=(""!==e?" ":"")+qh[d]),""===e?"pagh":e}function ee(a,b,c,d){var e={s:["viensas secunds","'iensas secunds"],m:["'n míut","'iens míut"],mm:[a+" míuts",""+a+" míuts"],h:["'n þora","'iensa þora"],hh:[a+" þoras",""+a+" þoras"],d:["'n ziua","'iensa ziua"],dd:[a+" ziuas",""+a+" ziuas"],M:["'n mes","'iens mes"],MM:[a+" mesen",""+a+" mesen"],y:["'n ar","'iens ar"],yy:[a+" ars",""+a+" ars"]};return d?e[c][0]:b?e[c][0]:e[c][1]}function fe(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function ge(a,b,c){var d={mm:b?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:b?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===c?b?"хвилина":"хвилину":"h"===c?b?"година":"годину":a+" "+fe(d[c],+a)}function he(a,b){var c={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function ie(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}var je,ke;ke=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;c>d;d++)if(d in b&&a.call(this,b[d],d,b))return!0;return!1};
410// Plugins that add properties should also add the key here (null value),
411// so we can properly clone ourselves.
412var le=a.momentProperties=[],me=!1,ne={};a.suppressDeprecationWarnings=!1,a.deprecationHandler=null;var oe;oe=Object.keys?Object.keys:function(a){var b,c=[];for(b in a)h(a,b)&&c.push(b);return c};var pe,qe={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},re={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},se="Invalid date",te="%d",ue=/\d{1,2}/,ve={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},we={},xe={},ye=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}
vendor: 11,819 bytes, lines 412-562
412|x|X|zz?|ZZ?|.)/g,ze=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ae={},Be={},Ce=/\d/,De=/\d\d/,Ee=/\d{3}/,Fe=/\d{4}/,Ge=/[+-]?\d{6}/,He=/\d\d?/,Ie=/\d\d\d\d?/,Je=/\d\d\d\d\d\d?/,Ke=/\d{1,3}/,Le=/\d{1,4}/,Me=/[+-]?\d{1,6}/,Ne=/\d+/,Oe=/[+-]?\d+/,Pe=/Z|[+-]\d\d:?\d\d/gi,Qe=/Z|[+-]\d\d(?::?\d\d)?/gi,Re=/[+-]?\d+(\.\d{1,3})?/,Se=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Te={},Ue={},Ve=0,We=1,Xe=2,Ye=3,Ze=4,$e=5,_e=6,af=7,bf=8;pe=Array.prototype.indexOf?Array.prototype.indexOf:function(a){
413// I know
414var b;for(b=0;b<this.length;++b)if(this[b]===a)return b;return-1},T("M",["MM",2],"Mo",function(){return this.month()+1}),T("MMM",0,0,function(a){return this.localeData().monthsShort(this,a)}),T("MMMM",0,0,function(a){return this.localeData().months(this,a)}),I("month","M"),L("month",8),Y("M",He),Y("MM",He,De),Y("MMM",function(a,b){return b.monthsShortRegex(a)}),Y("MMMM",function(a,b){return b.monthsRegex(a)}),aa(["M","MM"],function(a,b){b[We]=t(a)-1}),aa(["MMM","MMMM"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[We]=e:l(c).invalidMonth=a});
415// LOCALES
416var cf=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,df="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ef="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),ff=Se,gf=Se;
417// FORMATTING
418T("Y",0,0,function(){var a=this.year();return 9999>=a?""+a:"+"+a}),T(0,["YY",2],0,function(){return this.year()%100}),T(0,["YYYY",4],0,"year"),T(0,["YYYYY",5],0,"year"),T(0,["YYYYYY",6,!0],0,"year"),
419// ALIASES
420I("year","y"),
421// PRIORITIES
422L("year",1),
423// PARSING
424Y("Y",Oe),Y("YY",He,De),Y("YYYY",Le,Fe),Y("YYYYY",Me,Ge),Y("YYYYYY",Me,Ge),aa(["YYYYY","YYYYYY"],Ve),aa("YYYY",function(b,c){c[Ve]=2===b.length?a.parseTwoDigitYear(b):t(b)}),aa("YY",function(b,c){c[Ve]=a.parseTwoDigitYear(b)}),aa("Y",function(a,b){b[Ve]=parseInt(a,10)}),
425// HOOKS
426a.parseTwoDigitYear=function(a){return t(a)+(t(a)>68?1900:2e3)};
427// MOMENTS
428var hf=N("FullYear",!0);
429// FORMATTING
430T("w",["ww",2],"wo","week"),T("W",["WW",2],"Wo","isoWeek"),
431// ALIASES
432I("week","w"),I("isoWeek","W"),
433// PRIORITIES
434L("week",5),L("isoWeek",5),
435// PARSING
436Y("w",He),Y("ww",He,De),Y("W",He),Y("WW",He,De),ba(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=t(a)});var jf={dow:0,// Sunday is the first day of the week.
437doy:6};
438// FORMATTING
439T("d",0,"do","day"),T("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),T("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),T("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),T("e",0,0,"weekday"),T("E",0,0,"isoWeekday"),
440// ALIASES
441I("day","d"),I("weekday","e"),I("isoWeekday","E"),
442// PRIORITY
443L("day",11),L("weekday",11),L("isoWeekday",11),
444// PARSING
445Y("d",He),Y("e",He),Y("E",He),Y("dd",function(a,b){return b.weekdaysMinRegex(a)}),Y("ddd",function(a,b){return b.weekdaysShortRegex(a)}),Y("dddd",function(a,b){return b.weekdaysRegex(a)}),ba(["dd","ddd","dddd"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);
446// if we didn't get a weekday name, mark the date as invalid
447null!=e?b.d=e:l(c).invalidWeekday=a}),ba(["d","e","E"],function(a,b,c,d){b[d]=t(a)});
448// LOCALES
449var kf="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),lf="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),mf="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),nf=Se,of=Se,pf=Se;T("H",["HH",2],0,"hour"),T("h",["hh",2],0,Qa),T("k",["kk",2],0,Ra),T("hmm",0,0,function(){return""+Qa.apply(this)+S(this.minutes(),2)}),T("hmmss",0,0,function(){return""+Qa.apply(this)+S(this.minutes(),2)+S(this.seconds(),2)}),T("Hmm",0,0,function(){return""+this.hours()+S(this.minutes(),2)}),T("Hmmss",0,0,function(){return""+this.hours()+S(this.minutes(),2)+S(this.seconds(),2)}),Sa("a",!0),Sa("A",!1),
450// ALIASES
451I("hour","h"),
452// PRIORITY
453L("hour",13),Y("a",Ta),Y("A",Ta),Y("H",He),Y("h",He),Y("HH",He,De),Y("hh",He,De),Y("hmm",Ie),Y("hmmss",Je),Y("Hmm",Ie),Y("Hmmss",Je),aa(["H","HH"],Ye),aa(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),aa(["h","hh"],function(a,b,c){b[Ye]=t(a),l(c).bigHour=!0}),aa("hmm",function(a,b,c){var d=a.length-2;b[Ye]=t(a.substr(0,d)),b[Ze]=t(a.substr(d)),l(c).bigHour=!0}),aa("hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[Ye]=t(a.substr(0,d)),b[Ze]=t(a.substr(d,2)),b[$e]=t(a.substr(e)),l(c).bigHour=!0}),aa("Hmm",function(a,b,c){var d=a.length-2;b[Ye]=t(a.substr(0,d)),b[Ze]=t(a.substr(d))}),aa("Hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[Ye]=t(a.substr(0,d)),b[Ze]=t(a.substr(d,2)),b[$e]=t(a.substr(e))});var qf,rf=/[ap]\.?m?\.?/i,sf=N("Hours",!0),tf={calendar:qe,longDateFormat:re,invalidDate:se,ordinal:te,ordinalParse:ue,relativeTime:ve,months:df,monthsShort:ef,week:jf,weekdays:kf,weekdaysMin:mf,weekdaysShort:lf,meridiemParse:rf},uf={},vf=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,wf=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,xf=/Z|[+-]\d\d(?::?\d\d)?/,yf=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],
454// YYYYMM is NOT allowed by the standard
455["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],zf=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Af=/^\/?Date\((\-?\d+)/i;a.createFromInputFallback=w("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),
456// constant that refers to the ISO standard
457a.ISO_8601=function(){};var Bf=w("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var a=rb.apply(null,arguments);return this.isValid()&&a.isValid()?this>a?this:a:n()}),Cf=w("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var a=rb.apply(null,arguments);return this.isValid()&&a.isValid()?a>this?this:a:n()}),Df=function(){return Date.now?Date.now():+new Date};xb("Z",":"),xb("ZZ",""),
458// PARSING
459Y("Z",Qe),Y("ZZ",Qe),aa(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=yb(Qe,a)});
460// HELPERS
461// timezone chunker
462// '+10:00' > ['10',  '00']
463// '-1530'  > ['-15', '30']
464var Ef=/([\+\-]|\d\d)/gi;
465// HOOKS
466// This function will be called whenever a moment is mutated.
467// It is intended to keep the offset in sync with the timezone.
468a.updateOffset=function(){};
469// ASP.NET json date format regex
470var Ff=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,Gf=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Mb.fn=vb.prototype;var Hf=Rb(1,"add"),If=Rb(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Jf=w("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});
471// FORMATTING
472T(0,["gg",2],0,function(){return this.weekYear()%100}),T(0,["GG",2],0,function(){return this.isoWeekYear()%100}),xc("gggg","weekYear"),xc("ggggg","weekYear"),xc("GGGG","isoWeekYear"),xc("GGGGG","isoWeekYear"),
473// ALIASES
474I("weekYear","gg"),I("isoWeekYear","GG"),
475// PRIORITY
476L("weekYear",1),L("isoWeekYear",1),
477// PARSING
478Y("G",Oe),Y("g",Oe),Y("GG",He,De),Y("gg",He,De),Y("GGGG",Le,Fe),Y("gggg",Le,Fe),Y("GGGGG",Me,Ge),Y("ggggg",Me,Ge),ba(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=t(a)}),ba(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),
479// FORMATTING
480T("Q",0,"Qo","quarter"),
481// ALIASES
482I("quarter","Q"),
483// PRIORITY
484L("quarter",7),
485// PARSING
486Y("Q",Ce),aa("Q",function(a,b){b[We]=3*(t(a)-1)}),
487// FORMATTING
488T("D",["DD",2],"Do","date"),
489// ALIASES
490I("date","D"),
491// PRIOROITY
492L("date",9),
493// PARSING
494Y("D",He),Y("DD",He,De),Y("Do",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),aa(["D","DD"],Xe),aa("Do",function(a,b){b[Xe]=t(a.match(He)[0],10)});
495// MOMENTS
496var Kf=N("Date",!0);
497// FORMATTING
498T("DDD",["DDDD",3],"DDDo","dayOfYear"),
499// ALIASES
500I("dayOfYear","DDD"),
501// PRIORITY
502L("dayOfYear",4),
503// PARSING
504Y("DDD",Ke),Y("DDDD",Ee),aa(["DDD","DDDD"],function(a,b,c){c._dayOfYear=t(a)}),
505// FORMATTING
506T("m",["mm",2],0,"minute"),
507// ALIASES
508I("minute","m"),
509// PRIORITY
510L("minute",14),
511// PARSING
512Y("m",He),Y("mm",He,De),aa(["m","mm"],Ze);
513// MOMENTS
514var Lf=N("Minutes",!1);
515// FORMATTING
516T("s",["ss",2],0,"second"),
517// ALIASES
518I("second","s"),
519// PRIORITY
520L("second",15),
521// PARSING
522Y("s",He),Y("ss",He,De),aa(["s","ss"],$e);
523// MOMENTS
524var Mf=N("Seconds",!1);
525// FORMATTING
526T("S",0,0,function(){return~~(this.millisecond()/100)}),T(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),T(0,["SSS",3],0,"millisecond"),T(0,["SSSS",4],0,function(){return 10*this.millisecond()}),T(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),T(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),T(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),T(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),T(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),
527// ALIASES
528I("millisecond","ms"),
529// PRIORITY
530L("millisecond",16),
531// PARSING
532Y("S",Ke,Ce),Y("SS",Ke,De),Y("SSS",Ke,Ee);var Nf;for(Nf="SSSS";Nf.length<=9;Nf+="S")Y(Nf,Ne);for(Nf="S";Nf.length<=9;Nf+="S")aa(Nf,Gc);
533// MOMENTS
534var Of=N("Milliseconds",!1);
535// FORMATTING
536T("z",0,0,"zoneAbbr"),T("zz",0,0,"zoneName");var Pf=q.prototype;Pf.add=Hf,Pf.calendar=Ub,Pf.clone=Vb,Pf.diff=ac,Pf.endOf=mc,Pf.format=ec,Pf.from=fc,Pf.fromNow=gc,Pf.to=hc,Pf.toNow=ic,Pf.get=Q,Pf.invalidAt=vc,Pf.isAfter=Wb,Pf.isBefore=Xb,Pf.isBetween=Yb,Pf.isSame=Zb,Pf.isSameOrAfter=$b,Pf.isSameOrBefore=_b,Pf.isValid=tc,Pf.lang=Jf,Pf.locale=jc,Pf.localeData=kc,Pf.max=Cf,Pf.min=Bf,Pf.parsingFlags=uc,Pf.set=R,Pf.startOf=lc,Pf.subtract=If,Pf.toArray=qc,Pf.toObject=rc,Pf.toDate=pc,Pf.toISOString=dc,Pf.toJSON=sc,Pf.toString=cc,Pf.unix=oc,Pf.valueOf=nc,Pf.creationData=wc,
537// Year
538Pf.year=hf,Pf.isLeapYear=qa,
539// Week Year
540Pf.weekYear=yc,Pf.isoWeekYear=zc,
541// Quarter
542Pf.quarter=Pf.quarters=Ec,
543// Month
544Pf.month=ja,Pf.daysInMonth=ka,
545// Week
546Pf.week=Pf.weeks=Aa,Pf.isoWeek=Pf.isoWeeks=Ba,Pf.weeksInYear=Bc,Pf.isoWeeksInYear=Ac,
547// Day
548Pf.date=Kf,Pf.day=Pf.days=Ja,Pf.weekday=Ka,Pf.isoWeekday=La,Pf.dayOfYear=Fc,
549// Hour
550Pf.hour=Pf.hours=sf,
551// Minute
552Pf.minute=Pf.minutes=Lf,
553// Second
554Pf.second=Pf.seconds=Mf,
555// Millisecond
556Pf.millisecond=Pf.milliseconds=Of,
557// Offset
558Pf.utcOffset=Bb,Pf.utc=Db,Pf.local=Eb,Pf.parseZone=Fb,Pf.hasAlignedHourOffset=Gb,Pf.isDST=Hb,Pf.isLocal=Jb,Pf.isUtcOffset=Kb,Pf.isUtc=Lb,Pf.isUTC=Lb,
559// Timezone
560Pf.zoneAbbr=Hc,Pf.zoneName=Ic,
561// Deprecations
562Pf.dates=w("dates accessor is deprecated. Use date instead.",Kf),Pf.months=w("months accessor is deprecated. Use month instead",ja),Pf.years=w("years accessor is deprecated. Use year instead",hf),Pf.zone=w("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Cb),Pf.isDSTShifted=w("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ib);var Qf=Pf,Rf=B.prototype;
vendor: 10,195 bytes, lines 562-587
562Rf.calendar=C,Rf.longDateFormat=D,Rf.invalidDate=E,Rf.ordinal=F,Rf.preparse=Lc,Rf.postformat=Lc,Rf.relativeTime=G,Rf.pastFuture=H,Rf.set=z,
563// Month
564Rf.months=ea,Rf.monthsShort=fa,Rf.monthsParse=ha,Rf.monthsRegex=ma,Rf.monthsShortRegex=la,
565// Week
566Rf.week=xa,Rf.firstDayOfYear=za,Rf.firstDayOfWeek=ya,
567// Day of Week
568Rf.weekdays=Ea,Rf.weekdaysMin=Ga,Rf.weekdaysShort=Fa,Rf.weekdaysParse=Ia,Rf.weekdaysRegex=Ma,Rf.weekdaysShortRegex=Na,Rf.weekdaysMinRegex=Oa,
569// Hours
570Rf.isPM=Ua,Rf.meridiem=Va,Za("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===t(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),
571// Side effect imports
572a.lang=w("moment.lang is deprecated. Use moment.locale instead.",Za),a.langData=w("moment.langData is deprecated. Use moment.localeData instead.",ab);var Sf=Math.abs,Tf=cd("ms"),Uf=cd("s"),Vf=cd("m"),Wf=cd("h"),Xf=cd("d"),Yf=cd("w"),Zf=cd("M"),$f=cd("y"),_f=ed("milliseconds"),ag=ed("seconds"),bg=ed("minutes"),cg=ed("hours"),dg=ed("days"),eg=ed("months"),fg=ed("years"),gg=Math.round,hg={s:45,// seconds to minute
573m:45,// minutes to hour
574h:22,// hours to day
575d:26,// days to month
576M:11},ig=Math.abs,jg=vb.prototype;jg.abs=Uc,jg.add=Wc,jg.subtract=Xc,jg.as=ad,jg.asMilliseconds=Tf,jg.asSeconds=Uf,jg.asMinutes=Vf,jg.asHours=Wf,jg.asDays=Xf,jg.asWeeks=Yf,jg.asMonths=Zf,jg.asYears=$f,jg.valueOf=bd,jg._bubble=Zc,jg.get=dd,jg.milliseconds=_f,jg.seconds=ag,jg.minutes=bg,jg.hours=cg,jg.days=dg,jg.weeks=fd,jg.months=eg,jg.years=fg,jg.humanize=kd,jg.toISOString=ld,jg.toString=ld,jg.toJSON=ld,jg.locale=jc,jg.localeData=kc,
577// Deprecations
578jg.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ld),jg.lang=Jf,
579// Side effect imports
580// FORMATTING
581T("X",0,0,"unix"),T("x",0,0,"valueOf"),
582// PARSING
583Y("x",Oe),Y("X",Re),aa("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),aa("x",function(a,b,c){c._d=new Date(t(a))}),a.version="2.14.1",b(rb),a.fn=Qf,a.min=tb,a.max=ub,a.now=Df,a.utc=j,a.unix=Jc,a.months=Pc,a.isDate=f,a.locale=Za,a.invalid=n,a.duration=Mb,a.isMoment=r,a.weekdays=Rc,a.parseZone=Kc,a.localeData=ab,a.isDuration=wb,a.monthsShort=Qc,a.weekdaysMin=Tc,a.defineLocale=$a,a.updateLocale=_a,a.locales=bb,a.weekdaysShort=Sc,a.normalizeUnits=J,a.relativeTimeRounding=id,a.relativeTimeThreshold=jd,a.calendarFormat=Tb,a.prototype=Qf;var kg=a,lg=(kg.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(a){return/^nm$/i.test(a)},meridiem:function(a,b,c){return 12>a?c?"vm":"VM":c?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,// Maandag is die eerste dag van die week.
584doy:4}}),kg.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,// Saturday is the first day of the week.
585doy:12}}),{1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"}),mg={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},ng=(kg.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return mg[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return lg[a]}).replace(/,/g,"،")},week:{dow:6,// Saturday is the first day of the week.
586doy:12}}),kg.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,// Monday is the first day of the week.
587doy:4}}),{1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"}),og={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},pg=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},qg={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},rg=function(a){return function(b,c,d,e){var f=pg(b),g=qg[a][pg(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},sg=["كانون الثاني يناير","شباط فبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوفمبر","كانون الأول ديسمبر"],tg=(kg.defineLocale("ar",{months:sg,monthsShort:sg,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:rg("s"),m:rg("m"),mm:rg("m"),h:rg("h"),hh:rg("h"),d:rg("d"),dd:rg("d"),M:rg("M"),MM:rg("M"),y:rg("y"),yy:rg("y")}
587,preparse:function(a){return a.replace(/\u200f/g,"").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return og[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return ng[a]}).replace(/,/g,"،")},week:{dow:6,// Saturday is the first day of the week.
588doy:12}}),{1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"}),ug=(kg.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(a){return/^(gündüz|axşam)$/.test(a)},meridiem:function(a,b,c){return 4>a?"gecə":12>a?"səhər":17>a?"gündüz":"axşam"},ordinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(a){if(0===a)// special case for zero
589return a+"-ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(tg[b]||tg[c]||tg[d])},week:{dow:1,// Monday is the first day of the week.
590doy:7}}),kg.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:nd,mm:nd,h:nd,hh:nd,d:"дзень",dd:nd,M:"месяц",MM:nd,y:"год",yy:nd},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(a){return/^(дня|вечара)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночы":12>a?"раніцы":17>a?"дня":"вечара"},ordinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+"-ы":a+"-і";case"D":return a+"-га";default:return a}},week:{dow:1,// Monday is the first day of the week.
591doy:7}}),kg.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%
591d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,// Monday is the first day of the week.
592doy:7}}),{1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"}),vg={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"},wg=(kg.defineLocale("bn",{months:"জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্র_শনি".split("_"),weekdaysMin:"রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return vg[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return ug[a]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(a,b){return 12===a&&(a=0),"রাত"===b&&a>=4||"দুপুর"===b&&5>a||"বিকাল"===b?a+12:a},meridiem:function(a,b,c){return 4>a?"রাত":10>a?"সকাল":17>a?"দুপুর":20>a?"বিকাল":"রাত"},week:{dow:0,// Sunday is the first day of the week.
593doy:6}}),{1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"}),xg={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"},yg=(kg.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%
vendor: 4,226 bytes, lines 593-596
593d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return xg[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return wg[a]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(a,b){return 12===a&&(a=0),"མཚན་མོ"===b&&a>=4||"ཉིན་གུང"===b&&5>a||"དགོང་དག"===b?a+12:a},meridiem:function(a,b,c){return 4>a?"མཚན་མོ":10>a?"ཞོགས་ཀས":17>a?"ཉིན་གུང":20>a?"དགོང་དག":"མཚན་མོ"},week:{dow:0,// Sunday is the first day of the week.
594doy:6}}),kg.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:od,h:"un eur",hh:"%d eur",d:"un devezh",dd:od,M:"ur miz",MM:od,y:"ur bloaz",yy:pd},ordinalParse:/\d{1,2}(añ|vet)/,ordinal:function(a){var b=1===a?"añ":"vet";return a+b},week:{dow:1,// Monday is the first day of the week.
595doy:4}}),kg.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:td,mm:td,h:td,hh:td,d:"dan",dd:td,M:"mjesec",MM:td,y:"godinu",yy:td},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
596doy:7}}),kg.defineLocale("ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%
596d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?"r":2===a?"n":3===a?"r":4===a?"t":"è";return"w"!==b&&"W"!==b||(c="a"),a+c},week:{dow:1,// Monday is the first day of the week.
597doy:4}}),"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_")),zg="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),Ag=(kg.defineLocale("cs",{months:yg,monthsShort:zg,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)
598// use custom parser to solve problem with July (červenec)
599d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(yg,zg),shortMonthsParse:function(a){var b,c=[];for(b=0;12>b;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(zg),longMonthsParse:function(a){var b,c=[];for(b=0;12>b;b++)c[b]=new RegExp("^"+a[b]+"$","i");return c}(yg),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:vd,m:vd,mm:vd,h:vd,hh:vd,d:vd,dd:vd,M:vd,MM:vd,y:vd,yy:vd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
600doy:4}}),kg.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?"рен":/ҫул$/i.exec(a)?"тан":"ран";return a+b},past:"%s каялла",s:"пӗр-ик ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},ordinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,// Monday is the first day of the week.
601doy:7}}),kg.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,
602// time formats are the same as en-gb
603longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},ordinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
604// traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
605ordinal:function(a){var b=a,c="",d=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed",// 1af to 10fed
606"eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return b>20?c=40===b||50===b||60===b||80===b||100===b?"fed":"ain":b>0&&(c=d[b]),a+c},week:{dow:1,// Monday is the first day of the week.
607doy:4}}),kg.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY HH:mm"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
608doy:4}}),kg.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:wd,mm:"%d Minuten",h:wd,hh:"%d Stunden",d:wd,dd:wd,M:wd,MM:wd,y:wd,yy:wd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
609doy:4}}),kg.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:xd,mm:"%d Minuten",h:xd,hh:"%d Stunden",d:xd,dd:xd,M:xd,MM:xd,y:xd,yy:xd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
610doy:4}}),["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"]),Bg=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"],Cg=(kg.defineLocale("dv",{months:Ag,monthsShort:Ag,weekdays:Bg,weekdaysShort:Bg,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(a){return"މފ"===a},meridiem:function(a,b,c){return 12>a?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",
vendor: 7,194 bytes, lines 610-615
610s:"ސިކުންތުކޮޅެއް",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(a){return a.replace(/،/g,",")},postformat:function(a){return a.replace(/,/g,"،")},week:{dow:7,// Sunday is the first day of the week.
611doy:12}}),kg.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return y(c)&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,// Monday is the first day of the week.
612doy:4}}),kg.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,// Monday is the first day of the week.
613doy:4}}),kg.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),kg.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,// Monday is the first day of the week.
614doy:4}}),kg.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,// Monday is the first day of the week.
615doy:4}}),kg.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LT
615S:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,// Monday is the first day of the week.
616doy:4}}),kg.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),weekdaysShort:"Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Ĵa_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-an de] MMMM, YYYY",LLL:"D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-an de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(a){return"p"===a.charAt(0).toLowerCase()},meridiem:function(a,b,c){return a>11?c?"p.t.m.":"P.T.M.":c?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"je %s",past:"antaŭ %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",//ne 'diurno', ĉar estas uzita por proksimumo
617dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},ordinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,// Monday is the first day of the week.
618doy:7}}),"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_")),Dg="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Eg=(kg.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?Dg[a.month()]:Cg[a.month()]},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,// Monday is the first day of the week.
619doy:4}}),"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_")),Fg="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Gg=(kg.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?Fg[a.month()]:Eg[a.month()]},monthsParseExact:!0,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%
619d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,// Monday is the first day of the week.
620doy:4}}),kg.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:yd,m:yd,mm:yd,h:yd,hh:yd,d:yd,dd:"%d päeva",M:yd,MM:yd,y:yd,yy:yd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
621doy:4}}),kg.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
622doy:7}}),{1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"}),Hg={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"},Ig=(kg.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return 12>a?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return Hg[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return Gg[a]}).replace(/,/g,"،")},ordinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,// Saturday is the first day of the week.
623doy:12}}),"nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" ")),Jg=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",Ig[7],Ig[8],Ig[9]],Kg=(kg.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_t
623i_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:zd,m:zd,mm:zd,h:zd,hh:zd,d:zd,dd:zd,M:zd,MM:zd,y:zd,yy:zd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
624doy:4}}),kg.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
625doy:4}}),kg.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(a){return a+(1===a?"er":"e")}}),kg.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(a){return a+(1===a?"er":"e")},week:{dow:1,// Monday is the first day of the week.
626doy:4}}),kg.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,// Monday is the first day of the week.
627doy:4}}),"jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_")),Lg="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),Mg=(kg.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?Lg[a.month()]:Kg[a.month()]},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,// Monday is the first day of the week.
628doy:4}}),["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"]),Ng=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],Og=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],Pg=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],Qg=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],Rg=(kg.defineLocale("gd",{months:Mg,monthsShort:Ng,monthsParseExact:!0,weekdays:Og,weekdaysShort:Pg,weekdaysMin:Qg,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] 
628LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},ordinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(a){var b=1===a?"d":a%10===2?"na":"mh";return a+b},week:{dow:1,// Monday is the first day of the week.
629doy:4}}),kg.defineLocale("gl",{months:"Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),monthsShort:"Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),monthsParseExact:!0,weekdays:"Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),weekdaysShort:"Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(a){return"uns segundos"===a?"nuns segundos":"en "+a},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,// Monday is the first day of the week.
630doy:7}}),kg.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיים":a+" שעות"},d:"יום",dd:function(a){return 2===a?"יומיים":a+" ימים"},M:"חודש",MM:function(a){return 2===a?"חודשיים":a+" חודשים"},y:"שנה",yy:function(a){return 2===a?"שנתיים":a%10===0&&10!==a?a+" שנה":a+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(a){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(a)},meridiem:function(a,b,c){return 5>a?"לפנות בוקר":10>a?"בבוקר":12>a?c?'לפנה"צ':"לפני הצהריים":18>a?c?'אחה"צ':"אחרי הצהריים":"בערב"}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),Sg={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},Tg=(kg.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"}
630,calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return Sg[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Rg[a]})},
631// Hindi notation for meridiems are quite fuzzy in practice. While there exists
632// a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
633meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात"===b?4>a?a:a+12:"सुबह"===b?a:"दोपहर"===b?a>=10?a:a+12:"शाम"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"रात":10>a?"सुबह":17>a?"दोपहर":20>a?"शाम":"रात"},week:{dow:0,// Sunday is the first day of the week.
634doy:6}}),kg.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:Bd,mm:Bd,h:Bd,hh:Bd,d:"dan",dd:Bd,M:"mjesec",MM:Bd,y:"godinu",yy:Bd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
635doy:7}}),"vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ")),Ug=(kg.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(a){return"u"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return Dd.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return Dd.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:Cd,m:Cd,mm:Cd,h:Cd,hh:Cd,d:Cd,dd:Cd,M:Cd,MM:Cd,y:Cd,yy:Cd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
636doy:7}}),kg.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(a){return/^(ցերեկվա|երեկոյան)$/.test(a)},meridiem:function(a){return 4>a?"գիշերվա":12>
vendor: 5,901 bytes, lines 636-641
636a?"առավոտվա":17>a?"ցերեկվա":"երեկոյան"},ordinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(a,b){switch(b){case"DDD":case"w":case"W":case"DDDo":return 1===a?a+"-ին":a+"-րդ";default:return a}},week:{dow:1,// Monday is the first day of the week.
637doy:7}}),kg.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"siang"===b?a>=11?a:a+12:"sore"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,// Monday is the first day of the week.
638doy:7}}),kg.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:Fd,m:Fd,mm:Fd,h:"klukkustund",hh:Fd,d:Fd,dd:Fd,M:Fd,MM:Fd,y:Fd,yy:Fd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
639doy:4}}),kg.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"Do_Lu_Ma_Me_Gi_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,// Monday is the first day of the week.
640doy:4}}),kg.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",LTS:"Ah時m分s秒",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah時m分",LLLL:"YYYY年M月D日Ah時m分 dddd"},meridiemParse:/午前|午後/i,isPM:function(a){return"午後"===a},meridiem:function(a,b,c){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},ordinalParse:/\d{1,2}日/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";default:return a}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),kg.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(a,b){return 12===a&&(a=0),"enjing"===b?a:"siyang"===b?a>=11?a:a+12:"sonten"===b||"ndalu"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"enjing":15>a?"siyang":19>a?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,// Monday is the first day of the week.
641doy:7}}
641),kg.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,"ში"):a+"ში"},past:function(a){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(a)?a.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},ordinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(a){return 0===a?a:1===a?a+"-ლი":20>a||100>=a&&a%20===0||a%100===0?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}}),{0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"}),Vg=(kg.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},ordinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(Ug[a]||Ug[b]||Ug[c])},week:{dow:1,// Monday is the first day of the week.
642doy:7}}),kg.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysMin:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}
642,calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},week:{dow:1,// Monday is the first day of the week.
643doy:4}}),kg.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h시 m분",LTS:"A h시 m분 s초",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h시 m분",LLLL:"YYYY년 MMMM D일 dddd A h시 m분"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"일분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},ordinalParse:/\d{1,2}일/,ordinal:"%d일",meridiemParse:/오전|오후/,isPM:function(a){return"오후"===a},meridiem:function(a,b,c){return 12>a?"오전":"오후"}}),{0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"}),Wg=(kg.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кече саат] LT",lastWeek:"[Өткен аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%
643d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},ordinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(Vg[a]||Vg[b]||Vg[c])},week:{dow:1,// Monday is the first day of the week.
644doy:7}}),kg.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){
645// Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
646switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:Hd,past:Id,s:"e puer Sekonnen",m:Gd,mm:"%d Minutten",h:Gd,hh:"%d Stonnen",d:Gd,dd:"%d Deeg",M:Gd,MM:"%d Méint",y:Gd,yy:"%d Joer"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
647doy:4}}),kg.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(a){return"ຕອນແລງ"===a},meridiem:function(a,b,c){return 12>a?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},ordinalParse:/(ທີ່)\d{1,2}/,ordinal:function(a){return"ທີ່"+a}}),{m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"}),Xg=(kg.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?|MMMM?(\[[^\[\]]*\]|\s+)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:Kd,m:Ld,mm:Od,h:Ld,hh:Od,d:Ld,dd:Od,M:Ld,MM:Od,y:Ld,yy:Od},ordinalParse:/\d{1,2}-oji/,ordinal:function(a){return a+"-oji"},week:{dow:1,// Monday is the first day of the week.
648doy:4}}),{m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_die
648nām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")}),Yg=(kg.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:Sd,m:Rd,mm:Qd,h:Rd,hh:Qd,d:Rd,dd:Qd,M:Rd,MM:Qd,y:Rd,yy:Qd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
649doy:4}}),{words:{//Different grammatical cases
650m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=Yg.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+Yg.correctGrammaticalCase(a,d)}}),Zg=(kg.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",m:Yg.translate,mm:Yg.translate,h:Yg.translate,hh:Yg.translate,d:"dan",dd:Yg.translate,M:"mjesec",MM:Yg.translate,y:"godinu",yy:Yg.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
651doy:7}}),kg.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",m:"минута",mm:"%d минути",h:"час",hh:"%
651d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,// Monday is the first day of the week.
652doy:7}}),kg.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_à´¶".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(a,b){return 12===a&&(a=0),"രാത്രി"===b&&a>=4||"ഉച്ച കഴിഞ്ഞ്"===b||"വൈകുന്നേരം"===b?a+12:a},meridiem:function(a,b,c){return 4>a?"രാത്രി":12>a?"രാവിലെ":17>a?"ഉച്ച കഴിഞ്ഞ്":20>a?"വൈകുന്നേരം":"രാത്രി"}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),$g={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},_g=(kg.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:Td,m:Td,mm:Td,h:Td,hh:Td,d:Td,dd:Td,M:Td,MM:Td,y:Td,yy:Td},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return $g[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Zg[a]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(a,b){return 12===a&&(a=0),"राà
652¤¤à¥à¤°à¥€"===b?4>a?a:a+12:"सकाळी"===b?a:"दुपारी"===b?a>=10?a:a+12:"सायंकाळी"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"रात्री":10>a?"सकाळी":17>a?"दुपारी":20>a?"सायंकाळी":"रात्री"},week:{dow:0,// Sunday is the first day of the week.
653doy:6}}),kg.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,// Monday is the first day of the week.
654doy:7}}),kg.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,// Monday is the first day of the week.
655doy:7}}),{1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"}),ah={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"},bh=(kg.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနညá€
655ºá€¸á€„ယ်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(a){return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(a){return ah[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return _g[a]})},week:{dow:1,// Monday is the first day of the week.
656doy:4}}),kg.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
657doy:4}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),ch={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},dh=(kg.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return ch[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return bh[a]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(a,b){return 12===a&&(a=0),"राति"===b?4>a?a:a+12:"बिहान"===b?a:"दिउँसो"===b?a>=10?a:a+12:"साँझ"===b?a+12:void 0},meridiem:function(a,b,c){return 3>a?"राति":12>a?"बिहान":16>a?"दिउँसो":20>a?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,// Sunday is the first day of the week.
658doy:6}}),"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_")),eh="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),fh=(kg.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?eh[a.month()]:dh[a.month()]},monthsParseExact:!0,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,// Monday is the first day of the week.
659doy:4}}),kg.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
660doy:4}}),{1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"}),gh={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"},hh=(kg.defineLocale("pa-in",{
661// There are months name as per Nanakshahi Calender but they are not used as rigidly in modern Punjabi.
662months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(a){return a.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,function(a){return gh[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return fh[a]})},
663// Punjabi notation for meridiems are quite fuzzy in practice. While there exists
664// a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
665meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(a,b){return 12===a&&(a=0),"ਰਾਤ"===b?4>a?a:a+12:"ਸਵੇਰ"===b?a:"ਦੁਪਹਿਰ"===b?a>=10?a:a+12:"ਸ਼ਾਮ"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"ਰਾਤ":10>a?"ਸਵੇਰ":17>a?"ਦੁਪਹਿਰ":20>a?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,// Sunday is the first day of the week.
666doy:6}}
666),"styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_")),ih="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),jh=(kg.defineLocale("pl",{months:function(a,b){return""===b?"("+ih[a.month()]+"|"+hh[a.month()]+")":/D MMMM/.test(b)?ih[a.month()]:hh[a.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:Vd,mm:Vd,h:Vd,hh:Vd,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:Vd,y:"rok",yy:Vd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
667doy:4}}),kg.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){// Saturday + Sunday
668return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº"}),kg.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){// Saturday + Sunday
669return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,// Monday is the first day of the week.
670doy:4}}),kg.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:Wd,h:"o oră",hh:Wd,d:"o zi",dd:Wd,M:"o lună",MM:Wd,y:"un an",yy:Wd},week:{dow:1,// Monday is the first day of the week.
671doy:7}}),[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i]),kh=(kg.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{
672// по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку ?
673format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:jh,longMonthsParse:jh,shortMonthsParse:jh,
674// полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
675monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
vendor: 4,143 bytes, lines 676-683
676// копия предыдущего
677monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
678// полные названия с падежами
679monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
680// Выражение, которое соотвествует только сокращённым формам
681monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В следующее] dddd [в] LT";case 1:case 2:case 4:return"[В следующий] dddd [в] LT";case 3:case 5:case 6:return"[В следующую] dddd [в] LT"}},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:Yd,mm:Yd,h:"час",hh:Yd,d:"день",dd:Yd,M:"месяц",MM:Yd,y:"год",yy:Yd},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночи":12>a?"утра":17>a?"дня":"вечера"},ordinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-я";default:return a}},week:{dow:1,// Monday is the first day of the week.
682doy:7}}),kg.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
683doy:4}}),kg.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහ
683ස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},ordinalParse:/\d{1,2} වැනි/,ordinal:function(a){return a+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(a){return"ප.ව."===a||"පස් වරු"===a},meridiem:function(a,b,c){return a>11?c?"ප.ව.":"පස් වරු":c?"පෙ.ව.":"පෙර වරු"}}),"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_")),lh="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"),mh=(kg.defineLocale("sk",{months:kh,monthsShort:lh,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:$d,m:$d,mm:$d,h:$d,hh:$d,d:$d,dd:$d,M:$d,MM:$d,y:$d,yy:$d},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
684doy:4}}),kg.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:_d,m:_d,mm:_d,h:_d,hh:_d,d:_d,dd:_d,M:_d,MM:_d,y:_d,yy:_d},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
685doy:7}}),kg.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(a){return"M"===a.charAt(0)},meridiem:function(a,b,c){return 12>a?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
686doy:4}}),{words:{//Different grammatical cases
687m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=mh.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+mh.correctGrammaticalCase(a,d)}}),nh=(kg.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_ок
687тобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:mh.translate,mm:mh.translate,h:mh.translate,hh:mh.translate,d:"дан",dd:mh.translate,M:"месец",MM:mh.translate,y:"годину",yy:mh.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
688doy:7}}),{words:{//Different grammatical cases
689m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=nh.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+nh.correctGrammaticalCase(a,d)}}),oh=(kg.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:nh.translate,mm:nh.translate,h:nh.translate,hh:nh.translate,d:"dan",dd:nh.translate,M:"mesec",MM:nh.translate,y:"godinu",yy:nh.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
690doy:7}}),kg.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%
690d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(a,b,c){return 11>a?"ekuseni":15>a?"emini":19>a?"entsambama":"ebusuku"},meridiemHour:function(a,b){return 12===a&&(a=0),"ekuseni"===b?a:"emini"===b?a>=11?a:a+12:"entsambama"===b||"ebusuku"===b?0===a?0:a+12:void 0},ordinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,// Monday is the first day of the week.
691doy:4}}),kg.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e";return a+c},week:{dow:1,// Monday is the first day of the week.
692doy:4}}),kg.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,// Monday is the first day of the week.
693doy:7}}),{1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"}),ph={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"},qh=(kg.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},ordinalParse:/\d{1,2}வது/,ordinal:function(a){return a+"வது"},preparse:function(a){return a.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(a){return ph[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return oh[a]})},
694// refer http://ta.wikipedia.org/s/1er1
695meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(a,b,c){return 2>a?" யாமம்":6>a?" வைகறை":10>a?" காலை":14>a?" நண்பகல்":18>a?" எற்பாடு":22>a?" மாலை":" யாமம்"},meridiemHour:function(a,b){return 12===a&&(a=0),"யாமம்"===b?2>a?a:a+12:"வைகறை"===b||"காலை"===b?a:"நண்பகல்"===b&&a>=10?a:a+12},week:{dow:0,// Sunday is the first day of the week.
696doy:6}}),kg.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},ordinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(a,b){return 12===a&&(a=0),"రాత్రి"===b?4>a?a:a+12:"ఉదయం"===b?a:"మధ్యాహ్నం"===b?a>=10?a:a+12:"సాయంత్రం"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"రాత్రి":10>a?"ఉదయం":17>a?"మధ్యాహ్నం":20>a?"సాయంత్రం":"రాత్రి"},week:{dow:0,// Sunday is the first day of the week.
697doy:6}}),kg.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),// yes, three characters difference
698weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H นาฬิกา m นาที",LTS:"H นาฬิกา m นาที s วินาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H นาฬิกา m นาที",LLLL:"วันddddที่ D MMMM YYYY เวลา H นาฬิกา m นาที"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return"หลังเที่ยง"===a},meridiem:function(a,b,c){return 12>a?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),kg.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"[Ngayon sa] LT",nextDay:"[Bukas sa] LT",nextWeek:"dddd [sa] LT",lastDay:"[Kahapon sa] LT",lastWeek:"dddd [huling linggo] LT",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%
698d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},ordinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,// Monday is the first day of the week.
699doy:4}}),"pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_")),rh=(kg.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:ae,past:be,s:"puS lup",m:"wa’ tup",mm:ce,h:"wa’ rep",hh:ce,d:"wa’ jaj",dd:ce,M:"wa’ jar",MM:ce,y:"wa’ DIS",yy:ce},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
700doy:4}}),{1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"}),sh=(kg.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)// special case for zero
701return a+"'ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(rh[b]||rh[c]||rh[d])},week:{dow:1,// Monday is the first day of the week.
702doy:7}}),kg.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(a){return"d'o"===a.toLowerCase()},meridiem:function(a,b,c){return a>11?c?"d'o":"D'O":c?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:ee,m:ee,mm:ee,h:ee,hh:ee,d:ee,dd:ee,M:ee,MM:ee,y:ee,yy:ee},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,// Monday is the first day of the week.
703doy:4}}),kg.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibr
703ir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,// Saturday is the first day of the week.
704doy:12}}),kg.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,// Saturday is the first day of the week.
705doy:12}}),kg.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:he,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:ie("[Сьогодні "),nextDay:ie("[Завтра "),lastDay:ie("[Вчора "),nextWeek:ie("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return ie("[Минулої] dddd [").call(this);case 1:case 2:case 4:return ie("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:ge,mm:ge,h:"годину",hh:ge,d:"день",dd:ge,M:"місяць",MM:ge,y:"рік",yy:ge},
706// M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
707meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночі":12>a?"ранку":17>a?"дня":"вечора"},ordinalParse:/\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a+"-й";case"D":return a+"-го";default:return a}},week:{dow:1,// Monday is the first day of the week.
708doy:7}}),kg.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%
708d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,// Monday is the first day of the week.
709doy:7}}),kg.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(a){return/^ch$/i.test(a)},meridiem:function(a,b,c){return 12>a?c?"sa":"SA":c?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},ordinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,// Monday is the first day of the week.
710doy:4}}),kg.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",m:"á ~míñ~út
710é",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,// Monday is the first day of the week.
711doy:4}}),kg.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm分",LTS:"Ah点m分s秒",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日Ah点mm分",LLLL:"YYYY年MMMD日ddddAh点mm分",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日Ah点mm分",llll:"YYYY年MMMD日ddddAh点mm分"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"下午"===b||"晚上"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?"凌晨":900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var a,b;return a=kg().startOf("week"),b=this.diff(a,"days")>=7?"[下]":"[本]",0===this.minutes()?b+"dddAh点整":b+"dddAh点mm"},lastWeek:function(){var a,b;return a=kg().startOf("week"),b=this.unix()<a.unix()?"[上]":"[本]",0===this.minutes()?b+"dddAh点整":b+"dddAh点mm"},sameElse:"LL"},ordinalParse:/\d{1,2}(日|月|周)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"周";default:return a}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{
712// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
713dow:1,// Monday is the first day of the week.
714doy:4}}),kg.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah點mm分",LTS:"Ah點m分s秒",L:"YYYY年MMMD日",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日Ah點mm分",LLLL:"YYYY年MMMD日ddddAh點mm分",l:"YYYY年MMMD日",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日Ah點mm分",llll:"YYYY年MMMD日ddddAh點mm分"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"中午"===b?a>=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 600>d?"凌晨":900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinalParse:/\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}}),kg);return sh.locale("en"),sh});
715/*!
716 * css-vars-ponyfill
717 * v1.7.2
718 * https://github.com/jhildenbiddle/css-vars-ponyfill
719 * (c) 2018 John Hildenbiddle <http://hildenbiddle.com>
720 * MIT license
721 */
722!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):e.cssVars=n()}(this,function(){"use strict";function e(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={mimeType:n.mimeType||null,onBeforeSend:n.onBeforeSend||Function.prototype,onSuccess:n.onSuccess||Function.prototype,onError:n.onError||Function.prototype,onComplete:n.onComplete||Function.prototype},t=Array.isArray(e)?e:[e],o=Array.apply(null,Array(t.length)).map(function(e){return null});function s(e,n){r.onError(e,t[n],n)}function a(e,n){var s=r.onSuccess(e,t[n],n);e=!1===s?"":s||e,o[n]=e,-1===o.indexOf(null)&&r.onComplete(o)}t.forEach(function(e,n){var t=document.createElement("a");t.setAttribute("href",e),t.href=t.href;var o=t.host!==location.host,i=t.protocol===location.protocol;if(o&&"undefined"!=typeof XDomainRequest)if(i){var u=new XDomainRequest;
722u.open("GET",e),u.timeout=0,u.onprogress=Function.prototype,u.ontimeout=Function.prototype,u.onload=function(){a(u.responseText,n)},u.onerror=function(e){s(u,n)},setTimeout(function(){u.send()},0)}else console.log("Internet Explorer 9 Cross-Origin (CORS) requests must use the same protocol"),s(null,n);else{var c=new XMLHttpRequest;c.open("GET",e),r.mimeType&&c.overrideMimeType&&c.overrideMimeType(r.mimeType),r.onBeforeSend(c,e,n),c.onreadystatechange=function(){4===c.readyState&&(200===c.status?a(c.responseText,n):s(c,n))},c.send()}})}function n(n){var t={cssComments:/\/\*[\s\S]+?\*\//g,cssImports:/(?:@import\s*)(?:url\(\s*)?(?:['"])([^'"]*)(?:['"])(?:\s*\))?(?:[^;]*;)/g},o={include:n.include||'style,link[rel="stylesheet"]',exclude:n.exclude||null,filter:n.filter||null,onBeforeSend:n.onBeforeSend||Function.prototype,onSuccess:n.onSuccess||Function.prototype,onError:n.onError||Function.prototype,onComplete:n.onComplete||Function.prototype},s=Array.apply(null,document.querySelectorAll(o.include)).filter(function(e){return n=e,r=o.exclude,!(n.matches||n.matchesSelector||n.webkitMatchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector).call(n,r);var n,r}),a=Array.apply(null,Array(s.length)).map(function(e){return null});function i(){if(-1===a.indexOf(null)){var e=a.join("");o.onComplete(e,a,s)}}function u(n,r,t,s){var u=o.onSuccess(n,t,s);(function n(r,t,s,a){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[];var u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[];var l=c(r,s,u);l.rules.length?e(l.absoluteUrls,{onBeforeSend:function(e,n,r){o.onBeforeSend(e,t,n)},onSuccess:function(e,n,r){var s=o.onSuccess(e,t,n),a=c(e=!1===s?"":s||e,n,u);
722return a.rules.forEach(function(n,r){e=e.replace(n,a.absoluteRules[r])}),e},onError:function(e,o,c){i.push({xhr:e,url:o}),u.push(l.rules[c]),n(r,t,s,a,i,u)},onComplete:function(e){e.forEach(function(e,n){r=r.replace(l.rules[n],e)}),n(r,t,s,a,i,u)}}):a(r,i)})(n=!1===u?"":u||n,t,s,function(e,n){null===a[r]&&(n.forEach(function(e){return o.onError(e.xhr,t,e.url)}),!o.filter||o.filter.test(e)?a[r]=e:a[r]="",i())})}function c(e,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],s={};return s.rules=(e.replace(t.cssComments,"").match(t.cssImports)||[]).filter(function(e){return-1===o.indexOf(e)}),s.urls=s.rules.map(function(e){return e.replace(t.cssImports,"$1")}),s.absoluteUrls=s.urls.map(function(e){return r(e,n)}),s.absoluteRules=s.rules.map(function(e,t){var o=s.urls[t],a=r(s.absoluteUrls[t],n);return e.replace(o,a)}),s}s.length?s.forEach(function(n,t){var s=n.getAttribute("href"),c=n.getAttribute("rel"),l="LINK"===n.nodeName&&s&&c&&"stylesheet"===c.toLowerCase(),f="STYLE"===n.nodeName;l?e(s,{mimeType:"text/css",onBeforeSend:function(e,r,t){o.onBeforeSend(e,n,r)},onSuccess:function(e,o,a){var i=r(s,location.href);u(e,t,n,i)},onError:function(e,r,s){a[t]="",o.onError(e,n,r),i()}}):f?u(n.textContent,t,n,location.href):(a[t]="",i())}):o.onComplete("",[])}function r(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:location.href,r=document.implementation.createHTMLDocument(""),t=r.createElement("base"),o=r.createElement("a");return r.head.appendChild(t),r.body.appendChild(o),t.href=n,o.href=e,o.href}function t(){for(var e=function(e){return e instanceof Object&&e.constructor===Object},n=arguments.length,r=Array(n),o=0;o<n;o++)r[o]=arguments[o];return r.reduce(function(n,r){return Object.keys(r).forEach(function(o){var s=n[o],a=r[o];e(s)&&e(a)?n[o]=t(s,a):n[o]=a}),n},{})}var o=s;function s(e,n,r){e instanceof RegExp&&(e=a(e,r)),n instanceof RegExp&&(n=a(n,r));var t=i(e,n,r);return t&&{start:t[0],end:t[1],pre:r.slice(0,t[0]),body:r.slice(t[0]+e.length,t[1]),post:r.slice(t[1]+n.length)}}function a(e,n){var r=n.match(e);return r?r[0]:null}function i(e,n,r){var t,o,s,a,i,u=r.indexOf(e),c=r.indexOf(n,u+1),l=u;if(u>=0&&c>0){for(t=[],s=r.length;l>=0&&!i;)l==u?(t.push(l),u=r.indexOf(e,l+1)):1==t.length?i=[t.pop(),c]:((o=t.pop())<s&&(s=o,a=c),c=r.indexOf(n,l+1)),l=u<c&&u>=0?u:c;t.length&&(i=[s,a])}return i}function u(e){function n(e){throw new Error("CSS parse error: "+e)}function r(n){var r=n.exec(e);if(r)return e=e.slice(r[0].length),r}function t(){r(/^\s*/)}function o(){return r(/^{\s*/)}function s(){return r(/^}/)}function a(){if(t(),"/"===e[0]&&"*"===e[1]){for(var r=2;e[r]&&("*"!==e[r]||"/"!==e[r+1]);)r++;if(!e[r])return n("end of comment is missing");var o=e.slice(2,r);return e=e.slice(r+2),{type:"comment",comment:o}}}function i(){for(var e=[],n=void 0;n=a();)e.push(n);return e}function u(){for(t();"}"===e[0];)n("extra closing bracket");
722var o=r(/^(("(?:\\"|[^"])*"|'(?:\\'|[^'])*'|[^{])+)/);if(o)return o[0].trim().replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g,"").replace(/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'/g,function(e){return e.replace(/,/g,"‌")}).split(/\s*(?![^(]*\)),\s*/).map(function(e){return e.replace(/\u200C/g,",")})}function c(){r(/^([;\s]*)+/);var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=r(/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/);if(t){if(t=t[0].trim(),!r(/^:\s*/))return n("property missing ':'");var o=r(/^((?:\/\*.*?\*\/|'(?:\\'|.)*?'|"(?:\\"|.)*?"|\((\s*'(?:\\'|.)*?'|"(?:\\"|.)*?"|[^)]*?)\s*\)|[^};])+)/),s={type:"declaration",property:t.replace(e,""),value:o?o[0].replace(e,"").trim():""};return r(/^[;\s]*/),s}}function l(){if(!o())return n("missing '{'");for(var e=void 0,r=i();e=c();)r.push(e),r=r.concat(i());return s()?r:n("missing '}'")}function f(){t();for(var e=[],n=void 0;n=r(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/);)e.push(n[1]),r(/^,\s*/);if(e.length)return{type:"keyframe",values:e,declarations:l()}}function p(){if(t(),"@"===e[0])return function(){var e=r(/^@([-\w]+)?ke
722yframes\s*/);if(e){var t=e[1];if(!(e=r(/^([-\w]+)\s*/)))return n("@keyframes missing name");var a=e[1];if(!o())return n("@keyframes missing '{'");for(var u=void 0,c=i();u=f();)c.push(u),c=c.concat(i());return s()?{type:"keyframes",name:a,vendor:t,keyframes:c}:n("@keyframes missing '}'")}}()||function(){var e=r(/^@supports *([^{]+)/);if(e)return{type:"supports",supports:e[1].trim(),rules:d()}}()||function(){if(r(/^@host\s*/))return{type:"host",rules:d()}}()||function(){var e=r(/^@media *([^{]+)/);if(e)return{type:"media",media:e[1].trim(),rules:d()}}()||function(){var e=r(/^@custom-media\s+(--[^\s]+)\s*([^{;]+);/);if(e)return{type:"custom-media",name:e[1].trim(),media:e[2].trim()}}()||function(){if(r(/^@page */))return{type:"page",selectors:u()||[],declarations:l()}}()||function(){var e=r(/^@([-\w]+)?document *([^{]+)/);if(e)return{type:"document",document:e[2].trim(),vendor:e[1]?e[1].trim():null,rules:d()}}()||function(){if(r(/^@font-face\s*/))return{type:"font-face",declarations:l()}}()||function(){var e=r(/^@(import|charset|namespace)\s*([^;]+);/);if(e)return{type:e[1],name:e[2].trim()}}()}function d(r){if(!r&&!o())return n("missing '{'");for(var t,a=void 0,c=i();e.length&&(r||"}"!==e[0])&&(a=p()||(void 0,(t=u()||[]).length||n("selector missing"),{type:"rule",selectors:t,declarations:l()}));)c.push(a),c=c.concat(i());return r||s()?c:n("missing '}'")}return{type:"stylesheet",stylesheet:{rules:d(!0),errors:[]}}}s.range=i;var c={},l="--",f="var";function p(e){var n,r,s={},a=t({fixNestedCalc:!0,onlyVars:!0,persist:!1,preserve:!1,variables:{},onWarning:function(){}},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),i=a.persist?c:a.variables,p=u(e);if(a.onlyVars&&(p.stylesheet.rules=function e(n){return n.filter(function(n){if(n.declarations){var r=n.declarations.filter(function(e){var n=e.property&&0===e.property.indexOf(l),r=e.value&&e.value.indexOf(f+"(")>-1;return n||r});return"font-face"!==n.type&&(n.declarations=r),Boolean(r.length)}return n.keyframes?Boolean(n.keyframes.filter(function(e){return Boolean(e.declarations.filter(function(e){var n=e.property&&0===e.property.indexOf(l),r=e.value&&e.value.indexOf(f+"(")>-1;return n||r}).length)}).length):!n.rules||(n.rules=e(n.rules).filter(function(e){return e.declarations&&e.declarations.length}),Boolean(n.rules.length))})}
722(p.stylesheet.rules)),p.stylesheet.rules.forEach(function(e){var n=[];if("rule"===e.type&&1===e.selectors.length&&":root"===e.selectors[0]&&(e.declarations.forEach(function(e,r){var t=e.property,o=e.value;t&&0===t.indexOf(l)&&(s[t]=o,n.push(r))}),!a.preserve))for(var r=n.length-1;r>=0;r--)e.declarations.splice(n[r],1)}),Object.keys(a.variables).forEach(function(e){var n="--"+e.replace(/^-+/,""),r=a.variables[e];e!==n&&(a.variables[n]=r,delete a.variables[e]),a.persist&&(c[n]=r)}),Object.keys(i).length){var m={declarations:[],selectors:[":root"],type:"rule"};Object.keys(i).forEach(function(e){s[e]=i[e],m.declarations.push({type:"declaration",property:e,value:i[e]}),a.persist&&(c[e]=i[e])}),a.preserve&&p.stylesheet.rules.push(m)}return function e(n,r){n.rules.forEach(function(t){t.rules?e(t,r):t.keyframes?t.keyframes.forEach(function(e){"keyframe"===e.type&&r(e.declarations,t)}):t.declarations&&r(t.declarations,n)})}(p.stylesheet,function(e,n){for(var r=void 0,t=void 0,o=void 0,i=0;i<e.length;i++)o=(r=e[i]).value,"declaration"===r.type&&o&&-1!==o.indexOf(f+"(")&&"undefined"!==(t=d(o,s,a))&&(a.preserve?(e.splice(i,0,{type:r.type,property:r.property,value:t}),i++):r.value=t)}),a.fixNestedCalc&&(n=p.stylesheet.rules,r=/(-[a-z]+-)?calc\(/,n.forEach(function(e){e.declarations&&e.declarations.forEach(function(e){for(var n=e.value,t="";r.test(n);){var s=o("calc(",")",n||"");for(n=n.slice(s.end);r.test(s.body);){var a=o(r,")",s.body);s.body=a.pre+"("+a.body+")"+a.post}t+=s.pre+"calc("+s.body,t+=r.test(n)?"":")"+s.post}e.value=t||e.value})})),function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments[2],t={charset:function(e){return"@charset "+e.name+";"},comment:function(e){return 0===e.comment.indexOf("__CSSVARSPONYFILL")?"/*"+e.comment+"*/":""},"custom-media":function(e){return"@custom-media "+e.name+" "+e.media+";"},declaration:function(e){return e.property+":"+e.value+";"},document:function(e){return"@"+(e.vendor||"")+"document "+e.document+"{"+o(e.rules)+"}"},"font-face":function(e){return"@font-face{"+o(e.declarations)+"}"},host:function(e){return"@host{"+o(e.rules)+"}"},import:function(e){return"@import "+e.name+";"},keyframe:function(e){return e.values.join(",")+"{"+o(e.declarations)+"}"},keyframes:function(e){return"@"+(e.vendor||"")+"keyframes "+e.name+"{"+o(e.keyframes)+"}"},media:function(e){return"@media "+e.media+"{"+o(e.rules)+"}"},namespace:function(e){return"@namespace "+e.name+";"},page:function(e){return"@page "+(e.selectors.length?e.selectors.join(", "):"")+"{"+o(e.declarations)+"}"},rule:function(e){var n=e.declarations;if(n.length)return e.selectors.join(",")+"{"+o(n)+"}"},supports:function(e){return"@supports "+e.supports+"{"+o(e.rules)+"}"}};function o(e){for(var o="",s=0;s<e.length;s++){var a=e[s];r&&r(a);var i=t[a.type](a);i&&(o+=i,i.length&&a.selectors&&(o+=n))}return o}return o(e.stylesheet.rules)}(p)}function d(e,n,r){var t=o("(",")",e),s=e.indexOf("var("),a=o("(",")",e.substring(s)).body,i="CSS transform warning:";t||r.onWarning(i+' missing closing ")" in the value "'+e+'"'),""===a&&r.onWarning(i+" var() must contain a non-whitespace string");var u=f+"("+a+")",c=a.replace(/([\w-]+)(?:\s*,\s*)?(.*)?/,function(e,t,o){var s=n[t];return s||o||r.onWarning(i+' variable "'+t+'" is undefined'),!s&&o?o:s});return-1!==(e=e.split(u).join(c)).indexOf(f+"(")&&(e=d(e,n,r)),e}var m="css-vars-ponyfill",v={include:"style,link[rel=stylesheet]",exclude:"",fixNestedCalc:!0,onlyLegacy:!0,onlyVars:!1,preserve:!1,silent:!1,updateDOM:!0,updateURLs:!0,variables:{},onBeforeSend:function(){},onSuccess:function(){},onWarning:function(){},onError:function(){},onComplete:function(){}},y={cssComments:/\/\*[\s\S]+?\*\//g,cssUrls:/url\((?!['"]?(?:data|http|\/\/):)['"]?([^'")]*)['"]?\)/g,cssVars:/(?:(?::root\s*{\s*[^;]*;*\s*)|(?:var\(\s*))(--[^:)]+)(?:\s*[:)])/};function h(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:location.href,r=document.implementation.createHTMLDocument(""),t=r.createElement("base"),o=r.createElement("a");return r.head.appendChild(t),r.body.appendChild(o),t.href=n,o.href=e,o.href}return function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=t(v,r);function s(e,n,r,t){o.silent||console.error(e+"\n",n),o.onError(e,n,r,t)}function a(e){o.silent||console.warn(e),o.onWarning(e)}if("loading"!==document.readyState){var i=window.CSS&&window.CSS.supports&&window.CSS.supports("(--a: 0)");if(i&&o.onlyLegacy)i&&o.updateDOM&&Object.keys(o.variables).forEac
722h(function(e){var n="--"+e.replace(/^-+/,""),r=o.variables[e];document.documentElement.style.setProperty(n,r)});else{var u=m;n({include:o.include,exclude:"#"+u+(o.exclude?","+o.exclude:""),filter:o.onlyVars?y.cssVars:null,onBeforeSend:o.onBeforeSend,onSuccess:function(e,n,r){var t=o.onSuccess(e,n,r);return e=!1===t?"":t||e,o.updateURLs&&(e.replace(y.cssComments,"").match(y.cssUrls)||[]).forEach(function(n){var t=n.replace(y.cssUrls,"$1"),o=h(t,r);e=e.replace(n,n.replace(t,o))}),e},onError:function(e,n,r){var t=e.responseURL||h(r,location.href),o=e.statusText?"("+e.statusText+")":"Unspecified Error"+(0===e.status?" (possibly CORS related)":"");s("CSS XHR Error: "+t+" "+e.status+" "+o,n,e,t)},onComplete:function(e,n,r){var t=/\/\*__CSSVARSPONYFILL-(\d+)__\*\//g,i=null;e=n.map(function(e,n){return y.cssVars.test(e)?e:"/*__CSSVARSPONYFILL-"+n+"__*/"}).join("");try{e=p(e,{fixNestedCalc:o.fixNestedCalc,onlyVars:o.onlyVars,persist:o.updateDOM,preserve:o.preserve,variables:o.variables,onWarning:a});for(var c=t.exec(e);null!==c;){var l=c[0],f=c[1];e=e.replace(l,n[f]),c=t.exec(e)}if(o.updateDOM&&r&&r.length){var d=r[r.length-1];(i=document.querySelector("#"+u)||document.createElement("style")).setAttribute("id",u),i.textContent!==e&&(i.textContent=e),d.nextSibling!==i&&d.parentNode.insertBefore(i,d.nextSibling)}}catch(e){var m=!1;n.forEach(function(e,n){try{e=p(e,o)}catch(e){var t=r[n-0];m=!0,s(e.message,t)}}),m||s(e.message||e)}o.onComplete(e,i)}})}}else document.addEventListener("DOMContentLoaded",function n(t){e(r),document.removeEventListener("DOMContentLoaded",n)})}});
723//# sourceMappingURL=css-vars-ponyfill.min.js.map
724
725Mobypicture.Player = function($el){
726    this.$el = $el;
727    this.$videoEl = this.$el.find('video');
728    this.videoEl = this.$videoEl[0];
729	
730	this.mmdToken = null;
731	
732	this.uiMode = 'idle';
733	
734	this.mediaState = 'idle';
735	this.mediaSource = null;
736	this.mediaItem = null;
737	
738	
739	this.mediaFileUrl = '';
740	
741	this.isModeFullScreen = false;
742	
743	this.attachHandlers();
744	
745	
746	this.draggingProgress = false;
747	
748	this.triggers = {};
749	
750	
751	this.setVolume(90);
752	
753	this.updateCurrentTimeInterval = null;
754	this.hideControlsTimeout = null;
755
756	this.supportsNativeHls = this.checkSupportsNativeHls();
757};
758
759Mobypicture.Player.prototype.checkSupportsNativeHls = function() {
760	var canPlayTypeHls = document.createElement('video').canPlayType('application/vnd.apple.mpegURL');
761	
762	if (canPlayTypeHls == 'probably' || canPlayTypeHls == 'maybe') {
763		
764		if (window.navigator.userAgent.indexOf("iPhone") > -1) {
765			return true;
766		}
767		 
768		if (window.navigator.userAgent.indexOf("Safari") > -1) {
769			if (window.navigator.userAgent.indexOf("Macintosh") > -1) {
770				return true;
771			}
772		}
773		
774	}
775	
776	/*if (canPlayTypeHls == 'maybe') {
777		if (window.navigator.userAgent.indexOf("Edge") > -1) {
778			return false;
779		}
780		
781		return true;
782	}*/
783	
784	return false;
785};
786
787Mobypicture.Player.prototype.on = function(eventName, cb) {
788	if (typeof this.triggers[eventName] === 'undefined') {
789		this.triggers[eventName] = [];
790	}
791	
792	this.triggers[eventName].push(cb);
793};
794
795Mobypicture.Player.prototype.trigger = function(eventName, ...args) {
796	if (typeof this.triggers[eventName] == 'undefined') {
797		return;
798	}
799	
800	var cbs = this.triggers[eventName];
801	for (var i = 0; i < cbs.length; i++) {
802		var cb = cbs[i];
803		
804		cb.apply(null, args);
805	}
806};
807
808Mobypicture.Player.prototype.setMmdToken = function(mmdToken) {
809	this.mmdToken = mmdToken;
810};
811
812Mobypicture.Player.prototype.setVolume = function(volume) {
813    this.videoEl.volume = (1 / 100) * parseInt(volume);
814};
815
816Mobypicture.Player.prototype.getVolume = function() {
817    return this.videoEl.volume * 100;
818};
819
820
821Mobypicture.Player.prototype.seekTo = function(val) {
822    this.videoEl.currentTime = val;
823};
824
825Mobypicture.Player.prototype.hideControls = function(val) {
826    this.$el.find('.player-controls').addClass('disabled');
827	this.trigger('hideControls');
828};
829
830Mobypicture.Player.prototype.showControls = function(val) {
831    this.$el.find('.player-controls').removeClass('disabled');
832	this.trigger('showControls');
833};
834
835Mobypicture.Player.prototype.startHideControlsTimeout = function() {
836	if (this.hideControlsTimeout !== null || this.uiMode != 'playing') {
837		return;
838	}
839	
840	var self = this;
841	this.hideControlsTimeout = setTimeout(function(){
842		self.hideControls();
843		self.hideControlsTimeout = null;
844	}, 6000);
845}
846
847Mobypicture.Player.prototype.restartHideControlsTimeout = function() {
848	clearTimeout(this.hideControlsTimeout);
849	this.hideControlsTimeout = null;
850	this.startHideControlsTimeout();
851};
852
853Mobypicture.Player.prototype.startCurrentTimeInterval = function() {
854	if (this.updateCurrentTimeInterval !== null) {
855		return;
856	}
857	
858	var self = this;
859    this.updateCurrentTimeInterval = setInterval(function(){
860		if (self.videoEl.currentTime >= 0) {
861			self.updateUiTime(self.videoEl.currentTime);
862		}
863    }, 300);
864};
865
866Mobypicture.Player.prototype.stopCurrentTimeInterval = function() {
867    clearInterval(this.updateCurrentTimeInterval);
868	this.updateCurrentTimeInterval = null;
869};
870
871Mobypicture.Player.prototype.attachHandlers = function() {
872	var self = this;
873	
874    $(document).on('webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange', function(e) {
875		self.isModeFullScreen = self.isFullScreen();
876		
877		//if (self.isFullScreen === true) {
878		//	self.isFullScreen = false;
879			//self.$el.removeClass('is-fullscreen');
880		//} else {
881		//	self.isFullScreen = true;
882			//self.$el.addClass('is-fullscreen');
883		//}
884    });
885    
886    this.videoEl.addEventListener('mousemove', function(e) {
887		
888		if (self.uiMode == 'playing') {
889			self.showControls();
890			self.restartHideControlsTimeout();
891		}
892    });
893    
894    this.videoEl.addEventListener('playing', function(e){
895		self.startCurrentTimeInterval();
896		self.trigger('modeChange', 'playing');
897    });
898    
899    this.videoEl.addEventListener('progress', function(e){
900		self.updateUiDuration(self.videoEl.duration);
901		
902		let buffer = self.videoEl.buffered;
903		if (typeof buffer.start !== 'undefined' && typeof buffer.end !== 'undefined') {
904			let bufferStart = buffer.start(0);
905			let bufferEnd = buffer.end(0);
906			
907			self.updateUiBuffer(bufferEnd);
908		}
909    });
910    this.videoEl.addEventListener('play', function(e){
911		self.startCurrentTimeInterval();
912		self.startHideControlsTimeout();
913		self.trigger('modeChange', 'playing');
914    });
915    this.videoEl.addEventListener('abort', function(e){
916		self.stopCurrentTimeInterval();
917    });
918    this.videoEl.addEventListener('canplay', function(e){
919		
920		if (self.supportsNativeHls === true) {
921			if (typeof self.mediaOptions.autoplay !== 'undefined' && self.mediaOptions.autoplay === true) {
922				self.play();
923			}
924		}
925    });
926    this.videoEl.addEventListener('error', function(e){
927		alert(this.error.message);
928    });
929    this.videoEl.addEventListener('canplaythrough', function(e){
930		//alert('Can play through!');
931		
932		console.log('canplaythrough');
933
934    });
935    this.videoEl.addEventListener('ended', function(e){
936		//self.isPlaying = false;
937		self.stopCurrentTimeInterval();
938		self.hideControls();
939		self.trigger('ended');
940		
941		self.videoEl.stop();
942    });
943    this.videoEl.addEventListener('error', function(e) {
944		//self.isPlaying = false;
945		self.stopCurrentTimeInterval();
946    });
947    this.videoEl.addEventListener('loadeddata', function(e){
948		if (self.videoEl.duration > 0) {
949			self.updateUiDuration(self.videoEl.duration);
950		}
951		
952		self.showControls();
953    });
954	
955    this.videoEl.addEventListener('loadedmetadata', function(e) {
956		//alert('loadedmetadata');
957		
958		self.videoEl.play();
959		/*console.log('loadedmetadata');
960		console.log(self.videoEl.duration);
961		if (self.videoEl.duration > 0) {
962			self.updateUiDuration(self.videoEl.duration);
963		}*/
964    });
965    this.videoEl.addEventListener('timeupdate', function(e){
966		if (self.videoEl.duration > 0) {
967			self.updateUiDuration(self.videoEl.duration);
968		}
969    });
970    this.videoEl.addEventListener('volumechange', function(e){
971		
972    });
973    this.videoEl.addEventListener('loadstart', function(e){
974		//alert('loadstart');
975		if (self.videoEl.duration > 0) {
976			self.updateUiDuration(self.videoEl.duration);
977		}
978    });
979    this.videoEl.addEventListener('pause', function(e){
980		self.stopCurrentTimeInterval();
981		self.trigger('modeChange', 'paused');
982    });
983    this.videoEl.addEventListener('stalled', function(e){
984		//console.log('stalled (buffering!!!)');
985
986    });
987    this.videoEl.addEventListener('waiting', function(e) {
988		// self.setViewState('buffering');
989		//self.isBuffering = true;
990		
991		//console.log(self.videoEl.buffered);
992    });
993	
994	/*this.$el.find('.player-loading').on('click', function(e){
995		self.play();
996	});*/
997	
998	this.$el.find('.player-control-play').on('click', function(e){
999		self.play();
1000	});
1001	
1002	this.$el.find('.player-control-fullscreen').on('click', function(e){
1003		if (self.isModeFullScreen === false) {
1004			self.enableFullscreen();
1005		} else {
1006			self.exitFullscreen();
1007		}
1008	});
1009
1010	this.$el.find('.player-control-pause').on('click', function(e){
1011		self.pause();
1012	});
1013	
1014	this.$el.find('.player-overlay').on('click', function(e){
1015		self.play();
1016	});
1017	
1018	this.$videoEl.on('click', function(e){
1019		self.pause();
1020	});
1021	
1022
1023    this.$el.find('.player-control-progress input[type="range"]').on('mousedown', function(){
1024        self.draggingProgress = true;
1025    });
1026
1027    this.$el.find('.player-control-progress input[type="range"]').on('mouseup', function(){
1028        self.draggingProgress = false;
1029    });
1030
1031    this.$el.find('.player-control-progress input[type="range"]').on('mouseup change', function() {
1032		self.draggingProgress = false;
1033        var $inputEl = $(this);
1034		var perc = (100 / parseInt($inputEl.attr('max'))) * parseInt($inputEl.val());
1035		$inputEl[0].style.setProperty('--value', perc + '%');
1036        self.seekTo($inputEl.val());
1037    });
1038	
1039
1040    this.$el.find('.player-control-volume input[type="range"]').on('input change', function(){
1041        var $inputEl = $(this);
1042		var perc = (100 / parseInt($inputEl.attr('max'))) * parseInt($inputEl.val());
1043		$inputEl[0].style.setProperty('--value', perc + '%');
1044        self.setVolume($inputEl.val());
1045    });
1046
1047};
1048
1049Mobypicture.Player.prototype.load = function(source, mediaItem, options) {
1050	var self = this;
1051	
1052	this.mediaOptions = options;
1053	this.mediaSource = source;
1054	this.mediaItem = mediaItem;
1055	this.mediaState = 'loading';
1056	
1057	if (source == 'mmd') {
1058		var availability = mediaItem.getAvailability();
1059		
1060		Fingerprint2.get({}, function (components) {
1061			var values = components.map(function (component) { return component.value });
1062			var fingerprintHash = Fingerprint2.x64hash128(values.join(''), 31);;
1063			
1064			// Execute API call that sets the correct cookie for us to open this thing;
1065			Mfe.Api.MediaDistribution.requestMediaAccess('down-to-earth', mediaItem.getId(), options.rentalTicket, fingerprintHash, function(result, response) {
1066				if (result === false) {
1067					self.setUiMode('error', 'Could not request access to media. Are you sure you are still allowed to watch it?');
1068					return;
1069				};
1070
1071				//cb(result, response);
1072				self.loadMedia(mediaItem);
1073			});
1074		
1075		});
1076	}
1077};
1078
1079Mobypicture.Player.prototype.loadMedia = function(mediaItem) {
1080	var mediaFiles = mediaItem.getIndexedFiles();
1081	
1082	if (mediaItem.getTypeName() == 'video') {
1083		//alert('Supports: ' + fingerprintHash);
1084		
1085		var videoFormats = Object.keys(mediaFiles['video-main'].video);
1086		
1087		//if (supportsNativeHls === true && videoFormats.indexOf('hls') > -1) {
1088			
1089		//} else if (supportsNativeHls === true && videoFormats.indexOf('cmaf') > -1) {
1090			
1091		//} else 
1092		if (videoFormats.indexOf('cmaf') > -1) {
1093			var videoResolutions = Object.keys(mediaFiles['video-main'].video['cmaf']);
1094			var videoFile = mediaFiles['video-main'].video['cmaf'][videoResolutions[videoResolutions.length - 1]];
1095			
1096			this.mediaFileUrl = videoFile.url;
1097
1098			this.initMedia();
1099		}
1100	}
1101};
1102
1103Mobypicture.Player.prototype.play = function() {
1104	this.videoEl.play();
1105	this.setUiMode('playing');
1106};
1107
1108Mobypicture.Player.prototype.pause = function() {
1109	this.videoEl.pause();
1110	this.setUiMode('paused');
1111};
1112
1113Mobypicture.Player.prototype.destroy = function() {
1114	clearInterval(this.updateCurrentTimeInterval);
1115	
1116	this.videoEl.pause();
1117	if (this.hls) {
1118		this.hls.destroy();
1119	}
1120};
1121
1122Mobypicture.Player.prototype.formatSeconds = function(seconds) {
1123    var formattedHours = Math.floor(seconds / 3600);
1124    var formattedMinutes = Math.floor((seconds - (formattedHours * 3600)) / 60);
1125    var formattedSeconds = (seconds - (formattedHours * 3600) - (formattedMinutes * 60));
1126    
1127    if (formattedHours.toString().length < 2) {
1128        formattedHours = '0' + formattedHours.toString();
1129    }
1130    
1131    if (formattedMinutes.toString().length < 2) {
1132        formattedMinutes = '0' + formattedMinutes.toString();
1133    }
1134    
1135    if (formattedSeconds.toString().length < 2) {
1136        formattedSeconds = '0' + formattedSeconds.toString();
1137    }
1138    
1139    
1140    return formattedHours + ':' + formattedMinutes + ':' + formattedSeconds;
1141};
1142
1143Mobypicture.Player.prototype.isFullScreen = function() {
1144	var result = (document.fullScreenElement && document.fullScreenElement !== null)
1145			 || document.mozFullScreen
1146			 || document.webkitIsFullScreen;
1147	 
1148	 if (result !== 'undefined' && result === true) {
1149		 return true;
1150	 } else {
1151		 return false;
1152	 }
1153};
1154
1155Mobypicture.Player.prototype.updateUiBuffer = function(seconds) {
1156    var $progressEl = this.$el.find('.player-control-progress progress');
1157    $progressEl.attr('max', this.videoEl.duration);
1158    $progressEl.attr('value', seconds);
1159};
1160
1161Mobypicture.Player.prototype.updateUiDuration = function(seconds) {
1162    var $rangeEl = this.$el.find('.player-control-progress input[type="range"]');
1163    $rangeEl.attr('max', seconds);
1164	
1165    var secondsLeft = parseInt(seconds) - parseInt(this.videoEl.currentTime);
1166	
1167    var $timeLeftSpanEl = this.$el.find('.player-label-time-left span');
1168    $timeLeftSpanEl.text(this.formatSeconds(secondsLeft));
1169};
1170
1171Mobypicture.Player.prototype.updateUiTime = function(seconds) {
1172	if (this.draggingProgress === true) {
1173		return false;
1174	}
1175	
1176    var $rangeEl = this.$el.find('.player-control-progress input[type="range"]');
1177    $rangeEl.prop('value', seconds.toString());
1178	//console.log('this.videoEl.duration');
1179	//console.log(this.videoEl.duration);
1180
1181    var secondsLeft = parseInt(this.videoEl.duration) - parseInt(seconds);
1182    var $timeLeftSpanEl = this.$el.find('pplayer-label-time-left span');
1183    $timeLeftSpanEl.text(this.formatSeconds(secondsLeft));
1184};
1185
1186Mobypicture.Player.prototype.exitFullscreen = function() {
1187    if (document.exitFullscreen)
1188        document.exitFullscreen();
1189    else if (document.msExitFullscreen)
1190        document.msExitFullscreen();
1191    else if (document.mozCancelFullScreen)
1192        document.mozCancelFullScreen();
1193    else if (document.webkitExitFullscreen)
1194        document.webkitExitFullscreen();
1195};
1196
1197Mobypicture.Player.prototype.enableFullscreen = function() {
1198    var self = this;
1199    
1200    if (this.$el[0].webkitEnterFullscreen) {
1201        this.$el[0].webkitEnterFullscreen();
1202    } else if (this.$el[0].requestFullscreen) {
1203        this.$el[0].requestFullscreen();
1204    } else if (this.$el[0].webkitRequestFullscreen) {
1205        this.$el[0].webkitRequestFullscreen();
1206    } else if (this.$el[0].mozRequestFullScreen) {
1207        this.$el[0].mozRequestFullScreen();
1208    }
1209};
1210
1211Mobypicture.Player.prototype.setUiMode = function(newMode, arg1) {
1212	var $posterEl = this.$el.find('.player-poster');
1213	var $overlayEl = this.$el.find('.player-overlay');
1214	
1215	if (newMode == 'paused') {
1216		$('.player-overlay').css('display', 'flex');
1217		$('.player-error').hide();	
1218		$('.player-poster').hide();	
1219		$('.player-loading').hide();
1220		$('.player-controls .player-control-pause').hide();
1221		$('.player-controls .player-control-play').show();
1222	} else if (newMode == 'playing') {
1223		$('.player-error').hide();	
1224		$('.player-poster').hide();
1225		$('.player-loading').hide();
1226		$('.player-overlay').hide();
1227		$('.player-controls .player-control-play').hide();
1228		$('.player-controls .player-control-pause').show();
1229	} else if (newMode == 'loading') {
1230		$('.player-error').hide();	
1231		$('.player-poster').hide();
1232		$('.player-overlay').hide();
1233		$('.player-controls .player-control-play').hide();
1234		$('.player-controls .player-control-pause').hide();
1235		
1236		$('.player-loading').show();
1237	} else if (newMode == 'error') {
1238		$('.player-poster').hide();
1239		$('.player-overlay').hide();
1240		$('.player-controls .player-control-play').hide();
1241		$('.player-controls .player-control-pause').hide();
1242		$('.player-loading').hide();
1243		
1244		$('.player-error').show();
1245		$('.player-error .message').text(arg1);
1246	} else {
1247		$('.player-error').hide();	
1248		$('.player-overlay').hide();
1249		$('.player-poster').hide();
1250	}
1251	
1252	this.uiMode = newMode;
1253};
1254
1255Mobypicture.Player.prototype.initMedia = function() {
1256	var self = this;
1257	
1258	
1259	if ('MediaSource' in window || window.MediaSource) {
1260		alert('Using MediaSource extensions');
1261		
1262		var config = {
1263			xhrSetup: function(xhr, url) {
1264			  xhr.withCredentials = true;
1265			},
1266			withCredentials: true
1267		};
1268
1269		this.hls = new Hls(config);
1270		this.hls.on(Hls.Events.ERROR,function(event, error, arg2) {
1271			var errorHandled = false;
1272
1273			if (event == 'hlsError') {
1274
1275				if (error.type == 'networkError') {
1276
1277					if (error.details == 'fragLoadError') {
1278						errorHandled = true;
1279					} else {
1280						self.setUiMode('error', 'Could not load video because of a network error. (' + error.details + ')');
1281						errorHandled = true;
1282					}
1283
1284				} else if (error.type == 'mediaError') {
1285					if (error.details == 'bufferStalledError') {
1286						errorHandled = true;
1287					} else if (error.details == 'bufferFullError') {
1288						errorHandled = true;
1289					}
1290				} 
1291			}
1292
1293			if (errorHandled !== true) {
1294				if (error.fatal === true) {
1295					self.setUiMode('error', 'Could not load video because of issues with HLS. (' + error.details + ')');
1296					this.videoEl.stop();
1297				}
1298			}
1299		});
1300
1301		this.hls.on(Hls.Events.MANIFEST_PARSED,function(e) {
1302			self.mediaState = 'loaded';
1303			if (typeof self.mediaOptions.autoplay !== 'undefined' && self.mediaOptions.autoplay === true) {
1304				self.play();
1305			}
1306		});
1307		this.hls.loadSource(this.mediaFileUrl);
1308		this.hls.attachMedia(this.videoEl);
1309		
1310		return;
1311	}
1312
1313	//if (this.supportsNativeHls === true) {
1314	
1315	alert('Using HLS :(');
1316	alert(window.navigator.userAgent);
1317	
1318		self.mediaState = 'loaded';
1319		this.videoEl.src = this.mediaFileUrl;
1320		this.pause();
1321		
1322		if (typeof self.mediaOptions.autoplay !== 'undefined' && self.mediaOptions.autoplay === true) {
1323			self.play();
1324		}
1325	//}
1326};
1327function _extends(){return(_extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(t,e){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.LazyLoad=e()}(this,function(){"use strict";var t="undefined"!=typeof window,e=t&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),n=t&&"IntersectionObserver"in window,o=t&&"classList"in document.createElement("p"),r={elements_selector:"img",container:e||t?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",class_loading:"loading",class_loaded:"loaded",class_error:"error",load_delay:0,auto_unobserve:!0,callback_enter:null,callback_exit:null,callback_reveal:null,callback_loaded:null,callback_error:null,callback_finish:null,use_native:!1},a=function(t,e){var n,o=new t(e);try{n=new CustomEvent("LazyLoad::Initialized",{detail:{instance:o}})}catch(t){(n=document.createEvent("CustomEvent")).initCustomEvent("LazyLoad::Initialized",!1,!1,{instance:o})}window.dispatchEvent(n)};var i=function(t,e){return t.getAttribute("data-"+e)},s=function(t,e,n){var o="data-"+e;null!==n?t.setAttribute(o,n):t.removeAttribute(o)},c=function(t){return"true"===i(t,"was-processed")},l=function(t,e){return s(t,"ll-timeout",e)},u=function(t){return i(t,"ll-timeout")},d=function(t,e){t&&t(e)},f=function(t,e){t._loadingCount+=e,0===t._elements.length&&0===t._loadingCount&&d(t._settings.callback_finish)},_=function(t){for(var e,n=[],o=0;e=t.children[o];o+=1)"SOURCE"===e.tagName&&n.push(e);return n},v=function(t,e,n){n&&t.setAttribute(e,n)},g=function(t,e){v(t,"sizes",i(t,e.data_sizes)),v(t,"srcset",i(t,e.data_srcset)),v(t,"src",i(t,e.data_src))},m={IMG:function(t,e){var n=t.parentNode;n&&"PICTURE"===n.tagName&&_(n).forEach(function(t){g(t,e)});g(t,e)},IFRAME:function(t,e){v(t,"src",i(t,e.data_src))},VIDEO:function(t,e){_(t).forEach(function(t){v(t,"src",i(t,e.data_src))}),v(t,"src",i(t,e.data_src)),t.load()}},b=function(t,e){var n,o,r=e._settings,a=t.tagName,s=m[a];if(s)return s(t,r),f(e,1),void(e._elements=(n=e._elements,o=t,n.filter(function(t){return t!==o})));!function(t,e){var n=i(t,e.data_src),o=i(t,e.data_bg);n&&(t.style.backgroundImage='url("'.concat(n,'")')),o&&(t.style.backgroundImage=o)}(t,r)},h=function(t,e){o?t.classList.add(e):t.className+=(t.className?" ":"")+e},p=function(t,e,n){t.addEventListener(e,n)},y=function(t,e,n){t.removeEventListener(e,n)},E=function(t,e,n){y(t,"load",e),y(t,"loadeddata",e),y(t,"error",n)},w=function(t,e,n){var r=n._settings,a=e?r.class_loaded:r.class_error,i=e?r.callback_loaded:r.callback_error,s=t.target;!function(t,e){o?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}(s,r.class_loading),h(s,a),d(i,s),f(n,-1)},I=function(t,e){var n=function n(r){w(r,!0,e),E(t,n,o)},o=function o(r){w(r,!1,e),E(t,n,o)};!function(t,e,n){p(t,"load",e),p(t,"loadeddata",e),p(t,"error",n)}(t,n,o)},k=["IMG","IFRAME","VIDEO"],A=function(t,e){var n=e._observer;z(t,e),n&&e._settings.auto_unobserve&&n.unobserve(t)},L=function(t){var e=u(t);e&&(clearTimeout(e),l(t,null))},x=function(t,e){var n=e._settings.load_delay,o=u(t);o||(o=setTimeout(function(){A(t,e),L(t)},n),l(t,o))},z=function(t,e,n){var o=e._settings;!n&&c(t)||(k.indexOf(t.tagName)>-1&&(I(t,e),h(t,o.class_loading)),b(t,e),function(t){s(t,"was-processed","true")}(t),d(o.callback_reveal,t),d(o.callback_set,t))},O=function(t){return!!n&&(t._observer=new IntersectionObserver(function(e){e.forEach(function(e){return function(t){return t.isIntersecting||t.intersectionRatio>0}(e)?function(t,e){var n=e._settings;d(n.callback_enter,t),n.load_delay?x(t,e):A(t,e)}(e.target,t):function(t,e){var n=e._settings;d(n.callback_exit,t),n.load_delay&&L(t)}(e.target,t)})},{root:(e=t._settings).container===document?null:e.container,rootMargin:e.thresholds||e.threshold+"px"}),!0);var e},N=["IMG","IFRAME"],C=function(t,e){return function(t){return t.filter(function(t){return!c(t)})}((n=t||function(t){return t.container.querySelectorAll(t.elements_selector)}(e),Array.prototype.slice.call(n)));var n},M=function(t,e){this._settings=function(t){return _extends({},r,t)}(t),this._loadingCount=0,O(this),this.update(e)};return M.prototype={update:function(t){var n,o=this,r=this._settings;(this._elements=C(t,r),!e&&this._observer)?(function(t){return t.use_native&&"loading"in HTMLImageElement.prototype}
1327(r)&&((n=this)._elements.forEach(function(t){-1!==N.indexOf(t.tagName)&&(t.setAttribute("loading","lazy"),z(t,n))}),this._elements=C(t,r)),this._elements.forEach(function(t){o._observer.observe(t)})):this.loadAll()},destroy:function(){var t=this;this._observer&&(this._elements.forEach(function(e){t._observer.unobserve(e)}),this._observer=null),this._elements=null,this._settings=null},load:function(t,e){z(t,this,e)},loadAll:function(){var t=this;this._elements.forEach(function(e){A(e,t)})}},t&&function(t,e){if(e)if(e.length)for(var n,o=0;n=e[o];o+=1)a(t,n);else a(t,e)}(M,window.lazyLoadOptions),M});
1328//# sourceMappingURL=lazyload.min.js.map
1329
1330
1331/*
1332 * General helper functions
1333 */
1334
1335Array.prototype.randomize = function() {
1336  var currentIndex = this.length, temporaryValue, randomIndex;
1337  while (0 !== currentIndex) {
1338	randomIndex = Math.floor(Math.random() * currentIndex);
1339	currentIndex -= 1;
1340	temporaryValue = this[currentIndex];
1341	this[currentIndex] = this[randomIndex];
1342	this[randomIndex] = temporaryValue;
1343  }
1344
1345  return this;
1346};
1347
1348String.prototype.addThousands = function(separatorThousands, separatorDecimal) {
1349	if (typeof separatorThousands == 'undefined') {
1350		separatorThousands = ',';
1351	}
1352	if (typeof separatorDecimal == 'undefined') {
1353		separatorDecimal = '.';
1354	}
1355	var value = this;
1356    value += '';
1357    var x = this.split(separatorDecimal);
1358    var x1 = x[0];
1359    var x2 = x.length > 1 ? separatorDecimal + x[1] : '';
1360    var rgx = /(\d+)(\d{3})/;
1361    while (rgx.test(x1)) {
1362        x1 = x1.replace(rgx, '$1' + separatorThousands + '$2');
1363    }
1364    return x1 + x2;
1365}
1366
1367String.prototype.lpad = function (padString, length) {
1368	var str = this;
1369	while (str.length < length) {
1370		str = padString + str;
1371	}
1372	return str;
1373}
1374
1375String.prototype.rpad = function (padString, length) {
1376	var str = this;
1377	while (str.length < length) {
1378		str = str + padString;
1379	}
1380	return str;
1381}
1382
1383String.prototype.replaceAll = function(search, replace) {
1384	var searchEscaped = search.replace(/[.*+?^${}()|[\]\\]/g, "\\$1");
1385	var target = this;
1386	return target.replace(new RegExp(searchEscaped, 'g'), replace);
1387};
1388
1389Date.prototype.getUTCDateTime = function () {
1390	var utcMonth = this.getUTCMonth() + 1; // getMonth() is zero-based
1391	var utcDate = this.getUTCDate();
1392	var utcHours = this.getUTCHours().toString().toString();
1393	var utcMinutes = this.getUTCMinutes().toString();
1394	var utcSeconds = this.getUTCSeconds().toString();
1395
1396	var datePart = this.getUTCFullYear() + '-' + utcMonth.toString().lpad('0', 2) + '-' + utcDate.toString().lpad('0', 2);
1397	var timePart = [(utcHours.length == 1 ? '0' : ''), utcHours, ':', (utcMinutes.length == 1 ? '0' : ''), utcMinutes, ':', (utcSeconds.length == 1 ? '0' : ''), utcSeconds].join('');
1398
1399	return datePart + ' ' + timePart;
1400};
1401
1402Date.prototype.getDateTime = function () {
1403	var utcMonth = this.getMonth() + 1; // getMonth() is zero-based
1404	var utcDate = this.getDate();
1405	var utcHours = this.getHours().toString().toString();
1406	var utcMinutes = this.getMinutes().toString();
1407	var utcSeconds = this.getSeconds().toString();
1408
1409	var datePart = this.getFullYear() + '-' + utcMonth.toString().lpad('0', 2) + '-' + utcDate.toString().lpad('0', 2);
1410	var timePart = [(utcHours.length == 1 ? '0' : ''), utcHours, ':', (utcMinutes.length == 1 ? '0' : ''), utcMinutes, ':', (utcSeconds.length == 1 ? '0' : ''), utcSeconds].join('');
1411
1412	return datePart + ' ' + timePart;
1413};
1414
1415Date.prototype.getSimpleDate = function () {
1416	var year = this.getFullYear();
1417	var month = this.getMonth() + 1;
1418	var day = this.getDate();
1419
1420	return year + '-' + month.toString().lpad('0', 2) + '-' + day.toString().lpad('0', 2);
1421};
1422
1423if (typeof Object.assign != 'function') {
1424	Object.assign = function (target) {
1425		'use strict';
1426		if (target == null) {
1427			throw new TypeError('Cannot convert undefined or null to object');
1428		}
1429
1430		target = Object(target);
1431		for (var index = 1; index < arguments.length; index++) {
1432			var source = arguments[index];
1433			if (source != null) {
1434				for (var key in source) {
1435					if (Object.prototype.hasOwnProperty.call(source, key)) {
1436						target[key] = source[key];
1437					}
1438				}
1439			}
1440		}
1441		return target;
1442	};
1443}
1444
1445Function.prototype.inherits = function (parent) {
1446	this.prototype = Object.create(parent.prototype);
1447};
1448
1449Handlebars.registerHelper('uc', function (str) {
1450    return encodeURIComponent(str);
1451});
1452
1453Handlebars.registerHelper('searchHref', function (str) {
1454    if (mfe) {
1455        return mfe.generateSearchHref(str);
1456    }
1457    
1458    return window.mfe.generateSearchHref(str);
1459});
1460
1461Handlebars.registerHelper('langToFlagUrl', function (str) {
1462    const langMapping = {
1463	'': 'un',
1464	'nl': 'nl',
1465	'en': 'gb'
1466    };
1467    
1468    return '/static/img/flags/' + langMapping[str] + '.svg';
1469});
1470
1471Handlebars.registerHelper('langToFriendlyLang', function (str) {
1472    const langMapping = {
1473	'': 'English',
1474	'nl': 'Dutch',
1475	'en': 'English'
1476    };
1477    
1478    return langMapping[str];
1479});
1480
1481Handlebars.registerHelper('equal', function(lvalue, rvalue, options) {
1482    if (arguments.length < 3)
1483        throw new Error("Handlebars Helper equal needs 2 parameters");
1484    if( lvalue!=rvalue ) {
1485        return options.inverse(this);
1486    } else {
1487        return options.fn(this);
1488    }
1489});
1490
1491Handlebars.registerHelper('ifValue', function (conditional, options) {
1492	if (options.hash.value === conditional) {
1493		return options.fn(this)
1494	} else {
1495		return options.inverse(this);
1496	}
1497});
1498
1499Handlebars.registerHelper('ifIn', function(elem, list, options) {
1500	if (typeof list == 'undefined' || Array.isArray(list) === false) {
1501		return options.inverse(this);
1502	}
1503	
1504  if(list.indexOf(elem) > -1) {
1505    return options.fn(this);
1506  }
1507  return options.inverse(this);
1508});
1509
1510Handlebars.registerHelper('ifKeyInObject', function(elem, obj, options) {
1511	if (typeof obj == 'undefined') {
1512		return options.inverse(this);
1513	}
1514	
1515  if(typeof obj[elem] !== 'undefined') {
1516    return options.fn(this);
1517  }
1518  return options.inverse(this);
1519});
1520
1521Handlebars.registerHelper('empty', function(list, options) {
1522	if (typeof list == 'undefined' || Array.isArray(list) === false) {
1523		return options.fn(this);
1524	}
1525	
1526	if (Array.isArray(list) === true && list.length > 0) {
1527		return options.inverse(this);
1528	} else if (typeof list == 'string' && list.length > 0) {
1529		return options.inverse(this);
1530	} else {
1531		return options.fn(this);
1532	}
1533});
1534
1535Handlebars.registerHelper('ifNotIn', function(elem, list, options) {
1536	if (typeof list == 'undefined' || Array.isArray(list) === false) {
1537		return options.fn(this);
1538	}
1539	
1540  if(list.indexOf(elem) > -1) {
1541    return options.inverse(this);
1542  }
1543  return options.fn(this);
1544});
1545
1546Handlebars.registerHelper('pathContains', function(argValLeft, argValRight, options) {
1547	if (argValLeft == argValRight) {
1548		return options.fn(this);
1549	}
1550	
1551	if (argValLeft == '/') {
1552		return options.inverse(this);
1553	}
1554	
1555	if (argValRight.substring(0, argValLeft.length) == argValLeft) {
1556		return options.fn(this);
1557	}
1558	
1559	return options.inverse(this);
1560});
1561
1562Handlebars.registerHelper('compare', function(argValLeft, argValMiddle, argValRight, options) {
1563	
1564	var valLeft = argValLeft;
1565	var valRight = null;
1566	var valOperator = null;
1567	var valOptions = null;
1568
1569	if (arguments.length == 3) {
1570		valOperator = '==';
1571		valRight = argValMiddle;
1572		valOptions = argValRight;
1573	} else if (arguments.length == 4) {
1574		valOperator = argValMiddle;
1575		valRight = argValRight;
1576		valOptions = options;
1577	}
1578
1579    if (arguments.length < 3) {
1580        throw new Error("Handlerbars Helper 'compare' needs 2 parameters");
1581	}
1582
1583    var operators = {
1584        '==':       function(l,r) { return l == r; },
1585        '===':      function(l,r) { return l === r; },
1586        '!=':       function(l,r) { return l != r; },
1587        '<':        function(l,r) { return l < r; },
1588        '>':        function(l,r) { return l > r; },
1589        '<=':       function(l,r) { return l <= r; },
1590        '>=':       function(l,r) { return l >= r; },
1591        'typeof':   function(l,r) { return typeof l == r; }
1592    }
1593
1594    if (!operators[valOperator]) {
1595        throw new Error("Handlerbars Helper 'compare' doesn't know the operator "+valOperator);
1596	}
1597
1598    var result = operators[valOperator](valLeft, valRight);
1599
1600    if (result) {
1601        return valOptions.fn(this);
1602    } else {
1603        return valOptions.inverse(this);
1604    }
1605});
1606
1607Handlebars.registerHelper('groupedEach', function (every, context, options) {
1608	var out = "", subcontext = [], i;
1609	if (context && context.length > 0) {
1610		for (i = 0; i < context.length; i++) {
1611			if (i > 0 && i % every === 0) {
1612				out += options.fn(subcontext);
1613				subcontext = [];
1614			}
1615			subcontext.push(context[i]);
1616		}
1617		out += options.fn(subcontext);
1618	}
1619	return out;
1620});
1621
1622Handlebars.registerHelper('generateYearOptions', function (context, options) {
1623	var optionsHtml = [];
1624	for (var i = context.startYear; i <= context.endYear; i++) {
1625		optionsHtml.push('<option value="' + i + '">' + i + '</option>');
1626	}
1627
1628	return optionsHtml.join('');
1629});
1630
1631Handlebars.registerHelper('generateCountryOptions', function (context) {
1632	var locales;
1633	if (mfe && mfe.pageLanguage && isEmpty(Mfe.Locales[mfe.pageLanguage]) === false) {
1634		locales = Mfe.Locales[mfe.pageLanguage];
1635	} else {
1636		locales = Mfe.Locales.en;
1637	}
1638
1639	var optionsHtml = [];
1640	for (var i = 0; i < locales.countries.length; i++) {
1641		var country = locales.countries[i];
1642		optionsHtml.push('<option value="' + Mfe.Utils.Text.escapeHtml(country) + '">' + Mfe.Utils.Text.escapeHtml(country) + '</option>');
1643	}
1644
1645	return optionsHtml.join('');
1646});
1647
1648Handlebars.registerHelper('locale', function (context, block) {
1649	if (context == 'text') {
1650		if (isEmpty(Create.Locale.active.Text[block]) === false) {
1651			return Create.Locale.active.Text[block];
1652		}
1653		// Fallback to English
1654		return '*' + Create.Locales.en.Text[block] + '*';
1655	} else {
1656
1657	}
1658});
1659
1660Handlebars.registerHelper('uiSelectTimezone', function (context, block) {
1661	var templateVars = {
1662		'timezones': [],
1663		'name': context,
1664		'selectedTimezone': block
1665	};
1666
1667	var timezoneKeys = Create.JS.getObjectKeys(Create.Locale.Timezones);
1668	for (var i = 0; i < timezoneKeys.length; i++) {
1669		var timezoneKey = timezoneKeys[i];
1670		var timezone = Create.Locale.Timezones[timezoneKey];
1671		templateVars.timezones.push(timezone);
1672	}
1673	
1674	var selectTemplate = Create.Templates.getCompiled('ui-timezone-options');
1675	var selectHtml = selectTemplate(templateVars);
1676	
1677	return selectHtml;
1678});
1679
1680Handlebars.registerHelper('dateCompact', function (context, block) {
1681	var f = block.hash.format || "MMM Do YYYY";
1682	return moment.utc(context).format('MMM Do YYYY');
1683});
1684
1685Handlebars.registerHelper('dateFormat', function (context, block) {
1686	var f = block.hash.format || "MMM DD, YYYY hh:mm:ss A";
1687	return moment.utc(context).format(f);
1688});
1689
1690Handlebars.registerHelper('dateFormatShort', function (context, block) {
1691	var f = block.hash.format || "llll";
1692	return moment.utc(context).format(f);
1693});
1694
1695Handlebars.registerHelper('dateFormatShortLocal', function (context, block) {
1696	var f = block.hash.format || "LL";
1697	return moment.utc(context).format(f);
1698});
1699
1700Handlebars.registerHelper('dateFormatArticle', function (context, block) {
1701	var f = block.hash.format || "D MMMM YYYY";
1702	return moment.utc(context).format(f);
1703});
1704
1705Handlebars.registerHelper('dateFromNow', function (context, block) {
1706	var s = block.hash.suffix || false;
1707	return moment.utc(context).fromNow(s);
1708});
1709
1710Handlebars.registerHelper('dateOfMonth', function (context, block) {
1711	return moment.utc(context).format('D');
1712});
1713
1714Handlebars.registerHelper('dateMonthYear', function (context, block) {
1715	return moment.utc(context).format('MMMM YYYY');
1716});
1717
1718Handlebars.registerHelper('momentListDate', function (context, block) {
1719	var f = block.hash.format || "MMM Do YYYY";
1720	return moment.utc(context).format(f);
1721});
1722
1723Handlebars.registerHelper('momentListTime', function (context, block) {
1724	var f = block.hash.format || "HH:mm";
1725	return moment.utc(context).format(f);
1726});
1727
1728Handlebars.registerHelper('truncateText', function (context, terminator, length) {
1729    
1730        if (context.length < length) {
1731            return context;
1732        }
1733        
1734        let contextWords = context.split(' ');
1735        let contextNewArr = [];
1736        let contextWordsLen = 0;
1737        
1738        for (let contextWord of contextWords) {
1739            if (contextWordsLen + contextWord.length > length) {
1740                break;
1741            }
1742            
1743            contextNewArr.push(contextWord);
1744            contextWordsLen += contextWord.length;
1745        }
1746        
1747        let contextNew = contextNewArr.join(' ') + terminator;
1748        
1749        return contextNew;
1750        
1751	var f = block.hash.format || "HH:mm";
1752	return moment.utc(context).format(f);
1753});
1754
1755Handlebars.registerHelper("inc", function(value, options) {
1756    return parseInt(value) + 1;
1757});
1758
1759Handlebars.registerHelper("toJson", function(value, options) {
1760    console.log('toJson');
1761    console.log(value);
1762    console.log(options);
1763    
1764    return JSON.stringify(value);
1765});
1766
1767
1768Handlebars.registerHelper("uriComponent", function(value, options) {
1769    return encodeURIComponent(value);
1770});
1771
1772Handlebars.registerHelper("asHtml", function(value, options) {		
1773	let template = Handlebars.compile(value);
1774	let templateHtml = template(options.data.root);
1775	
1776	return new Handlebars.SafeString(templateHtml);
1777});
1778// From http://stackoverflow.com/questions/5306680/move-an-array-element-from-one-array-position-to-another
1779Array.prototype.move = function (from, to) {
1780	this.splice(to, 0, this.splice(from, 1)[0]);
1781};
1782
1783function isNullOrUndefined (jsVar) {
1784	if (typeof jsVar === 'undefined' || jsVar === null) {
1785		return true;
1786	}
1787
1788	return false;
1789};
1790
1791function isEmpty (jsVar) {
1792	return isNullOrUndefined(jsVar);
1793};
1794
1795function isNotEmpty (jsVar) {
1796	return isNullOrUndefined(jsVar) === false;
1797};
1798
1799function getObjValue(key, defaultVal, obj) {
1800	if (isEmpty(obj) === true || isEmpty(obj[key]) === true) {
1801		return defaultVal;
1802	}
1803
1804	return obj[key];
1805};
1806
1807/*! sprintf-js v1.1.1 | Copyright (c) 2007-present, Alexandru Mărășteanu <[email protected]> | BSD-3-Clause */
1808!function(){"use strict";function e(e){return r(n(e),arguments)}function t(t,r){return e.apply(null,[t].concat(r||[]))}function r(t,r){var n,i,a,o,p,c,u,f,l,d=1,g=t.length,b="";for(i=0;i<g;i++)if("string"==typeof t[i])b+=t[i];else if(Array.isArray(t[i])){if((o=t[i])[2])for(n=r[d],a=0;a<o[2].length;a++){if(!n.hasOwnProperty(o[2][a]))throw new Error(e('[sprintf] property "%s" does not exist',o[2][a]));n=n[o[2][a]]}else n=o[1]?r[o[1]]:r[d++];if(s.not_type.test(o[8])&&s.not_primitive.test(o[8])&&n instanceof Function&&(n=n()),s.numeric_arg.test(o[8])&&"number"!=typeof n&&isNaN(n))throw new TypeError(e("[sprintf] expecting number but found %T",n));switch(s.number.test(o[8])&&(f=n>=0),o[8]){case"b":n=parseInt(n,10).toString(2);break;case"c":n=String.fromCharCode(parseInt(n,10));break;case"d":case"i":n=parseInt(n,10);break;case"j":n=JSON.stringify(n,null,o[6]?parseInt(o[6]):0);break;case"e":n=o[7]?parseFloat(n).toExponential(o[7]):parseFloat(n).toExponential();break;case"f":n=o[7]?parseFloat(n).toFixed(o[7]):parseFloat(n);break;case"g":n=o[7]?String(Number(n.toPrecision(o[7]))):parseFloat(n);break;case"o":n=(parseInt(n,10)>>>0).toString(8);break;case"s":n=String(n),n=o[7]?n.substring(0,o[7]):n;break;case"t":n=String(!!n),n=o[7]?n.substring(0,o[7]):n;break;case"T":n=Object.prototype.toString.call(n).slice(8,-1).toLowerCase(),n=o[7]?n.substring(0,o[7]):n;break;case"u":n=parseInt(n,10)>>>0;break;case"v":n=n.valueOf(),n=o[7]?n.substring(0,o[7]):n;break;case"x":n=(parseInt(n,10)>>>0).toString(16);break;case"X":n=(parseInt(n,10)>>>0).toString(16).toUpperCase()}s.json.test(o[8])?b+=n:(!s.number.test(o[8])||f&&!o[3]?l="":(l=f?"+":"-",n=n.toString().replace(s.sign,"")),c=o[4]?"0"===o[4]?"0":o[4].charAt(1):" ",u=o[6]-(l+n).length,p=o[6]&&u>0?c.repeat(u):"",b+=o[5]?l+n+p:"0"===c?l+p+n:p+l+n)}return b}function n(e){if(i[e])return i[e];for(var t,r=e,n=[],a=0;r;){if(null!==(t=s.text.exec(r)))n.push(t[0]);else if(null!==(t=s.modulo.exec(r)))n.push("%");else{if(null===(t=s.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){a|=1;var o=[],p=t[2],c=[];if(null===(c=s.key.exec(p)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(o.push(c[1]);""!==(p=p.substring(c[0].length));)if(null!==(c=s.key_access.exec(p)))o.push(c[1]);else{if(null===(c=s.index_access.exec(p)))throw new SyntaxError("[sprintf] failed to parse named argument key");o.push(c[1])}t[2]=o}else a|=2;if(3===a)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push(t)}r=r.substring(t[0].length)}return i[e]=n}var s={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[\+\-]/},i=Object.create(null);"undefined"!=typeof exports&&(exports.sprintf=e,exports.vsprintf=t),"undefined"!=typeof window&&(window.sprintf=e,window.vsprintf=t,"function"==typeof define&&define.amd&&define(function(){return{sprintf:e,vsprintf:t}}))}();
1809			
1810var Mfe = function(options) {
1811	this.options = options;
1812	
1813	this.triggers = {};
1814	
1815	this.timings = [];
1816	
1817	this.env = options.env;
1818	this.rendererName = options.rendererName;
1819	this.siteBundle = new Mfe.Classes.SiteBundle(options.siteBundle);
1820	this.clientMode = options.clientMode;
1821	
1822	this.outputElSelector = 'body';
1823
1824	// Api 
1825	this.apiResponseBundle = null;
1826	this.apiResponseRequests = null;
1827		
1828	// Webfonts
1829	this.wfLoader = null;
1830		
1831	// Widgets
1832	this.lastWidgetId = 0;
1833	this.lastLayoutId = 0;
1834	this.activeWidgets = {};
1835	this.activeLayouts = {};
1836	this.widgetBundle = null;
1837	
1838	this.cookieConsentAnalytics = false;
1839	this.pageViewAnalyticsExecuted = false;
1840	
1841	// Page
1842	this.bodyClasses = {};
1843	this.context = {
1844		'type': 'static',
1845		'id': null,
1846		'obj': null
1847	};
1848	
1849	// Modules
1850	this.modules = {
1851		'ga': { 'initialized': false },
1852		'gtag': { 'initialized': false }
1853	};
1854	
1855	this.scripts = {
1856		
1857	};
1858	
1859	// Compatibility
1860	this.supportsCssVars = true;
1861	
1862	this.translateDomainMapping = {
1863		'http://static.tagthelove.com/': 'https://static.tagthelove.com/',
1864		'http://media.tagthelove.com/': 'https://d1ns18uxs7ub2o.cloudfront.net/',
1865		'https://mobynow-mobypicture.netdna-ssl.com/': 'https://static.tagthelove.com/',
1866		'https://d1ydx93l5afdxo.cloudfront.net/': 'https://static.tagthelove.com/'
1867	};
1868	this.translateDomainKeys = Object.keys(this.translateDomainMapping);
1869	
1870	this.pageTitle = '';
1871	this.pageLanguage = 'nl';
1872	
1873	this.pathLanguageFrontPages = {};
1874	this.pagePathBlogs = {};
1875	this.pagePathMedia = {};
1876	this.pagePathPages = {};
1877	
1878	if (this.rendererName == 'themeHtml') {
1879		this.themeHtmlBundle = new Mfe.Classes.ThemeHtmlBundle(options.themeBundle);
1880		this.siteThemeConfig = options.siteThemeConfig;
1881		this.siteConfig = options.siteConfig;
1882		this.renderer = new Mfe.Renderer.ThemeHtml(this);
1883		
1884		
1885		if (typeof this.options.apiBaseUrl !== 'undefined') {
1886			Mfe.ApiRequest.baseUrl = this.options.apiBaseUrl;
1887		} else {
1888			Mfe.ApiRequest.baseUrl = '//' + this.options.domain + Mfe.ApiRequest.baseUrl;
1889		}
1890		
1891		if (typeof options.viewMode !== 'undefined') {
1892			this.viewMode = options.viewMode;
1893		}
1894				
1895		if (isEmpty(this.siteConfig.dummySiteName) === false && this.siteConfig.dummySiteName.length > 0) {
1896			Mfe.ApiRequest.dummyData.siteName = this.siteConfig.dummySiteName;
1897			Mfe.ApiRequest.dummyDataEnabled = true;
1898			
1899			if (isEmpty(this.siteConfig.dummyPostGroupIds) === false && this.siteConfig.dummyPostGroupIds.length > 0) {
1900				Mfe.ApiRequest.dummyData.postGroupIds = this.siteConfig.dummyPostGroupIds.split(',');
1901			}
1902			
1903			if (isEmpty(this.siteConfig.dummyStreamIds) === false && this.siteConfig.dummyStreamIds.length > 0) {
1904				Mfe.ApiRequest.dummyData.streamIds = this.siteConfig.dummyStreamIds.split(',');
1905			}
1906		}
1907		
1908	} else if (this.rendererName == 'themeBuilder') {
1909		//this.themeBundle = new Mfe.Classes.ThemeBuilderBundle(options.themeBundle);
1910	} else if (this.rendererName == 'html') {
1911		
1912	}
1913
1914	if (options.context) {
1915		this.context = options.context;
1916	}
1917
1918	if (options.contextId) {
1919		this.contextId = options.contextId;
1920	}
1921};
1922
1923Mfe.prototype.addTiming = function(name, section) {
1924	this.timings.push({
1925		'time': Date.now(),
1926		'name': name,
1927		'section': section
1928	});
1929}
1930
1931Mfe.prototype.renderTemplate = function(templateConfig) {
1932	return this.renderer.renderTemplate(templateConfig);
1933};
1934
1935Mfe.prototype.renderComponent = function(componentConfig) {
1936	return this.renderer.renderComponent(componentConfig);
1937};
1938
1939Mfe.prototype.exitEditMode = function() {
1940	this.renderer.exitEditMode();
1941};
1942
1943Mfe.prototype.updateTemplateConfig = function(type, action, settingName, settingConfig) {
1944	return this.renderer.updateTemplateConfig(type, action, settingName, settingConfig);
1945};
1946
1947Mfe.prototype.updateTemplateConfigNew = function(path, settingName, settingConfig) {
1948	return this.renderer.updateTemplateConfigNew(path, settingName, settingConfig);
1949};
1950
1951Mfe.prototype.render = function(path, queryParams, deviceType) {
1952	this.fullPath = this.getFullPath(path, queryParams);
1953	this.pagePath = path;
1954	
1955	// Make sure API calls will not be tried to execute using XmlHttpRequest 
1956	Mfe.ApiRequest.mfeInstance = this;
1957	Mfe.ApiRequest.fromApiBundle = true;
1958	
1959	// Reset response requests 
1960	this.apiResponseRequests = null;
1961	
1962	return this.renderer.render(path, queryParams, deviceType);
1963};
1964
1965Mfe.prototype.start = function(path, queryParams, pathVars) {
1966	this.pagePath = path;
1967	this.pathVars = pathVars;
1968	this.fullPath = this.getFullPath(path, queryParams);
1969	
1970	if (Mfe.Utils.UserAgent.isIE11() === true) {
1971		this.supportsCssVars = false;
1972	}
1973
1974	if (this.clientMode == 'render') {
1975		this.navigate(path, queryParams, false);
1976		this.loadAos();
1977		this.loadFonts();
1978		this.loadLazyLoad();
1979	} else if (this.clientMode == 'attach') {   
1980
1981		this.currentPage = this.options.page;
1982		this.loadAos();
1983		this.loadFonts();
1984		this.loadLazyLoad();
1985	
1986		this.updateViewportClasses();
1987		
1988		this.loadWidgetBundle();
1989		this.attachWidgets();
1990
1991		this.onAttach();
1992		
1993		if (this.supportsCssVars !== true) {
1994			cssVars();
1995		}
1996		
1997		this.initializePlugins();
1998		this.onPageView(200, path, queryParams);
1999		
2000	}
2001	
2002	this.attachHandlers();
2003	
2004};
2005
2006Mfe.prototype.navigate = function(path, queryParams, updateHistory, hash) {
2007	this.renderer.navigate(path, queryParams, updateHistory, hash);
2008};
2009
2010Mfe.prototype.loadContext = function(context, contextId, contextParams, cb) {
2011	var self = this;
2012
2013	this.context = context;
2014	this.contextId = contextId;
2015	
2016	if (context == 'blog-overview') {
2017		var blogGroup = this.siteBundle.getCmsBlogGroupById(contextId);
2018		this.contextObject = blogGroup;
2019		return true;
2020		
2021	} else if (context == 'blog-item') {
2022		
2023		var blogPost = Mfe.Api.BlogPosts.get(this.siteBundle.getName(), contextId, function(result, response){
2024			self.contextObject = response;
2025			cb(result, response);
2026		});
2027		if (blogPost === null) {
2028			return false;
2029		}
2030		if (blogPost === false) {
2031			return null;
2032		}
2033		
2034		
2035		// @todo Check if this context exists
2036		
2037		this.contextObject = blogPost;
2038		return true;
2039		
2040		
2041	} else if (context == 'calendar-item') {
2042		
2043		var calendarEvent = Mfe.Api.CalendarEvent.get(this.siteBundle.getName(), contextId, function(result, response){
2044			self.contextObject = response;
2045			cb(result, response);
2046		});
2047		if (calendarEvent === null) {
2048			return false;
2049		}
2050		if (calendarEvent === false) {
2051			return null;
2052		}
2053		
2054		// @todo Check if this context exists
2055		
2056		this.contextObject = calendarEvent;
2057		return true;
2058		
2059	} else if (context == 'stream-item') {
2060		
2061		var media = Mfe.Api.StreamMedia.get(this.siteBundle.getName(), contextId, function(result, response) {
2062			self.contextObject = response;
2063			cb(result, response);
2064		});
2065		 
2066		if (media === null) {
2067			return false;
2068		}
2069		if (media === false) {
2070			return null;
2071		}
2072		
2073		// @todo Check if this context exists
2074		
2075		this.contextObject = media;
2076		return true;
2077	} else if (context == 'cms-page' || context == 'cms-page-fallback') {
2078
2079		var cmsPostPage = Mfe.Api.CmsPages.get(this.siteBundle.getName(), contextId, function(result, response){
2080			self.contextObject = response;
2081			cb(result, response);
2082		});
2083		if (cmsPostPage === null) {
2084			return false;
2085		}
2086		if (cmsPostPage === false) {
2087			return null;
2088		}
2089		this.contextObject = cmsPostPage;
2090	} else if (context == 'dataset-table' || context == 'dataset-table-item') {
2091		var dataTableRecord = Mfe.Api.DatasetRecord.lookup(this.siteBundle.getName(), contextId, contextParams.lookupId, function(result, response){
2092			self.contextObject = response;
2093			cb(result, response);
2094		});
2095		if (dataTableRecord === null) {
2096			return false;
2097		}
2098		if (dataTableRecord === false) {
2099			return null;
2100		}
2101		this.contextObject = dataTableRecord;
2102	} else if (context == 'donation-result') {
2103		
2104		var donationStatus = Mfe.Api.Donations.getStatus(this.siteBundle.getName(), contextId, function(result, response){
2105			self.contextObject = response;
2106			cb(result, response);
2107		});
2108		if (donationStatus === null) {
2109			return false;
2110		}
2111		if (donationStatus === false) {
2112			return null;
2113		}
2114		this.contextObject = donationStatus;
2115		
2116	} else if (context == 'search') {
2117
2118		var searchParams = contextParams;
2119		
2120		var searchQuery = '';
2121		var searchTags = [];
2122		var searchAuthors = [];
2123		var searchStorylines = [];
2124		var searchPageNo = 1;
2125		
2126		if (searchParams.authors.length > 0) {
2127			searchAuthors = searchParams.authors.split(',');
2128		}
2129		if (searchParams.storylines.length > 0) {
2130			searchStorylines = searchParams.storylines.split(',');
2131		}
2132		
2133		if (searchParams.tags.length > 0) {
2134			searchTags = searchParams.tags.split(',');
2135		}
2136		
2137		if (searchParams.page.length > 0) {
2138			searchPageNo = searchParams.page;
2139		} else if (searchParams.p.length > 0) {
2140			searchPageNo = searchParams.p;
2141		}
2142		
2143		if (searchParams.query.length > 0) {
2144			searchQuery = searchParams.query;
2145		} else if (searchParams.q.length > 0) {
2146			searchQuery = searchParams.q;
2147		}
2148		
2149		var searchResults = Mfe.Api.BlogPosts.search(this.siteBundle.getName(), searchQuery, searchTags, searchAuthors, searchStorylines, 12, searchPageNo, null, function(result, response) {
2150			self.contextObject = response;
2151			self.contextParams = contextParams;
2152			cb(result, response);
2153		});
2154		if (searchResults === null) {
2155			return false;
2156		};
2157		if (searchResults === false) {
2158			return null;
2159		}
2160		
2161		
2162		this.contextObject = searchResults;
2163		this.contextParams = contextParams;
2164	} else {
2165		
2166	}
2167	
2168	return true;
2169};
2170
2171Mfe.prototype.hasCookieChoice = function(analyticalCookies) {
2172	var choice = Mfe.Utils.UserAgent.getCookie('cookie-consent-analyticaly');
2173	if (typeof choice === 'undefined') {
2174		return false;
2175	} else {
2176		return true;
2177	}
2178};
2179
2180Mfe.prototype.onCookieConsentUpdate = function(analyticalCookies) {
2181	// Save preferences in... a cookie. The irony
2182	Mfe.Utils.UserAgent.setCookie('cookie-consent-analyticaly', (analyticalCookies === true ? '1' : '0'), 1000, document.domain);
2183	
2184	this.cookieConsentAnalytics = analyticalCookies;
2185	
2186	if (this.pageViewAnalyticsExecuted === false) {
2187		this.executeAnalytics();
2188	}
2189};
2190
2191Mfe.prototype.replaceWidgetElements = function(html, isPreload) {
2192	var self = this;
2193	
2194	var widgetRegEx = /<widget(.+?)>(.*?)<\/widget>/g;
2195	var attrsRegEx = /([a-zA-Z0-9\-]*)="(.*?)"/g;
2196	
2197	this.addTiming('Starting to match fixed tags');
2198	html = html.replace(widgetRegEx, function(match, contents, offset, input) {
2199		var widgetAttrs = {};
2200		var attrMatch;
2201		
2202		self.addTiming('Matching widget attributes');
2203		do {
2204			attrMatch = attrsRegEx.exec(contents);
2205			if (attrMatch) {
2206				if (attrMatch[2].length > 0) {
2207					widgetAttrs[attrMatch[1]] = JSON.parse(Mfe.Utils.Text.unescapeHtml(attrMatch[2]));
2208				}
2209			}
2210		} while (attrMatch);
2211                
2212		self.addTiming('Finished matching widget attributes');
2213		
2214		self.addTiming('Initializing widget');
2215		var widget = self.initializeWidget(widgetAttrs);
2216		self.addTiming('Finished initializing widget');
2217		if (widget === false) {
2218			return '<div class="error">Could not load widget \''+widgetAttrs.name+'\'</div>';
2219		}
2220		
2221		self.addTiming('Fetching widget HTML');
2222		var widgetHtml = widget.getHtml(isPreload);
2223		self.addTiming('Done fetching widget HTML');
2224		
2225		return widgetHtml;
2226	});
2227
2228	return html;
2229};
2230
2231Mfe.prototype.getNextWidgetId = function() {
2232	this.lastWidgetId++;
2233	return this.lastWidgetId;
2234};
2235
2236Mfe.prototype.getNextLayoutId = function() {
2237	this.lastLayoutId++;
2238	return this.lastLayoutId;
2239};
2240
2241Mfe.prototype.initializeWidget = function(options, widgetId, widgetState, isPreload) {
2242	if (Mfe.Widget.exists(options.name) === false) {
2243		return false;
2244	}
2245	
2246	var widgetTemplate = '';
2247	if (this.platformType == 'custom') {
2248		widgetTemplate = this.templateBundle.default.widget[options.name];
2249		
2250		if (isEmpty(options['custom-template']) === false && isEmpty(this.templateBundle.custom.widget[options['custom-template']]) === false) {
2251			widgetTemplate = this.templateBundle.custom.widget[options['custom-template']];
2252		}
2253	} else if (this.platformType == 'builder') {
2254		widgetTemplate = this.templateBundle.default.widget[options.name];
2255	}
2256	
2257	if (isEmpty(widgetId) === true) {
2258		var widgetId = this.getNextWidgetId();		
2259	}
2260	
2261	var widget = Mfe.Widget.instantiate(this, widgetId, options);
2262	if (widget === false) {
2263		return false;
2264	}
2265	
2266	this.activeWidgets[widgetId] = widget;
2267	
2268	if (isEmpty(widgetState) === true) {
2269		
2270	}
2271	return widget;
2272};
2273
2274Mfe.prototype.setWidgetBundle = function(widgetBundle) {
2275	this.widgetBundle = widgetBundle;
2276};
2277
2278Mfe.prototype.loadWidgetBundle = function() {
2279	if (this.widgetBundle === null) {
2280		return;
2281	}
2282	
2283	var maxWidgetId = 0;
2284	var widgetIds = Object.keys(this.widgetBundle);
2285	for (var i = 0; i < widgetIds.length; i++) {
2286		var widgetId = widgetIds[i];
2287		var widgetObj = this.widgetBundle[widgetId];
2288		
2289		if (parseInt(widgetId) > maxWidgetId) {
2290			maxWidgetId = widgetId;
2291		}
2292		
2293		if (isEmpty(widgetObj.options) === true || Mfe.Widget.exists(widgetObj.options.name) === false) {
2294			continue;
2295		}
2296		
2297		var widget = Mfe.Widget.instantiate(this, widgetId, widgetObj.options);
2298		if (widget === false) {
2299			continue;
2300		}
2301		
2302		if (isEmpty(widget.restoreWidgetState) === false) {
2303			widget.restoreWidgetState(widgetObj.state);
2304		}
2305		
2306		this.activeWidgets[widgetId] = widget;
2307	}
2308	
2309	this.lastWidgetId = parseInt(maxWidgetId.toString());
2310};
2311
2312Mfe.prototype.generateWidgetBundle = function() {
2313	var widgetBundle = {};
2314	
2315	var activeWidgetIds = Object.keys(this.activeWidgets);
2316	for (var i = 0; i < activeWidgetIds.length; i++) {
2317		var activeWidgetId = activeWidgetIds[i];
2318		var activeWidget = this.activeWidgets[activeWidgetId];
2319		
2320		widgetBundle[activeWidgetId] = {
2321			'name': activeWidget.name,
2322			'options': activeWidget.options,
2323			'state': {}
2324		};
2325		
2326		if (isEmpty(activeWidget.saveWidgetState) === false) {
2327			widgetBundle[activeWidgetId].state = activeWidget.saveWidgetState();
2328		}
2329	}
2330	
2331	return widgetBundle;
2332};
2333
2334Mfe.prototype.attachWidgets = function() {
2335	var widgetIds = Object.keys(this.activeWidgets);
2336	
2337	for (var i = 0; i < widgetIds.length; i++) {
2338		var widgetId = widgetIds[i];
2339		var widget = this.activeWidgets[widgetId];
2340		var $widgetEl = $('body .widget[data-widget-id="'+widgetId+'"]');
2341
2342		widget.attach(this, $widgetEl);
2343	}
2344};
2345
2346Mfe.prototype.setContext = function(type, id, obj) {
2347	this.context = {
2348		'type': type,
2349		'id': id,
2350		'obj': obj
2351	};
2352};
2353
2354Mfe.prototype.getContext = function() {
2355	return this.context;
2356};
2357
2358Mfe.prototype.getContextType = function() {
2359	return this.context.type;
2360};
2361
2362Mfe.prototype.getPagePath = function() {
2363	return this.pagePath;
2364};
2365
2366Mfe.prototype.setPageHtml = function(html) {
2367	this.onBeforePageView();
2368	$(this.outputElSelector).html(html);
2369
2370	if (typeof window.lazyLoad !== 'undefined') {
2371		window.lazyLoad.update();
2372	}
2373};
2374
2375Mfe.prototype.getTemplate = function(type, id, name) {
2376	
2377	if (typeof name == 'undefined') {
2378
2379		var emptyTemplate = 'Could not find template ' + type + '/' + id;
2380
2381		if (isEmpty(Mfe.Templates.store[type]) === true) {
2382			return Handlebars.compile(emptyTemplate);
2383		}
2384
2385		if (isEmpty(Mfe.Templates.store[type][id]) === true) {
2386			return Handlebars.compile(emptyTemplate);
2387		}
2388		
2389		var templateSpecText = Mfe.Templates.store[type][id];
2390		
2391		var templateSpec = this.parseTemplateSpec(templateSpecText);
2392		var template = Handlebars.template(templateSpec);
2393
2394		return template;
2395	} else {
2396	
2397	var emptyTemplate = 'Could not find template ' + type + '/' + id + '/' + name;
2398	
2399	if (isEmpty(Mfe.Templates.store[type]) === true) {
2400		return Handlebars.compile(emptyTemplate);
2401	}
2402	
2403	if (isEmpty(Mfe.Templates.store[type][id]) === true) {
2404		return Handlebars.compile(emptyTemplate);
2405	}
2406	
2407	if (isEmpty(Mfe.Templates.store[type][id][name]) === true) {
2408		return Handlebars.compile(emptyTemplate);
2409	}
2410	
2411	var templateSpecText = Mfe.Templates.store[type][id][name];
2412	var templateSpec = this.parseTemplateSpec(templateSpecText);
2413	var template = Handlebars.template(templateSpec);
2414	return template;
2415	}
2416};
2417
2418Mfe.prototype.parseTemplateSpec = function(templateSpec) {
2419	return eval("(function(){return " + templateSpec + "}());");
2420};
2421
2422Mfe.prototype.updateOverlays = function() {
2423	if (this.renderer.updateOverlays) {
2424		this.renderer.updateOverlays();
2425	}
2426};
2427
2428Mfe.prototype.updateViewportClasses = function(width, height) {
2429	var viewportDefinitionMobile = { 'mode': 'mobile', 'max-width': 960 };
2430	var viewportDefinitionDesktop = { 'mode': 'desktop', 'min-width': 960 };
2431	
2432	var siteConfig = this.options.siteConfig;
2433	
2434	if (typeof siteConfig.cssQueryMobileMaxWidth !== 'undefined' && siteConfig.cssQueryMobileMaxWidth !== null && siteConfig.cssQueryMobileMaxWidth.length > 0) {
2435		viewportDefinitionMobile['max-width'] = parseInt(this.options.siteConfig.cssQueryMobileMaxWidth);
2436	}
2437	
2438	if (typeof siteConfig.cssQueryDesktopMinWidth !== 'undefined' && siteConfig.cssQueryDesktopMinWidth !== null && siteConfig.cssQueryDesktopMinWidth.length > 0) {
2439		viewportDefinitionDesktop['min-width'] = parseInt(this.options.siteConfig.cssQueryDesktopMinWidth);
2440	}
2441
2442	var viewportDefinitions = [
2443		viewportDefinitionMobile, 
2444		viewportDefinitionDesktop
2445	];
2446	
2447	if (!width) {
2448		width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
2449	}
2450	
2451	if (!height) {
2452		height = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
2453	}
2454
2455	var viewportOrientation = 'landscape';
2456	if (width > height) {
2457		viewportOrientation = 'landscape';
2458	} else if (width < height) {
2459		viewportOrientation = 'portrait';
2460	} else {
2461		viewportOrientation = 'square';
2462	}
2463	
2464	var matchDefinition = null;
2465	for (var i = 0; i < viewportDefinitions.length; i++) {
2466		var viewportDefinition = viewportDefinitions[i];
2467		
2468		if (viewportDefinition['max-width']) {
2469			if (width > viewportDefinition['max-width']) {
2470				continue;
2471			}
2472		}
2473		
2474		if (viewportDefinition['min-width']) {
2475			if (width < viewportDefinition['min-width']) {
2476				continue;
2477			}
2478		}
2479		
2480		matchDefinition = viewportDefinition;
2481		break;
2482	}
2483	
2484	var $htmlEl = $('html');
2485	$htmlEl[0].style.setProperty('--ua-viewport-width', width.toString() + 'px');
2486	$htmlEl[0].style.setProperty('--ua-viewport-height', height.toString() + 'px');
2487	
2488	if (matchDefinition.mode != 'desktop') {
2489		$htmlEl.removeClass('desktop');
2490	}
2491	
2492	if (matchDefinition.mode != 'tablet') {
2493		$htmlEl.removeClass('tablet');
2494	}
2495	
2496	if (matchDefinition.mode != 'mobile') {
2497		$htmlEl.removeClass('mobile');
2498	}
2499	
2500	$htmlEl.addClass(matchDefinition.mode);
2501};
2502
2503Mfe.prototype.addBodyClass = function(className) {
2504	this.bodyClasses[className] = className;
2505
2506	if (this.env == 'client') {
2507		$(this.outputElSelector).addClass(className);
2508	}
2509};
2510
2511Mfe.prototype.removeBodyClass = function(className) {
2512	delete this.bodyClasses[className];
2513	$(this.outputElSelector).removeClass(className);
2514};
2515
2516Mfe.prototype.getBodyClasses = function() {
2517	return Object.keys(this.bodyClasses);
2518};
2519
2520Mfe.prototype.getApiResponse = function(requestHash) {
2521	if (this.apiResponseBundle === null) {
2522		return null;
2523	}else if (isEmpty(this.apiResponseBundle[requestHash]) === true) {
2524		return null;
2525	}
2526	
2527	return this.apiResponseBundle[requestHash];
2528};
2529
2530Mfe.prototype.requestApiResponse = function(hash, options) {
2531	if (this.apiResponseRequests === null) {
2532		this.apiResponseRequests = {};
2533	}
2534	
2535	this.apiResponseRequests[hash] = options;
2536};
2537
2538Mfe.prototype.setApiResponseBundle = function(apiResponseBundle) {
2539	this.apiResponseBundle = apiResponseBundle;
2540	
2541	if (this.renderSide == 'server') {
2542		return;
2543	}
2544	
2545	this.processApiResponseBundle();
2546};
2547
2548
2549Mfe.prototype.processApiResponseBundle = function() {
2550	var requestHashes = Object.keys(this.apiResponseBundle);
2551	for (var i = 0; i < requestHashes.length; i++) {
2552		var requestHash = requestHashes[i];
2553		
2554		var response = this.apiResponseBundle[requestHash];
2555		
2556		Mfe.ApiCache.addRequest(requestHash, response);
2557		
2558		// Parse individual items
2559		if (response.class == 'queryresult') {
2560			
2561			if (response.entity == 'blogposts') {
2562				var resultItems = [];
2563				
2564				for (var j = 0; j < response.results.length; j++) {
2565					var resultObj = response.results[j];
2566					var resultItem = Mfe.Classes.ContentPost.instantiate(resultObj);
2567					resultItems.push(resultItem);
2568				}
2569
2570				Mfe.ApiCache.addItems('blogpost', resultItems);
2571			} else if (response.entity == 'media') {
2572				var resultItems = [];
2573				
2574				for (var j = 0; j < response.results.length; j++) {
2575					var resultObj = response.results[j];
2576					var resultItem = new Mfe.Classes.ContentMedia(resultObj);
2577					resultItems.push(resultItem);
2578				}
2579
2580				Mfe.ApiCache.addItems('media', resultItems);
2581			}
2582		}
2583	}
2584};
2585
2586Mfe.prototype.generateItemPathExternal = function(type, apiData) {	
2587	if (type == 'blogpost') {
2588		var item = Mfe.Classes.ContentPost.instantiate(apiData);
2589		return this.generateItemPath(item);
2590	}
2591};
2592
2593Mfe.prototype.generateItemPath = function(item) {	
2594	if (item.class == 'content\\posts\\blog') {
2595		var blogId = item.getPostGroupId();
2596		
2597		var itemRevision = item.getRevisionByLanguage(this.pageLanguage);
2598		var blogItemSlug = itemRevision.getSlug();
2599		
2600		if (isEmpty(this.pagePathBlogs[blogId]) === true) {
2601			return '';
2602		}
2603		
2604		if (isEmpty(this.pagePathBlogs[blogId][this.pageLanguage]) === false) {
2605			return this.pagePathBlogs[blogId][this.pageLanguage] + '/' + blogItemSlug + '-' + item.getId();
2606		}
2607		
2608		var availableLanguages = Object.keys(this.pagePathBlogs[blogId]);
2609		return this.pagePathBlogs[blogId][availableLanguages[0]] + '/' + blogItemSlug + '-' + item.getId();
2610		
2611	} else if (item.class == 'content\\posts\\page') {
2612		var pagePath = item.getPath();
2613
2614		if (isEmpty(this.pagePathPages[pagePath]) === true) {
2615			return '';
2616		}
2617		
2618		if (isEmpty(this.pagePathPages[pagePath][this.pageLanguage]) === false) {
2619			return this.pagePathPages[pagePath][this.pageLanguage];
2620		}
2621		
2622		var availableLanguages = Object.keys(this.pagePathPages[pagePath]);
2623		return this.pagePathPages[pagePath][availableLanguages[0]];
2624		
2625	} else if (item.class == 'content\\media') {
2626		
2627		if (typeof this.pagePathMedia[item.mediaObj.streamID] !== 'undefined') {
2628			return this.pagePathMedia[item.mediaObj.streamID][this.pageLanguage] + '?mediaId=' + item.getMediaId();
2629		}
2630		
2631		return this.pagePathMedia[''][this.pageLanguage] + '?mediaId=' + item.getMediaId();
2632	} else if (item.class == 'content\\event') {
2633		var calendarId = item.getCalendarId();
2634
2635		if (isEmpty(this.pagePathCalendars[calendarId]) === true) {
2636			return '';
2637		}
2638		
2639		if (isEmpty(this.pagePathCalendars[calendarId][this.pageLanguage]) === false) {
2640			return this.pagePathCalendars[calendarId][this.pageLanguage] + '/' + item.getId();
2641		}
2642		
2643		var availableLanguages = Object.keys(this.pagePathCalendars[calendarId]);
2644		return this.pagePathCalendars[calendarId][availableLanguages[0]] + '/' + item.getId();
2645	}
2646	
2647	return '';
2648};
2649
2650Mfe.prototype.generateItemPathCmsBlog = function(blogId, itemSlug) {	
2651	if (isEmpty(this.pagePathBlogs[blogId]) === true) {
2652		return '';
2653	}
2654
2655	if (isEmpty(this.pagePathBlogs[blogId][this.pageLanguage]) === false) {
2656		return this.pagePathBlogs[blogId][this.pageLanguage] + '/' + itemSlug;
2657	}
2658
2659	var availableLanguages = Object.keys(this.pagePathBlogs[blogId]);
2660	return this.pagePathBlogs[blogId][availableLanguages[0]] + '/' + itemSlug;
2661
2662}
2663
2664Mfe.prototype.getContextTitle = function() {
2665	if (this.context == 'blog-item' || this.context == 'cms-page') {
2666		var revision = this.contextObject.getRevisionByLanguage(this.pageLanguage);
2667		if (isEmpty(revision) === false) {
2668			return revision.getTitle();
2669		}
2670	} else if (this.context == 'stream-item') {
2671		return this.contextObject.getTitle();
2672	}
2673	
2674	return '';
2675};
2676
2677Mfe.prototype.getContextSummary = function() {
2678	if (this.context == 'blog-item' || this.context == 'cms-page') {
2679		var revision = this.contextObject.getRevisionByLanguage(this.pageLanguage);
2680		if (isEmpty(revision) === false) {
2681			return revision.getSummary();
2682		}
2683	}
2684	
2685	return '';
2686};
2687
2688Mfe.prototype.initializePlugins = function() {
2689	this.activePlugins = {};
2690	var availablePluginNames = Object.keys(Mfe.Plugins);
2691	for (var i = 0; i < availablePluginNames.length; i++) {
2692		var availablePluginName = availablePluginNames[i];
2693		
2694		//this.activePlugins[availablePluginName] = new Mfe.Plugins[availablePluginName](this, {});
2695	}
2696};
2697
2698Mfe.getContentType = function(obj) {
2699	if (typeof obj == 'undefined' || isEmpty(obj) === true) {
2700		return '';
2701	}
2702	
2703	if (obj.class == 'content\\posts\\blog') {
2704		return 'blogpost';
2705	} else if (obj.class == 'content\\posts\\page') {
2706		return 'page';
2707	} else if (obj.class == 'content\\media') {
2708		return 'media';
2709	} else if (obj.class == 'content\\event') {
2710		return 'event';
2711	} else if (obj.class == 'menu\\item') {
2712		return 'menuitem';
2713	} else if (obj.class == 'usergroup') {
2714		return 'usergroup';
2715	} else if (obj.class == 'usergroup\\team') {
2716		return 'usergroupteam';
2717	} else if (obj.class == 'usergroup\\team\\member') {
2718		return 'usergroupteammember';
2719	} else if (obj.class == 'dataset\\table\\record\\lookup') {
2720		return 'datasetlookupresult';
2721	} else if (obj.class == 'Mfe.Classes.DatasetRecordLookup') {
2722		return 'datasetlookupresult';
2723	} else if (obj.class == 'dataset\\table\\record') {
2724		return 'datasetrecord';
2725	} else {
2726		return obj.class;
2727	}
2728};
2729
2730Mfe.prototype.attachHandlers = function() {
2731	var self = this;
2732
2733	var $htmlEl = $('html');
2734
2735	var scrollbarWidth = Mfe.Utils.UserAgent.getScrollbarWidth();
2736	$htmlEl[0].style.setProperty('--ua-scrollbar-width', scrollbarWidth + 'px');
2737	
2738	window.onpopstate = function (event) {
2739		var targetHref = document.location.href;
2740		var parsedLinkEl = document.createElement('a');
2741		parsedLinkEl.href = targetHref;
2742
2743		if (parsedLinkEl.hostname != document.domain) {
2744			return;
2745		}
2746
2747		var path = parsedLinkEl.pathname;
2748		if (path.substring(0, 1) != '/') {
2749			path = '/' + path;
2750		}
2751
2752		var queryParams = {};
2753		var query = parsedLinkEl.search;
2754
2755		if (query.length > 0) {
2756			queryParams = Mfe.Utils.Text.parseQueryParams(query.substring(1));
2757		}
2758		
2759		//Mfe.Utils.Text
2760		self.navigate(path, queryParams, false);
2761	};
2762	
2763	// Catch all current and future A-elements targeting the current domain and route them
2764	
2765	$(this.outputElSelector).off('mouseenter', 'a');
2766	$(this.outputElSelector).on('mouseenter', 'a', function (event) {
2767		
2768		if (self.clientMode == 'edit' || (self.viewMode && self.viewMode === 'edit')) {
2769			return false;
2770		}
2771		
2772		var parsedTargetHref = self.parseLinkEvent(event);
2773		if (parsedTargetHref === false) {
2774			event.preventDefault();
2775			return false;
2776		} else if (isEmpty(parsedTargetHref) || parsedTargetHref === null) {
2777			return;
2778		}
2779		
2780		//self.preloadPath(parsedTargetHref.path, parsedTargetHref.queryParams);
2781	});
2782	
2783	$(this.outputElSelector).off('click', 'a');
2784	$(this.outputElSelector).on('click', 'a', function (event) {
2785		if (self.clientMode == 'edit' || (self.viewMode && self.viewMode === 'edit')) {
2786			return false;
2787		}
2788		
2789		var parsedTargetHref = self.parseLinkEvent(event);
2790		if (parsedTargetHref === false) {
2791			event.preventDefault();
2792			return false;
2793		} else if (isEmpty(parsedTargetHref) || parsedTargetHref === null) {
2794			return;
2795		} else if (isEmpty(parsedTargetHref.result) === false && parsedTargetHref.result == 'newWindow') {
2796			window.open(parsedTargetHref.url);
2797			return false;
2798		} else if (isEmpty(parsedTargetHref.result) === false && parsedTargetHref.result == 'navigate') {
2799			window.location.href = parsedTargetHref.url;
2800			return false;
2801		}
2802		
2803		if (parsedTargetHref.path == self.pagePath) {
2804			if (parsedTargetHref.hash != window.location.hash) {
2805				
2806				
2807				var scrollToEl = document.querySelector(parsedTargetHref.hash);
2808				scrollToEl.scrollIntoView({
2809				  behavior: 'smooth'
2810				});
2811				
2812				history.replaceState({}, 'Site', parsedTargetHref.path + parsedTargetHref.hash);
2813				
2814				event.preventDefault();
2815				return true;
2816			}
2817
2818			/*console.log('parsedTargetHref');
2819			console.log(parsedTargetHref);
2820			console.log(self.pagePath);
2821			
2822			console.log(window.location);*/
2823
2824		}
2825		
2826		
2827		//console.log('handling link');
2828		
2829		var parsedTargetHrefHash = null;
2830		if (typeof parsedTargetHref.hash !== 'undefined' && parsedTargetHref.hash !== null && parsedTargetHref.hash.length > 0) {
2831			parsedTargetHrefHash = parsedTargetHref.hash;
2832		} 
2833		
2834		self.handleLink(parsedTargetHref.path, parsedTargetHref.queryParams, parsedTargetHrefHash);
2835
2836		event.preventDefault();
2837		return false;
2838	});
2839	
2840	window.addEventListener('resize', function() {
2841		self.updateViewportClasses();
2842	});
2843	
2844	Mfe.Ui.attach();
2845};
2846
2847Mfe.prototype.parseLinkEvent = function(event) {
2848	if (event.ctrlKey === true || event.shiftKey === true || event.metaKey === true) {
2849		return;
2850	}
2851
2852	// Check if event.target is a link
2853	var targetNodeName = Mfe.Utils.Dom.getNodeName(event.target);
2854	var targetHref = null;
2855	let targetAttr = null;
2856        let targetRel = null;
2857
2858	if (targetNodeName == 'A') {
2859		if (event.target.attributes.href.value == '#') {
2860			return;
2861		}
2862		if (event.target.attributes.target) {
2863			targetAttr = event.target.attributes.target.value;
2864		}
2865		if (event.target.attributes.rel) {
2866			targetRel = event.target.attributes.rel.value;
2867		}
2868		targetHref = event.target.href;
2869                targetRel = event.target.rel;
2870	} else if (targetNodeName == 'INPUT' && event.target.type == 'file') {
2871		return;
2872	} else if (Mfe.Utils.Dom.getNodeName(event.currentTarget) == 'A') {
2873		if (event.currentTarget.attributes.href.value == '#') {
2874			return;
2875		}
2876		targetHref = event.currentTarget.href;
2877		targetRel = event.currentTarget.rel;
2878	} else {
2879		return null;
2880	}
2881
2882	if (targetHref === null) {
2883		return;
2884	}
2885	
2886	var parsedLinkEl = document.createElement('a');
2887	parsedLinkEl.href = targetHref;
2888	
2889	let isTargetBlank = (targetAttr !== null && targetAttr === '_blank');
2890        
2891        let isDifferentDomain = parsedLinkEl.hostname != document.domain;
2892        
2893        if (parsedLinkEl.hostname === 'our.kinder.world' && document.domain === 'kinder.world') {
2894            //isDifferentDomain = false;
2895            targetRel = 'internal';
2896        }
2897        
2898        
2899	// Only process links on the current domain
2900	if (isTargetBlank === true || isDifferentDomain) {
2901
2902            if (targetRel !== 'internal') {
2903		var returnObj = {
2904			'result': 'newWindow',
2905			'url': targetHref
2906		};
2907            } else {
2908		var returnObj = {
2909			'result': 'navigate',
2910			'url': targetHref
2911		};
2912            }
2913		// If there are unsaved changes, the window.beforeunload
2914		// handler will take care of that
2915		//window.open(targetHref);
2916		
2917		return returnObj;
2918	}
2919
2920	var path = parsedLinkEl.pathname;
2921	if (path.substring(0, 1) != '/') {
2922		path = '/' + path;
2923	} else if (path.length == 0) {
2924		path = '/';
2925	}
2926	
2927	if (path.length > 1 && path.substring(path.length - 1, path.length) == '/') {
2928		path = path.substring(0, path.length - 1);
2929	}
2930	
2931	var queryParams = {};
2932	var query = parsedLinkEl.search;
2933	var hash = parsedLinkEl.hash;
2934	
2935	if (query.length > 0) {
2936		queryParams = Mfe.Utils.Text.parseQueryParams(query.substring(1));
2937	}
2938
2939	var returnObj = {
2940		'path': path,
2941		'queryParams': queryParams,
2942		'hash': hash
2943	}
2944
2945	return returnObj;
2946};
2947
2948Mfe.prototype.processUrl = function(url) {
2949	var parsedLinkEl = document.createElement('a');
2950	parsedLinkEl.href = url;
2951	
2952        let targetRel = 'internal';
2953        let isDifferentDomain = parsedLinkEl.hostname != document.domain;
2954        
2955        if (parsedLinkEl.hostname === 'our.kinder.world' && document.domain === 'kinder.world') {
2956            //isDifferentDomain = false;
2957            targetRel = 'internal';
2958        }
2959        
2960        
2961	// Only process links on the current domain
2962	if (isDifferentDomain) {
2963
2964            if (targetRel !== 'internal') {
2965		var returnObj = {
2966			'result': 'newWindow',
2967			'url': url
2968		};
2969            } else {
2970		var returnObj = {
2971			'result': 'navigate',
2972			'url': url
2973		};
2974            }
2975		// If there are unsaved changes, the window.beforeunload
2976		// handler will take care of that
2977		//window.open(targetHref);
2978		
2979		return returnObj;
2980	}
2981
2982	var path = parsedLinkEl.pathname;
2983	if (path.substring(0, 1) != '/') {
2984		path = '/' + path;
2985	} else if (path.length == 0) {
2986		path = '/';
2987	}
2988	
2989	if (path.length > 1 && path.substring(path.length - 1, path.length) == '/') {
2990		path = path.substring(0, path.length - 1);
2991	}
2992	
2993	var queryParams = {};
2994	var query = parsedLinkEl.search;
2995	var hash = parsedLinkEl.hash;
2996	
2997	if (query.length > 0) {
2998		queryParams = Mfe.Utils.Text.parseQueryParams(query.substring(1));
2999	}
3000
3001	var returnObj = {
3002		'path': path,
3003		'queryParams': queryParams,
3004		'hash': hash
3005	}
3006
3007	return returnObj;
3008}
3009
3010Mfe.prototype.parseUrl = function(url) {
3011    var parsedLinkEl = document.createElement('a');
3012    parsedLinkEl.href = url;
3013    
3014    var path = parsedLinkEl.pathname;
3015    if (path.substring(0, 1) != '/') {
3016            path = '/' + path;
3017    } else if (path.length == 0) {
3018            path = '/';
3019    }
3020
3021    if (path.length > 1 && path.substring(path.length - 1, path.length) == '/') {
3022            path = path.substring(0, path.length - 1);
3023    }
3024
3025    var queryParams = {};
3026    var query = parsedLinkEl.search;
3027    var hash = parsedLinkEl.hash;
3028
3029    if (query.length > 0) {
3030            queryParams = Mfe.Utils.Text.parseQueryParams(query.substring(1));
3031    }
3032
3033    var returnObj = {
3034            'path': path,
3035            'queryParams': queryParams,
3036            'hash': hash
3037    }
3038    
3039    return returnObj;
3040}
3041 
3042Mfe.prototype.createHoverSelection = function() {
3043	var $hoverEl = $('<div class="mfe-hover"></div>');
3044	$('body').append($hoverEl);
3045	this.$hoverEl = $hoverEl;
3046};
3047
3048Mfe.prototype.resetCookieChoice = function() {
3049	Mfe.Utils.UserAgent.setCookie('cookie-consent-analyticaly', '0', -1000, document.domain);
3050	this.loadCookieBar();
3051};
3052
3053Mfe.prototype.loadCookieBar = function() {
3054	var self = this;
3055	
3056	
3057	if (this.hasCookieChoice() === true) {		
3058		return;
3059	}
3060	
3061	if (isEmpty(this.siteConfig.cookieBarVersion) !== false) {
3062		return;
3063	}
3064        
3065        
3066	
3067	var cookieBarTemplate = this.getTemplate('cookie', this.siteConfig.cookieBarVersion);
3068	var cookieBarHtml = cookieBarTemplate({
3069            'siteTitle': this.siteConfig.siteTitle,
3070            'cookieBarText': this.siteConfig.cookieBarText
3071        });
3072	
3073	var $cookieBarEl = $(cookieBarHtml);
3074	$('body').append($cookieBarEl);
3075	this.$cookieBarEl = $cookieBarEl;
3076	
3077	$('html').addClass('has-cookie-overlay');
3078
3079	this.$cookieBarEl.find('.continue button').on('click', function(e){
3080		var allowAnalyticsCookies = self.$cookieBarEl.find('#cookie-bar-allow-analytical').prop('checked');
3081		self.onCookieConsentUpdate(allowAnalyticsCookies);
3082		self.$cookieBarEl.remove();
3083		$('#cookie-bar-overlay').removeClass('show');
3084		$('html').removeClass('has-cookie-overlay');
3085	});
3086	
3087	this.$cookieBarEl.find('.collapse').on('click', function(e){
3088		var $collapseEl = $(this);
3089		var $sectionEl = $collapseEl.parents('.section');
3090		
3091		if ($sectionEl.hasClass('collapsed') === true) {
3092			$sectionEl.removeClass('collapsed');
3093			$sectionEl.addClass('expanded');
3094		} else {
3095			$sectionEl.addClass('collapsed');
3096			$sectionEl.removeClass('expanded');
3097		}
3098		
3099		e.preventDefault();
3100		return false;
3101	});
3102	
3103	$('#cookie-bar-overlay').addClass('show');
3104};
3105
3106Mfe.prototype.positionHoverSelection = function($el) {
3107	
3108	//var left = $el[0];
3109	
3110	this.$hoverEl.addClass('show');
3111};
3112
3113Mfe.prototype.showEditHoverOptions = function($el) {
3114	if (isEmpty(this.$hoverEl) === true) {
3115		this.createHoverSelection();
3116	}
3117};
3118
3119Mfe.prototype.handleLink = function(path, queryParams, hash) {	
3120	if (this.clientMode == 'edit') {
3121		return;
3122	}
3123	
3124	if (this.viewMode && this.viewMode === 'edit') {
3125		return false;
3126	}
3127	
3128	this.navigate(path, queryParams, true, hash);
3129};
3130
3131Mfe.prototype.processFontsConfig = function() {
3132	var fontsConfig = this.siteThemeConfig.fonts;
3133	
3134	var entities = Object.keys(fontsConfig);
3135	for (var i = 0; i < entities.length; i++) {
3136		var entity = entities[i];
3137		var entityFontConfig = fontsConfig[entity];
3138		
3139		this.wfLoader.registerFontFamilyByConfig(entityFontConfig);
3140	}
3141	
3142	this.wfLoader.loadFonts();
3143};
3144
3145Mfe.prototype.determineLanguage = function() {
3146	for (var i = 0; i < this.options.uaLanguages.length; i++) {
3147		var uaLanguage = this.options.uaLanguages[i];
3148		
3149		if (this.siteThemeConfig.languages.indexOf(uaLanguage) > -1) {
3150			return uaLanguage;
3151		}
3152	}
3153	
3154	return this.siteThemeConfig.languages[0];
3155};
3156
3157Mfe.prototype.getOtherLanguagePaths = function() {
3158	if (this.siteThemeConfig.site.languageMode == 'single') {
3159		return [];
3160	}
3161	
3162	var multiMode = this.siteThemeConfig.site.languageMultiMode;
3163	
3164	var otherLanguages = [];
3165	for (var i = 0; i < this.siteThemeConfig.languages.length; i++) {
3166		var language = this.siteThemeConfig.languages[i];
3167		if (this.pageLanguage != language) {
3168			otherLanguages.push(language);
3169		}
3170	};
3171	
3172	var languagePaths = [];
3173	// Get paths for languages
3174	for (var i = 0; i < otherLanguages.length; i++) {
3175		var otherLanguage = otherLanguages[i];
3176		var path = '/';
3177		
3178		// Translate current URL is mode if translate
3179		if (multiMode == 'translate') {
3180			
3181		} else if (multiMode == 'unique') {
3182			path = this.pathLanguageFrontPages[otherLanguage];
3183		}
3184		
3185		var code = otherLanguage;
3186		if (code.length == 5) {
3187			code = code.substring(3).toLowerCase();
3188		}
3189		
3190		if (code == 'gb') {
3191			code = 'en';
3192		}
3193		
3194		languagePaths.push({
3195			'code': code,
3196			'path': path
3197		});
3198	}
3199	
3200	return languagePaths;
3201};
3202
3203Mfe.prototype.getFrontPagePath = function() {
3204	if (isEmpty(this.pathLanguageFrontPages[this.pageLanguage]) === true) {
3205		return '/';
3206	}
3207	
3208	return this.pathLanguageFrontPages[this.pageLanguage];
3209};
3210
3211Mfe.prototype.getTranslation = function(translationKey, language) {
3212	var translationLang = null;
3213	if (isEmpty(language) === true) {
3214		translationLang = this.pageLanguage;
3215	} else {
3216		translationLang = language;
3217	}
3218	
3219	if (isEmpty(this.siteThemeConfig.translations[translationKey]) === true) {
3220		return translationKey;
3221	}
3222
3223	if (isEmpty(this.siteThemeConfig.translations[translationKey][translationLang]) === true) {
3224		return translationKey;
3225	}
3226	
3227	return this.siteThemeConfig.translations[translationKey][translationLang];
3228};
3229
3230Mfe.prototype.resolveTextVariable = function(variableObj) {
3231	if (variableObj.entity == 'site') {
3232		if (variableObj.variable == 'title') {
3233			return this.siteBundle.getTitle();
3234		} else if (variableObj.variable == 'languageFrontPagePath') {
3235			return this.getFrontPagePath();
3236		}
3237	} else if (variableObj.entity == 'translation') {
3238		return this.getTranslation(variableObj.name);
3239	}
3240	
3241	return 'unknown variable';
3242};
3243
3244Mfe.prototype.getFullPath = function(path, queryParams) {
3245	
3246	var queryParamStr = '';
3247	if (isEmpty(queryParams) === false) {
3248		var queryParamsArr = [];
3249		var queryParamKeys = Object.keys(queryParams);
3250		for (var i = 0; i < queryParamKeys.length; i++) {
3251			var queryParamKey = queryParamKeys[i];
3252			queryParamsArr.push(queryParamKey + '=' + queryParams[queryParamKey].toString());
3253		}
3254		
3255		if (queryParamKeys.length > 0) {
3256			queryParamStr = queryParamsArr.join('&');
3257		}
3258	}
3259	
3260	var fullPath = path;
3261	if (queryParamStr.length > 0) {
3262		fullPath += '?' + queryParamStr;
3263	}
3264	
3265	return fullPath;
3266};
3267
3268Mfe.prototype.onAttach = function() {
3269	if (isEmpty(this.siteConfig.featureSelectionShare) === false && this.siteConfig.featureSelectionShare ===  true) {
3270		this.initScript('share-selected-text');
3271	}
3272};
3273
3274Mfe.prototype.onBeforePageView = function() {
3275	// Save the FB root element so we don't have to reload the SDK every pageview
3276	var $fbRootEl = $('body > #fb-root');
3277	if ($fbRootEl.length > 0) {
3278		$fbRootEl.detach();
3279
3280		this.$fbRootEl = $fbRootEl;
3281	}
3282};
3283
3284Mfe.prototype.executeAnalytics = function() {
3285	var loadAnalytics = true;
3286	
3287	if (isEmpty(this.siteConfig.featureCookieBar) === false && this.siteConfig.featureCookieBar ===  true) {
3288		if (this.cookieConsentAnalytics === true) {
3289			loadAnalytics = true;
3290		} else {
3291			loadAnalytics = false;
3292		}
3293	}
3294	
3295	
3296	if (loadAnalytics === false) {
3297		this.pageViewAnalyticsExecuted = false;
3298		return;
3299	}
3300	
3301	// GA
3302	this.loadGoogleAnalytics();
3303
3304	// FB SDK
3305	this.loadFacebookSdk();
3306	
3307	this.pageViewAnalyticsExecuted = true;
3308};
3309
3310Mfe.prototype.loadCookieConsent = function() {
3311	if (isEmpty(this.siteConfig.featureCookieBar) === false && this.siteConfig.featureCookieBar ===  true) {
3312		this.cookieConsentAnalytics = (Mfe.Utils.UserAgent.getCookie('cookie-consent-analyticaly') === '1');
3313	} else {
3314		this.cookieConsentAnalytics = true;
3315	}
3316};
3317
3318Mfe.prototype.onPageView = function(httpCode, path, queryParams) {
3319	AOS.refreshHard();
3320	
3321	this.loadCookieConsent();
3322	
3323	this.executeAnalytics();
3324
3325	if (isEmpty(this.scripts['share-selected-text']) === false && this.scripts['share-selected-text'].loaded === true) {
3326		this.loadShareSelectedText();
3327	};
3328	
3329	if (typeof mfeThemeOnPageView !== 'undefined') {
3330		mfeThemeOnPageView();
3331	}
3332
3333	// Send view to collection
3334	Mfe.Api.Stats.sendPageView(this.siteBundle.getName(), path, queryParams, this.context, this.contextId, this.contextObject);
3335	
3336	this.trigger('pageView', path, queryParams, this.currentPage);
3337	
3338	//var activePluginNames = Object.keys(Mfe.Plugins);
3339	//for (var i = 0; i < activePluginNames.length; i++) {
3340		//var activePluginName = activePluginNames[i];
3341		
3342		/*if (typeof this.activePlugins[activePluginName].onPageView !== 'undefined') {
3343			this.activePlugins[activePluginName].onPageView(httpCode, path, queryParams, this.currentPage);
3344		}*/
3345	//}
3346	
3347	if (isEmpty(this.siteConfig.featureCookieBar) === false && this.siteConfig.featureCookieBar ===  true) {
3348		this.loadCookieBar();
3349	}
3350	
3351	if (window.lazyLoad) {
3352		window.lazyLoad.update();
3353	}
3354};
3355
3356Mfe.prototype.loadAos = function() {
3357	var self = this;
3358	
3359	if (mfeScriptsLoaded.dom === true) {
3360		AOS.init({
3361			duration: 1300,
3362			delay: 0,
3363			startEvent: 'startAos'
3364		});
3365		document.dispatchEvent(new Event('startAos'));
3366	} else {
3367		document.addEventListener('DOMContentLoaded', function() {
3368			AOS.init({
3369				duration: 1300,
3370				delay: 0,
3371				startEvent: 'startAos'
3372			});
3373			document.dispatchEvent(new Event('startAos'));
3374		});
3375	}
3376	
3377
3378};
3379
3380Mfe.prototype.loadLazyLoad = function() {
3381	window.lazyLoad = new LazyLoad({
3382		elements_selector: ".lazy"
3383	});
3384};
3385
3386Mfe.prototype.loadFonts = function() {
3387	var googleFontsJson = $('html').attr('data-google-fonts-json');
3388	
3389	if (typeof googleFontsJson !== 'undefined' && googleFontsJson !== null && googleFontsJson.length > 0) {
3390		var googleFonts = JSON.parse(googleFontsJson);
3391
3392		if (typeof googleFonts === 'undefined' || googleFonts === null) {
3393			googleFonts = [];
3394		}
3395		
3396		if (googleFonts.length > 0) {
3397			var webFontConfig = {
3398				google: { families: googleFonts }
3399			  };
3400
3401			WebFont.load(webFontConfig);
3402		}
3403	}
3404};
3405
3406Mfe.prototype.loadShareSelectedText = function() {
3407	shareSelectedText('.widget.cms-fragments, .widget.cms-summary', {
3408		tooltipClass: '',    // cool, if you want to customize the tooltip
3409		sanitize: true,      // will sanitize the user selection to respect the Twitter Max length (recommended) 
3410		buttons: [           // services that you want to enable you can add : 
3411			'twitter',       // - twitter, tumblr, buffer, stumbleupon, digg, reddit, linkedin, facebook
3412			'linkedin',
3413			'facebook'
3414		],
3415		anchorsClass: '',    // class given to each tooltip's links
3416		twitterUsername: '', // for twitter widget, will add 'via @twitterUsername' at the end of the tweet.
3417		facebookAppID: this.siteConfig.fbAppId, // Can also be an HTML element inside the <head> tag of your page : <meta property="fb:APP_ID" content="YOUR_APP_ID"/>
3418		facebookDisplayMode: 'popup', //can be 'popup' || 'page'
3419		tooltipTimeout: 250  //Timeout before that the tooltip appear in ms
3420	});
3421};
3422
3423Mfe.prototype.loadGoogleAnalytics = function() {
3424    
3425	var fullPath = 	this.fullPath;
3426	
3427	// Google Analytics
3428	if (isEmpty(this.siteConfig.gaUaCode) === false && this.siteConfig.gaUaCode.length > 0 && typeof ga !== 'undefined') {
3429	    if (this.modules.ga.initialized === false) {
3430		    ga('create', this.siteConfig.gaUaCode, 'auto');
3431		    this.modules.ga.initialized =  true;
3432	    }
3433	    ga('set', 'page', fullPath);
3434	    ga('send', 'pageview');
3435	} else if (isEmpty(this.siteConfig.gaTagCode) === false && this.siteConfig.gaTagCode.length > 0) {
3436	    
3437	    if (this.modules.gtag.initialized === false) {
3438		gtag('js', new Date());
3439		gtag('config', this.siteConfig.gaTagCode);
3440		this.modules.gtag.initialized =  true;
3441	    }
3442
3443	    gtag('event', 'page_view', {
3444		page_path: this.fullPath,
3445		send_to: this.siteConfig.gaTagCode
3446	    });
3447
3448	} else {
3449		
3450	}
3451};
3452
3453Mfe.prototype.loadFacebookSdk = function() {
3454	var fullPath = 	this.fullPath;
3455	
3456	// FB SDK
3457	if (isEmpty(this.siteConfig.fbAppId) === false && this.siteConfig.fbAppId.length > 0) {
3458		
3459		if (isEmpty(this.$fbRootEl) === false) {
3460			// Restore the RB root element
3461			$('body').prepend(this.$fbRootEl);
3462			FB.XFBML.parse();
3463		} else {
3464			$('body').prepend($('<div id="fb-root"></div>'));
3465			delete FB;
3466			var self = this;
3467			//$.getScript('//connect.facebook.net/en_US/all.js#xfbml=1', function(data, textStatus, jqxhr){
3468			$.getScript('//connect.facebook.net/en_US/sdk.js?version=v3.0#xfbml=1', function(data, textStatus, jqxhr) {
3469				FB.init({
3470				  appId      : self.siteConfig.fbAppId,
3471				  status     : true,
3472				  xfbml      : true,
3473				  version    : 'v3.0'
3474				});
3475			});
3476		}
3477	}
3478}
3479
3480Mfe.prototype.generateSearchHref = function(query, pageNo) {
3481    if (typeof pageNo === 'undefined') {
3482        pageNo = 1;
3483    }
3484
3485    let searchTemplate = '/search?q={{query}}&p={{page}}';
3486    if (this.siteConfig.searchTemplate && this.siteConfig.searchTemplate.length > 0) {
3487        searchTemplate = this.siteConfig.searchTemplate;
3488    }
3489
3490    let searchTemplateVars = {
3491        'query': encodeURIComponent(query),
3492        'page': pageNo
3493    };
3494
3495    let searchTemplateHb = Handlebars.compile(searchTemplate);
3496    let searchTemplateOutput = searchTemplateHb(searchTemplateVars);
3497    
3498    return searchTemplateOutput;
3499}
3500
3501Mfe.prototype.executeSiteAction = function(action, params) {
3502
3503	if (action == 'search') {
3504            var pageNo = 1;
3505            if (typeof params.page !== 'undefined') {
3506                pageNo = params.page;
3507            }
3508
3509            let searchTemplate = '/search?q={{query}}&p={{page}}';
3510            if (this.siteConfig.searchTemplate && this.siteConfig.searchTemplate.length > 0) {
3511                searchTemplate = this.siteConfig.searchTemplate;
3512            }
3513            
3514            let searchTemplateVars = {
3515                'query': encodeURIComponent(params.query),
3516                'page': pageNo
3517            };
3518            
3519            let searchTemplateHb = Handlebars.compile(searchTemplate);
3520            let searchTemplateOutput = searchTemplateHb(searchTemplateVars);
3521	    
3522            let linkProcessed = this.processUrl(searchTemplateOutput);
3523            if (linkProcessed.result === 'navigate') {
3524                window.location.href = linkProcessed.url;
3525                return;
3526            }
3527            
3528            this.handleLink(linkProcessed.path, linkProcessed.queryParams, linkProcessed.hash);
3529	}
3530};
3531
3532Mfe.prototype.translateUrl = function(url) {
3533	for (var j = 0; j < this.translateDomainKeys.length; j++) {
3534		var translateDomainKey = this.translateDomainKeys[j];
3535		if (url.substring(0, translateDomainKey.length) == translateDomainKey) {
3536			return this.translateDomainMapping[translateDomainKey] + url.substring(translateDomainKey.length);
3537		}
3538	}
3539	
3540	return url;
3541};
3542
3543Mfe.prototype.initScript = function(scriptName) {
3544	var self = this;
3545	
3546	var beforeEl = document.getElementsByTagName('script')[0];
3547	var scriptEl = document.createElement('script');
3548	scriptEl.async=1;
3549	scriptEl.src='/static/js/libs/init/' + scriptName + '.js';
3550	scriptEl.onload = function(){
3551		self.scripts[scriptName] = {
3552			'loaded': true
3553		};
3554		
3555		if (scriptName == 'share-selected-text') {
3556			self.loadShareSelectedText();
3557		}
3558	}
3559	beforeEl.parentNode.insertBefore(scriptEl,beforeEl);
3560};
3561
3562Mfe.prototype.on = function(eventName, cb) {
3563	if (typeof this.triggers[eventName] === 'undefined') {
3564		this.triggers[eventName] = [];
3565	}
3566	
3567	this.triggers[eventName].push(cb);
3568};
3569
3570Mfe.prototype.trigger = function(eventName, ...args) {
3571	if (typeof this.triggers[eventName] == 'undefined') {
3572		return;
3573	}
3574	
3575	var cbs = this.triggers[eventName];
3576	for (var i = 0; i < cbs.length; i++) {
3577		var cb = cbs[i];
3578		
3579		cb.apply(null, args);
3580	}
3581};
3582
3583Mfe.Classes = {};
3584Mfe.Plugins = {};
3585Mfe.Widgets = {};
3586Mfe.Layouts = {};
3587Mfe.Styles = {};
3588Mfe.Utils = {};
3589Mfe.Renderer = {};
3590Mfe.Templates = {};
3591Mfe.Locales = {};
3592Mfe.Locale = {};
3593
3594Mfe.Ui = {
3595    'attach': function() {
3596	
3597	$(mfe.outputElSelector).on('click', '.ui-slider .ui-slider-controls button', function (event) {
3598	    let el = event.target;
3599	    
3600	    let $el = $(el);
3601	    let $uiSliderEl = $el.parents('.ui-slider');
3602	    let action = $el.attr('data-action');
3603	    
3604	    if (action === 'previous') {
3605		Mfe.Ui.sliderMovePrevious($uiSliderEl, 'manual');
3606	    } else if (action === 'next') {
3607		Mfe.Ui.sliderMoveNext($uiSliderEl, 'manual');
3608	    }
3609	    
3610	});
3611	
3612	setInterval(() => {
3613	    
3614	    Mfe.Ui.checkSliders();
3615	    
3616	}, 500);
3617    },
3618    'checkSliders': function() {
3619	let $uiSliders = $('.ui-slider');
3620	
3621	if ($uiSliders.length > 0) {
3622	    for (let $uiSlider of $uiSliders) {
3623		Mfe.Ui.checkSlider($($uiSlider));
3624	    }
3625	}
3626    },
3627    'checkSlider': function($uiSlider) {
3628	let sliderInterval = 5000;
3629	let currentSlideIndex = 0;
3630	let lastSlideTs = null;
3631	
3632	
3633	if (typeof $uiSlider.attr('data-slide-index') !== 'undefined') {
3634	    currentSlideIndex = $uiSlider.attr('data-slide-index');
3635	} else {
3636	    $uiSlider.attr('data-slide-index', 0);
3637	    return;
3638	}
3639	
3640	if (typeof $uiSlider.attr('data-last-slide-ts') !== 'undefined') {
3641	    lastSlideTs = $uiSlider.attr('data-last-slide-ts');
3642	}
3643	
3644	
3645	
3646	let $totalSlideEls = $uiSlider.find(' > .wrapper > *');
3647	let totalSlides = $totalSlideEls.length;
3648	
3649	if (lastSlideTs === null) {
3650	    $uiSlider.attr('data-last-slide-ts', Date.now());
3651	    return;
3652	}
3653	
3654	let $childEls = $uiSlider.find('> .wrapper > *');
3655	let $currentChildEl = $($childEls[currentSlideIndex]);	
3656	let cssSlideDuration = window.getComputedStyle($currentChildEl[0]).getPropertyValue('--slider-slide-duration');
3657	if (cssSlideDuration.length > 0) {
3658	    sliderInterval = parseInt(cssSlideDuration);
3659	}
3660	
3661	if (Date.now() - lastSlideTs <= sliderInterval) {
3662	    return;
3663	}
3664	
3665
3666	
3667	let autoSlideNext = window.getComputedStyle($currentChildEl[0]).getPropertyValue('--slider-auto-slide-next');
3668	if (autoSlideNext === '0') {
3669	    return;
3670	}
3671	
3672	// Perform next slide
3673	Mfe.Ui.sliderMoveNext($uiSlider, 'auto');	
3674    },
3675    'sliderMoveNext': function(sliderEl, mode) {
3676	let $childEls = sliderEl.find('> .wrapper > *');
3677	let childAmount = $childEls.length;
3678	let currentIndex = sliderEl.attr('data-slide-index');
3679	//console.log('child els', $childEls.length);
3680	
3681	if (currentIndex === null || typeof currentIndex === 'undefined') {
3682	    //console.log('current index is null or undefined');
3683	    currentIndex = 0;
3684	} else {
3685	    currentIndex = parseInt(currentIndex);
3686	}
3687	    
3688	if (currentIndex + 1 > childAmount - 1) {
3689	    //console.log('current index + 1 is larger than 4');
3690	    currentIndex = 0;
3691	} else {
3692	    currentIndex++;
3693	}
3694	
3695	//console.log('setting slider index to ', currentIndex);
3696	
3697	//console.log('data slide index');
3698	//console.log(currentIndex);
3699	
3700	
3701	
3702	sliderEl[0].style.setProperty('--slider-index', currentIndex);
3703	
3704	sliderEl.attr('data-slide-index', currentIndex);
3705	sliderEl.attr('data-last-slide-ts', Date.now());
3706    },
3707    'sliderMovePrevious': function(sliderEl, mode) {
3708	let $childEls = sliderEl.find('> .wrapper > *');
3709	let childAmount = $childEls.length;
3710	let currentIndex = sliderEl.attr('data-slide-index');
3711	if (currentIndex === null || typeof currentIndex === 'undefined') {
3712	    currentIndex = 0;
3713	}
3714	
3715	if (currentIndex === 0) {
3716	    currentIndex = childAmount - 1;
3717	} else {
3718	    currentIndex--;
3719	}
3720	
3721	if (currentIndex < 0) {
3722	    currentIndex = 0;
3723	}
3724	
3725	//console.log('setting slider index to ', currentIndex);
3726	
3727	
3728	sliderEl[0].style.setProperty('--slider-index', currentIndex);
3729	
3730	sliderEl.attr('data-slide-index', currentIndex);
3731	sliderEl.attr('data-last-slide-ts', Date.now());
3732    },
3733}
3734Mfe.Api = {
3735	'Sites': {
3736		'query': function(siteName, queryObj, cb) {
3737			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/query', 'POST', null, null, queryObj, true);
3738			var apiResponse = apiRequest.execute(
3739				function(data) {
3740					var queryResult = new Mfe.Classes.QueryResult(data);
3741					
3742					if (queryObj.type == 'blogposts') {
3743						Mfe.ApiCache.addItems('blogpost', queryResult.getResults());
3744					} else if (queryObj.type == 'media') {
3745						Mfe.ApiCache.addItems('media', queryResult.getResults());
3746					} else if (queryObj.type == 'events') {
3747						Mfe.ApiCache.addItems('event', queryResult.getResults());
3748					}
3749					cb(true, queryResult);
3750				}, 
3751				function(){
3752					cb(false);
3753				}
3754			);
3755	
3756			if (apiResponse === null || apiResponse === false) {
3757				return null;
3758			}
3759			
3760			var queryResult = new Mfe.Classes.QueryResult(apiResponse);
3761			return queryResult;
3762		}
3763	},
3764	'Calendars': {
3765		
3766	},
3767	'UserGroups': {
3768		'getTeam': function(siteName, teamId, cb) {
3769			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/usergroups/team/' + Mfe.Utils.Js.encodeUriParam(teamId), 'GET', null, null, null, true);
3770			var apiResponse = apiRequest.execute(
3771				function(data) {
3772					var event = new Mfe.Classes.SiteUserGroupTeam(data);
3773					cb(true, event);
3774				}, 
3775				function() {
3776					cb(false);
3777				}
3778			);
3779	
3780			if (apiResponse === null || apiResponse === false) {
3781				return null;
3782			}
3783			
3784			var event = new Mfe.Classes.SiteUserGroupTeam(apiResponse);
3785			return event;
3786		}
3787	},
3788	'Streams': {
3789		'getMedia': function(siteName, streamIds, type, subType, amount, cursorId, cb) {
3790			
3791			var queryObj = {
3792				'type': 'media',
3793				'amount': amount,
3794				'mode': 'last',
3795				'filters': [
3796					{ 'streams': streamIds }
3797				]
3798			};
3799			
3800			if (isEmpty(cursorId) === false) {
3801				queryObj.mode = 'before';
3802				queryObj.after = cursorId;
3803			} else {
3804				delete queryObj.cursor;
3805			}
3806
3807			var querySiteName;
3808			if (Mfe.ApiRequest.dummyDataEnabled === true && Mfe.ApiRequest.dummyData.streamIds.length > 0) {
3809				queryObj.filters[0].streams = Mfe.ApiRequest.dummyData.streamIds;
3810				querySiteName = Mfe.ApiRequest.dummyData.siteName;
3811			} else {
3812				querySiteName = siteName;
3813			}
3814			
3815			return Mfe.Api.Sites.query(
3816				querySiteName,
3817				queryObj,
3818				function(result, response) {
3819					cb(result, response);
3820				}
3821			);
3822		}
3823	},
3824	'StreamMedia': {
3825		'get': function(siteName, mediaId, cb) {
3826			var cachedMedia = Mfe.ApiCache.getItem('media', mediaId);
3827			if (Mfe.ApiRequest.fromApiBundle === false && Mfe.ApiRequest.cacheEnabled === true && isEmpty(cachedMedia) === false && cachedMedia !== false) {
3828				return cachedMedia;
3829			}
3830			
3831			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/streammedia/' + Mfe.Utils.Js.encodeUriParam(mediaId), 'GET', null, null, null, true);
3832			var apiResponse = apiRequest.execute(
3833				function(data) {
3834					var media = new Mfe.Classes.ContentMedia(data);
3835					//if (queryObj.type == 'blogposts') {
3836						//Create.API.Cache.addPosts(queryResult.getResults());
3837					//}
3838					cb(true, media);
3839				}, 
3840				function(){
3841					cb(false);
3842				}
3843			);
3844	
3845			if (apiResponse === null || apiResponse === false) {
3846				return null;
3847			}
3848			
3849			var media = new Mfe.Classes.ContentMedia(apiResponse);
3850			return media;
3851		}
3852	},
3853	'ExternalDatasource': {
3854		'get': function(siteName, externalDataSource, cb) {
3855			//var cachedMedia = Mfe.ApiCache.getItem('media', mediaId);
3856			//if (Mfe.ApiRequest.fromApiBundle === false && Mfe.ApiRequest.cacheEnabled === true && isEmpty(cachedMedia) === false && cachedMedia !== false) {
3857				//return cachedMedia;
3858			//}
3859			
3860			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/externaldatasource/' + Mfe.Utils.Js.encodeUriParam(externalDataSource), 'GET', null, null, null, true);
3861			var apiResponse = apiRequest.execute(
3862				function(data) {
3863					var media = new Mfe.Classes.ContentExternalData(data);
3864					//if (queryObj.type == 'blogposts') {
3865						//Create.API.Cache.addPosts(queryResult.getResults());
3866					//}
3867					cb(true, media);
3868				}, 
3869				function(){
3870					cb(false);
3871				}
3872			);
3873			if (apiResponse === null || apiResponse === false) {
3874				return null;
3875			}
3876			
3877			var media = new Mfe.Classes.ContentExternalData(apiResponse);
3878			return media;
3879		}
3880	},
3881	'Blogs': {
3882		'getPosts': function(siteName, blogIds, amount, offset, cursorId, cb) {
3883			var queryObj = {
3884				'type': 'blogposts',
3885				'amount': amount,
3886				'mode': 'last',
3887				'offset': offset,
3888				'filters': [
3889					{ 'postGroups': blogIds }
3890				]
3891			};
3892			
3893			if (isEmpty(cursorId) === false && cursorId != 0) {
3894				queryObj.mode = 'before';
3895				queryObj.before = cursorId;
3896				
3897				delete queryObj.offset;
3898			}
3899			
3900			if (isEmpty(blogIds) === true) {
3901				delete queryObj.filters[0].postGroups;
3902			}
3903			
3904			var querySiteName;
3905			if (Mfe.ApiRequest.dummyDataEnabled === true && Mfe.ApiRequest.dummyData.postGroupIds.length > 0) {
3906				queryObj.filters[0].postGroups = Mfe.ApiRequest.dummyData.postGroupIds;
3907				querySiteName = Mfe.ApiRequest.dummyData.siteName;
3908			} else {
3909				querySiteName = siteName;
3910			}
3911			
3912			return Mfe.Api.Sites.query(
3913				querySiteName,
3914				queryObj,
3915				function(result, response) {
3916					
3917					if (result !== true) {
3918						cb(result, response);
3919						return;
3920					} 
3921					
3922
3923					var queryResult = response;
3924					var posts = queryResult.getResults();
3925					Mfe.ApiCache.addItems('blogpost', posts);
3926
3927					cb(result, response);
3928				}
3929			);
3930		}
3931	},
3932	'Calendars': {
3933		'getEvents': function(siteName, calendarIds, amount, cursor, cb) {
3934			var queryObj = {
3935				'type': 'events',
3936				'amount': amount,
3937				'mode': 'upcoming',
3938				'filters': [
3939					{ 'calendars': calendarIds }
3940				]
3941			};
3942
3943			return Mfe.Api.Sites.query(
3944				siteName,
3945				queryObj,
3946				function(result, response) {
3947					cb(result, response);
3948				}
3949			);
3950		}
3951	},
3952	'CalendarEvent': {
3953		'get': function(siteName, eventId, cb) {
3954			var cachedEvent = Mfe.ApiCache.getItem('event', eventId);
3955			if (Mfe.ApiRequest.fromApiBundle === false && Mfe.ApiRequest.cacheEnabled === true && isEmpty(cachedEvent) === false) {
3956				return cachedEvent;
3957			}
3958			
3959			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/events/' + Mfe.Utils.Js.encodeUriParam(eventId), 'GET', null, null, null, true);
3960			var apiResponse = apiRequest.execute(
3961				function(data) {
3962					var event = new Mfe.Classes.ContentEvent(data);
3963					//if (queryObj.type == 'blogposts') {
3964						//Create.API.Cache.addPosts(queryResult.getResults());
3965					//}
3966					cb(true, event);
3967				}, 
3968				function(){
3969					cb(false);
3970				}
3971			);
3972	
3973			if (apiResponse === null || apiResponse === false) {
3974				return null;
3975			}
3976			
3977			var event = new Mfe.Classes.ContentEvent(apiResponse);
3978			return event;
3979		}
3980	},
3981	'BlogPosts': {
3982		'get': function(siteName, blogPostId, cb) {
3983			
3984			var querySiteName;
3985			if (Mfe.ApiRequest.dummyDataEnabled === true && Mfe.ApiRequest.dummyData.siteName.length > 0) {
3986				querySiteName = Mfe.ApiRequest.dummyData.siteName;
3987			} else {
3988				querySiteName = siteName;
3989			}
3990			
3991			var actualId;
3992			var actualIdIndex = blogPostId.lastIndexOf('-');
3993			if (actualIdIndex > -1) {
3994				actualId = blogPostId.substring(actualIdIndex + 1, blogPostId.length);
3995			} else {
3996				actualId = blogPostId;
3997			}
3998			
3999			var cachedBlogPost = Mfe.ApiCache.getItem('blogpost', actualId);
4000			if (Mfe.ApiRequest.fromApiBundle === false && Mfe.ApiRequest.cacheEnabled === true && isEmpty(cachedBlogPost) === false) {
4001				return cachedBlogPost;
4002			}
4003			
4004			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(querySiteName) + '/blogposts/' + Mfe.Utils.Js.encodeUriParam(blogPostId), 'GET', null, null, null, true);
4005			var apiResponse = apiRequest.execute(
4006				function(data) {
4007					var blogPost = Mfe.Classes.ContentPost.instantiate(data);
4008					//if (queryObj.type == 'blogposts') {
4009						//Create.API.Cache.addPosts(queryResult.getResults());
4010					//}
4011					cb(true, blogPost);
4012				}, 
4013				function(){
4014					cb(false);
4015				}
4016			);
4017	
4018			if (apiResponse === null) {
4019				return null;
4020			} else if (apiResponse === false) {
4021				return false;
4022			}
4023			
4024			var blogPost = Mfe.Classes.ContentPost.instantiate(apiResponse);
4025			return blogPost;
4026		},
4027		'getByTags': function(siteName, tags, amount, offset, cursorId, cb) {
4028			var queryObj = {
4029				'type': 'blogposts',
4030				'amount': amount,
4031				'mode': 'last',
4032				'offset': offset,
4033				'filters': [
4034					{ 'tags': tags }
4035				]
4036			};
4037			
4038			if (isEmpty(cursorId) === false && cursorId != 0) {
4039				queryObj.mode = 'before';
4040				queryObj.before = cursorId;
4041				
4042				delete queryObj.offset;
4043			}
4044			
4045			var querySiteName;
4046			if (Mfe.ApiRequest.dummyDataEnabled === true && Mfe.ApiRequest.dummyData.postGroupIds.length > 0) {
4047				queryObj.filters[0].postGroups = Mfe.ApiRequest.dummyData.postGroupIds;
4048				querySiteName = Mfe.ApiRequest.dummyData.siteName;
4049			} else {
4050				querySiteName = siteName;
4051			}
4052			
4053			return Mfe.Api.Sites.query(
4054				querySiteName,
4055				queryObj,
4056				function(result, response) {
4057					
4058					if (result !== true) {
4059						cb(result, response);
4060						return;
4061					} 
4062					
4063
4064					var queryResult = response;
4065					var posts = queryResult.getResults();
4066					Mfe.ApiCache.addItems('blogpost', posts);
4067
4068					cb(result, response);
4069				}
4070			);
4071		},
4072		'search': function(siteName, query, tags, authors, storylines, amount, page, cursorId, cb) {
4073			var queryFilter = {
4074				'query': query,
4075				'tags': tags,
4076				'authors': authors,
4077				'storylines': storylines
4078			};
4079			
4080			if (typeof page == 'undefined') {
4081				page = 1;
4082			}
4083			
4084			var queryObj = {
4085				'type': 'blogposts',
4086				'amount': amount,
4087				'mode': 'page',
4088				'page': page,
4089				'filters': [
4090					queryFilter
4091				]
4092			};
4093
4094			return Mfe.Api.Sites.query(
4095				siteName,
4096				queryObj,
4097				function(result, response) {
4098					cb(result, response);
4099				}
4100			);
4101		},
4102		'searchTest': function(siteName, cb) {
4103			var queryObj = {
4104				'type': 'blogposts',
4105				'amount': 3,
4106				'mode': 'page',
4107				'page': 1,
4108				'includeUrls': true
4109			};
4110
4111			return Mfe.Api.Sites.query(
4112				siteName,
4113				queryObj,
4114				function(result, response) {
4115					cb(result, response);
4116				}
4117			);
4118		}
4119	},
4120	'Forms': {
4121		'get': function(siteName, formId, cb) {
4122			
4123			var cachedForm = Mfe.ApiCache.getItem('form', formId);
4124			if (Mfe.ApiRequest.fromApiBundle === false && Mfe.ApiRequest.cacheEnabled === true && isEmpty(cachedForm) === false) {
4125				//return cachedForm;
4126			}
4127			
4128			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/forms/' + Mfe.Utils.Js.encodeUriParam(formId), 'GET', null, null, null, true);
4129			var apiResponse = apiRequest.execute(
4130				function(data) {
4131					var form = new Mfe.Classes.ContentForm(data);
4132					//if (queryObj.type == 'blogposts') {
4133						//Create.API.Cache.addPosts(queryResult.getResults());
4134					//}
4135					cb(true, form);
4136				}, 
4137				function(){
4138					cb(false);
4139				}
4140			);
4141	
4142			if (apiResponse === null) {
4143				return null;
4144			} else if (apiResponse === false) {
4145				return false;
4146			}
4147			
4148			var form = new Mfe.Classes.ContentForm(apiResponse);
4149			return form;
4150		},
4151		'submit': function(siteName, formId, formData, cb) {
4152			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/forms/' + Mfe.Utils.Js.encodeUriParam(formId) + '/submit', 'POST', null, formData, null, false);
4153			apiRequest.execute(
4154				function(data) {
4155					cb(true);
4156				}, 
4157				function(errors) {
4158					cb(false, errors);
4159				}
4160			);
4161		}
4162	},
4163	'ContentSet': {
4164		'get': function(siteName, contentSetId, cb) {
4165			
4166			var cachedForm = Mfe.ApiCache.getItem('contentSet', contentSetId);
4167			if (Mfe.ApiRequest.fromApiBundle === false && Mfe.ApiRequest.cacheEnabled === true && isEmpty(cachedForm) === false) {
4168				//return cachedForm;
4169			}
4170			
4171			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/contentsets/' + Mfe.Utils.Js.encodeUriParam(contentSetId), 'GET', null, null, null, true);
4172			var apiResponse = apiRequest.execute(
4173				function(data) {
4174					var contentSet = new Mfe.Classes.ContentSet(data);
4175					var results = contentSet.getResults();
4176					for (var i = 0; i < results.length; i++) {
4177						var result = results[i];
4178						if(result.class == 'content\posts\blog') {
4179							Mfe.ApiCache.addItems('blogpost', [result]);
4180						}
4181					}
4182					
4183					cb(true, contentSet);
4184				}, 
4185				function(){
4186					cb(false);
4187				}
4188			);
4189	
4190			if (apiResponse === null) {
4191				return null;
4192			} else if (apiResponse === false) {
4193				return false;
4194			}
4195			
4196			var contentSet = new Mfe.Classes.ContentSet(apiResponse);
4197			return contentSet;
4198		}
4199	},
4200	'Storyline': {
4201		'get': function(siteName, storylineId, cb) {
4202			
4203			var cachedStoryline = Mfe.ApiCache.getItem('storyline', storylineId);
4204			if (Mfe.ApiRequest.fromApiBundle === false && Mfe.ApiRequest.cacheEnabled === true && isEmpty(cachedStoryline) === false) {
4205				return cachedStoryline;
4206			}
4207			
4208			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/storylines/' + Mfe.Utils.Js.encodeUriParam(storylineId), 'GET', null, null, null, true);
4209			var apiResponse = apiRequest.execute(
4210				function(data) {
4211					var storyline = new Mfe.Classes.SiteStoryline(data);
4212					var results = storyline.getResults();
4213					for (var i = 0; i < results.length; i++) {
4214						var result = results[i];
4215						if(result.class == 'content\posts\blog') {
4216							Mfe.ApiCache.addItems('blogpost', [result]);
4217						}
4218					}
4219					
4220					cb(true, storyline);
4221				}, 
4222				function(){
4223					cb(false);
4224				}
4225			);
4226	
4227			if (apiResponse === null) {
4228				return null;
4229			} else if (apiResponse === false) {
4230				return false;
4231			}
4232			
4233			var storyline = new Mfe.Classes.SiteStoryline(apiResponse);
4234			return storyline;
4235		}
4236	},
4237	'CmsPages': {
4238		'get': function(siteName, pagePath, cb) {
4239			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/cmspages', 'GET', { 'path': pagePath }, null, null, true);
4240			var apiResponse = apiRequest.execute(
4241				function(data) {
4242					var blogPost = Mfe.Classes.ContentPost.instantiate(data);
4243					//if (queryObj.type == 'blogposts') {
4244						//Create.API.Cache.addPosts(queryResult.getResults());
4245					//}
4246					cb(true, blogPost);
4247				}, 
4248				function(){
4249					cb(false);
4250				}
4251			);
4252	
4253			if (apiResponse === null) {
4254				return null;
4255			} else if (apiResponse === false) {
4256				return false;
4257			}
4258			
4259			var blogPost = Mfe.Classes.ContentPost.instantiate(apiResponse);
4260			return blogPost;
4261		}
4262	},
4263	'MediaDistribution': {
4264		'authenticate': function(username, pwd, cb) {
4265			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/mediadistribution/auth', 'POST', null, null, null, true);
4266			var apiResponse = apiRequest.execute(
4267				function(data) {
4268					//cb(true, contentSet);
4269				}, 
4270				function(){
4271					//cb(false);
4272				}
4273			);
4274	
4275			if (apiResponse === null) {
4276				return null;
4277			} else if (apiResponse === false) {
4278				return false;
4279			}
4280			
4281			var contentSet = new Mfe.Classes.ContentSet(apiResponse);
4282			return contentSet;
4283		},
4284		'getPlaylists': function(siteName, cb) {
4285			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/mediadistribution/playlists', 'GET', null, null, null, true);
4286			var apiResponse = apiRequest.execute(
4287				function(data) {
4288					
4289					var playlists = [];
4290					
4291					for (var i = 0; i < data.length; i++) {
4292						var playlistObj = data[i];
4293						playlists.push(new Mfe.Classes.ContentMmdPlaylist(playlistObj));
4294					}
4295					
4296					
4297					/*var contentSet = new Mfe.Classes.ContentSet(data);
4298					var results = contentSet.getResults();
4299					for (var i = 0; i < results.length; i++) {
4300						var result = results[i];
4301						if(result.class == 'content\posts\blog') {
4302							Mfe.ApiCache.addItems('blogpost', [result]);
4303						}
4304					}*/
4305					
4306					cb(true, playlists);
4307				}, 
4308				function(){
4309					cb(false);
4310				}
4311			);
4312	
4313			if (apiResponse === null) {
4314				return null;
4315			} else if (apiResponse === false) {
4316				return false;
4317			}
4318			
4319			var contentSet = new Mfe.Classes.ContentSet(apiResponse);
4320			return contentSet;
4321		},
4322		'getMedia': function(siteName, mediaId, cb) {
4323			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/mediadistribution/media/' + Mfe.Utils.Js.encodeUriParam(mediaId), 'GET', null, null, null, false);
4324			var apiResponse = apiRequest.execute(
4325				function(data) {
4326					
4327					cb(true, new Mfe.Classes.ContentMmdMedia(data));
4328				}, 
4329				function(){
4330					cb(false);
4331				}
4332			);
4333	
4334			if (apiResponse === null) {
4335				return null;
4336			} else if (apiResponse === false) {
4337				return false;
4338			}
4339			
4340			var media = new Mfe.Classes.ContentMmdMedia(apiResponse);
4341			return media;
4342		},
4343		'getRentalStatus': function(siteName, rentalId, cb) {
4344			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/mediadistribution/rentalstatus/' + Mfe.Utils.Js.encodeUriParam(rentalId), 'GET', null, null, null, false);
4345			var apiResponse = apiRequest.execute(
4346				function(data) {
4347					cb(true, data);
4348				}, 
4349				function(){
4350					cb(false);
4351				}
4352			);
4353	
4354			if (apiResponse === null) {
4355				return null;
4356			} else if (apiResponse === false) {
4357				return false;
4358			}
4359			
4360			var media = new Mfe.Classes.ContentMmdMedia(apiResponse);
4361			return media;
4362		},
4363		'activatePayForward': function(siteName, rentalId, cb) {
4364			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/mediadistribution/rental/' + Mfe.Utils.Js.encodeUriParam(rentalId) + '/activate', 'POST', null, null, null, false);
4365			var apiResponse = apiRequest.execute(
4366				function(data) {
4367					cb(true, data);
4368				}, 
4369				function(){
4370					cb(false);
4371				}
4372			);
4373	
4374			if (apiResponse === null) {
4375				return null;
4376			} else if (apiResponse === false) {
4377				return false;
4378			}
4379			
4380			var media = new Mfe.Classes.ContentMmdMedia(apiResponse);
4381			return media;
4382		},
4383		'requestMediaAccess': function(siteName, mediaId, rentalCode, fpHash, cb) {
4384			var getParams = {
4385				'fp': fpHash
4386			};
4387			
4388			if (typeof rentalCode !== 'undefined' && rentalCode !== null) {
4389				getParams.t = rentalCode;
4390			}
4391			
4392			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/mediadistribution/media/' + Mfe.Utils.Js.encodeUriParam(mediaId) + '/access', 'GET', getParams, null, null, false);
4393			var apiResponse = apiRequest.execute(
4394				function(data) {
4395					cb(true);
4396				}, 
4397				function(){
4398					cb(false);
4399				}
4400			);
4401	
4402			if (apiResponse === null) {
4403				return null;
4404			} else if (apiResponse === false) {
4405				return false;
4406			}
4407			
4408			var contentSet = new Mfe.Classes.ContentSet(apiResponse);
4409			return contentSet;
4410		},
4411		'rent': function(siteName, pageLanguage, email, rentalProductId, redirectUrl, type, payForwardName, payForwardRecipientEmail, payForwardRecipientName, payForwardNote, cb) {
4412			var rentObj = {
4413				'language': pageLanguage,
4414				'email': email,
4415				'rentalProductId': rentalProductId,
4416				'redirectUrl': redirectUrl,
4417				'type': type,
4418				'name': payForwardName,
4419				'pfEmail': payForwardRecipientEmail,
4420				'pfName': payForwardRecipientName,
4421				'pfNote': payForwardNote
4422			};
4423			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/mediadistribution/rent', 'POST', null, rentObj, null, false);
4424			var apiResponse = apiRequest.execute(
4425				function(data) {
4426					cb(true, data);
4427				}, 
4428				function(){
4429					cb(false);
4430				}
4431			);
4432	
4433			if (apiResponse === null) {
4434				return null;
4435			} else if (apiResponse === false) {
4436				return false;
4437			}
4438			
4439			var contentSet = new Mfe.Classes.ContentSet(apiResponse);
4440			return contentSet;
4441		}
4442	},
4443	'DatasetViews': {
4444		'get': function(siteName, datasetViewId, cb) {
4445			
4446			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/datasets/views/' + Mfe.Utils.Js.encodeUriParam(datasetViewId), 'GET', null, null, null, true);
4447			var apiResponse = apiRequest.execute(
4448				function(data) {
4449					var datasetView = new Mfe.Classes.DatasetView(data);
4450					
4451					cb(true, datasetView);
4452				}, 
4453				function(){
4454					cb(false);
4455				}
4456			);
4457	
4458			if (apiResponse === null) {
4459				return null;
4460			} else if (apiResponse === false) {
4461				return false;
4462			}
4463			
4464			var datasetView = new Mfe.Classes.DatasetView(apiResponse);
4465			return datasetView;
4466		}
4467	},
4468	'DatasetRecord': {
4469		'lookup': function(siteName, datasetTableId, lookupId, cb) {
4470			
4471			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/datasets/lookup/' + Mfe.Utils.Js.encodeUriParam(datasetTableId) + '/' +Mfe.Utils.Js.encodeUriParam(lookupId) , 'GET', null, null, null, true);
4472			var apiResponse = apiRequest.execute(
4473				function(data) {
4474					var datasetRecordLookup = new Mfe.Classes.DatasetRecordLookup(data);
4475					cb(true, datasetRecordLookup);
4476				}, 
4477				function(){
4478					cb(false);
4479				}
4480			);
4481	
4482			if (apiResponse === null) {
4483				return null;
4484			} else if (apiResponse === false) {
4485				return false;
4486			}
4487			
4488			var datasetRecordLookup = new Mfe.Classes.DatasetRecordLookup(apiResponse);
4489			return datasetRecordLookup;
4490		}
4491	},
4492	'DatasetTable': {
4493		'search': function(siteName, datasetTableId, query, cb) {
4494
4495		    let postParams = {
4496			query: query
4497		    };
4498
4499		    let apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/datasets/search/' + Mfe.Utils.Js.encodeUriParam(datasetTableId) , 'POST', null, null, postParams, true);
4500		    let apiResponse = apiRequest.execute(
4501			function(data) {
4502			    let datasetTableSearchResults = new Mfe.Classes.DatasetTableSearchResults(data);
4503			    cb(true, datasetTableSearchResults);
4504			}, 
4505			function(){
4506			    cb(false);
4507			}
4508		    );
4509
4510		    if (apiResponse === null) {
4511			return null;
4512		    } else if (apiResponse === false) {
4513			return false;
4514		    }
4515
4516		    let datasetTableSearchResults = new Mfe.Classes.DatasetTableSearchResults(apiResponse);
4517		    return datasetTableSearchResults;
4518		}
4519	},
4520	'Donations': {
4521		'create': function(siteName, frequency, amount, userInfo, comment, destinationId, payTransactionCosts, paymentMethod, paymentIssuer, url, cb) {
4522			
4523			var donationObj = {
4524				'frequency': frequency,
4525				'amount': amount,
4526				'nameFirst': '',
4527				'nameLast': '',
4528				'email': '',
4529				'organization': '',
4530				'comment': '',
4531				'destinationId': null,
4532				'payTransactionCosts': payTransactionCosts,
4533				'paymentMethod': paymentMethod,
4534				'paymentIssuer': paymentIssuer,
4535				'url': url,
4536				'newsletter': '',
4537			};
4538			
4539			if (isEmpty(userInfo.newsletter) === true) {
4540				delete donationObj.newsletter;
4541			} else {
4542				donationObj.newsletter = userInfo.newsletter;
4543			}
4544			
4545			if (isEmpty(userInfo.nameFirst) === true) {
4546				delete donationObj.nameFirst;
4547			} else {
4548				donationObj.nameFirst = userInfo.nameFirst;
4549			}
4550						
4551			if (isEmpty(userInfo.nameLast) === true) {
4552				delete donationObj.nameLast;
4553			} else {
4554				donationObj.nameLast = userInfo.nameLast;
4555			}
4556			
4557			
4558			if (isEmpty(userInfo.email) === true) {
4559				delete donationObj.email;
4560			} else {
4561				donationObj.email = userInfo.email;
4562			}
4563			
4564			if (isEmpty(userInfo.organization) === true) {
4565				delete donationObj.organization;
4566			} else {
4567				donationObj.organization = userInfo.organization;
4568			}
4569			
4570			if (isEmpty(comment) === true) {
4571				delete donationObj.comment;
4572			} else {
4573				donationObj.comment = comment;
4574			}
4575			
4576			if (isEmpty(destinationId) === true) {
4577				delete donationObj.destinationId;
4578			} else {
4579				donationObj.destinationId = destinationId;
4580			}
4581			
4582			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/donations', 'POST', null, null, donationObj, true);
4583			apiRequest.execute(
4584				function(data) {
4585					cb(true, data);
4586				}, 
4587				function(){
4588					cb(false);
4589				}
4590			);
4591	
4592			return null;
4593		},
4594		'getStatus': function(siteName, reference, cb) {
4595			var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/donations/checkstatus/' + Mfe.Utils.Js.encodeUriParam(reference), 'GET', {}, null, null, true);
4596			var apiResponse = apiRequest.execute(
4597				function(data) {
4598					
4599					var status = data.status;
4600					
4601					cb(true, status);
4602				}, 
4603				function(){
4604					cb(false);
4605				}
4606			);
4607	
4608			if (apiResponse === null) {
4609				return null;
4610			} else if (apiResponse === false) {
4611				return false;
4612			}
4613			
4614			var status = apiResponse.status;
4615			return status;
4616		}
4617	},
4618        'Stats': {
4619            'sendPageView': function(siteName, path, queryParams, context, contextId, contextObject, cb) {
4620                var statObj = {
4621                    'type': 'pageview',
4622                    'path': path,
4623                    'queryParams': queryParams,
4624                    'context': {
4625                        'type': context,
4626                        'id': contextId
4627                    }
4628                }
4629
4630                var apiRequest = new Mfe.ApiRequest('/sites/' + Mfe.Utils.Js.encodeUriParam(siteName) + '/stats', 'POST', null, null, statObj, true);
4631                apiRequest.execute(
4632                        function(data) {
4633                            if (cb) {
4634                                cb(true, data);
4635                            }
4636                        }, 
4637                        function(){
4638                            if (cb) {
4639                                cb(false);
4640                            }
4641                        }
4642                );
4643            }
4644        }
4645};
4646Mfe.ApiCache = {
4647	'store': {},
4648	'itemStore': {},
4649	'addRequest': function(hash, response) {
4650		Mfe.ApiCache.store[hash] = response;
4651	},
4652	'addItems': function(type, items) {
4653		if (isEmpty(Mfe.ApiCache.itemStore[type]) === true) {
4654			Mfe.ApiCache.itemStore[type] = {};
4655		}
4656		
4657		for (var i = 0; i < items.length; i++) {
4658			var item = items[i];
4659			
4660			if (typeof item !== 'undefined' && typeof item.getId !== 'undefined') {
4661				Mfe.ApiCache.itemStore[type][item.getId()] = { 'item': item, 'ts': Date.now() };
4662			} else {
4663				
4664			}
4665		}
4666	},
4667	'getItem': function(type, id) {	
4668		if (Mfe.ApiRequest.cacheEnabled !== true) {
4669			return null;
4670		}
4671		
4672		if (isEmpty(Mfe.ApiCache.itemStore[type]) === true) {
4673			return null;
4674		}
4675		
4676		if (isEmpty(Mfe.ApiCache.itemStore[type][id]) === true) {
4677			return null;
4678		}
4679		
4680		return Mfe.ApiCache.itemStore[type][id].item;
4681	},
4682	'getRequestByHash': function(hash) {
4683		if (Mfe.ApiRequest.cacheEnabled !== true) {
4684			return null;
4685		}
4686		
4687		if (isEmpty(Mfe.ApiCache.store[hash]) === false) {
4688			return Mfe.ApiCache.store[hash];
4689		}
4690		
4691		return null;
4692	}
4693};
4694Mfe.ApiRequest = function(url, method, urlParams, postParams, postBody, cachable) {
4695	var self = this;
4696	
4697	this.relativeUrl = url;
4698	this.usePageLoader = false;
4699	this.timeout = 10;
4700	
4701	if (isNotEmpty(method)) {
4702		this.method = method;
4703	} else {
4704		this.method = 'GET';
4705	}
4706	
4707	if (isNotEmpty(urlParams)) {
4708		this.urlParams = urlParams;
4709	} else {
4710		this.urlParams = null;
4711	}
4712	
4713	if (isNotEmpty(postParams)) {
4714		this.postParams = postParams;
4715	} else {
4716		this.postParams = null;
4717	}
4718	
4719	if (isNotEmpty(postBody)) {
4720		this.postParams = null;
4721		this.postBody = JSON.stringify(postBody);
4722	} else {
4723		this.postBody = null;
4724	}
4725	
4726	this.cachable = cachable;
4727};
4728
4729Mfe.ApiRequest.domain = '';
4730Mfe.ApiRequest.baseUrl = '/api';
4731Mfe.ApiRequest.fromApiBundle = false;
4732Mfe.ApiRequest.cacheEnabled = true;
4733Mfe.ApiRequest.mfeInstance = null;
4734Mfe.ApiRequest.dummyData = {
4735	'siteName': '',
4736	'postGroupIds': [],
4737	'streamIds': [],
4738	'calendarIds': []
4739};
4740Mfe.ApiRequest.dummyDataEnabled = false;
4741Mfe.ApiRequest.activeRequests = {};
4742
4743Mfe.ApiRequest.createRequestHash = function(url, method, urlParams, postParams, postBody) {
4744	var requestObj = {
4745		'url': url,
4746		'method': method,
4747		'urlParams': urlParams,
4748		'postParams': postParams,
4749		'postBody': postBody
4750	};
4751
4752	var requestJson = JSON.stringify(requestObj);
4753	
4754	var requestHash = Mfe.Utils.MD5(requestJson);
4755	
4756	return requestHash;
4757};
4758
4759Mfe.ApiRequest.prototype.getRequestHash = function() {
4760	return Mfe.ApiRequest.createRequestHash(this.relativeUrl, this.method, this.urlParams, this.postParams, this.postBody);
4761};
4762
4763Mfe.ApiRequest.prototype.setUsePageLoader = function(value) {
4764	this.usePageLoader = value;
4765	
4766};
4767
4768Mfe.ApiRequest.prototype.setTimeout = function(value) {
4769	this.timeout = value;
4770};
4771
4772Mfe.ApiRequest.prototype.toObject = function() {
4773	return {
4774		'relativeUrl': this.relativeUrl,
4775		'method': this.method,
4776		'urlParams': this.urlParams,
4777		'postParams': this.postParams,
4778		'postBody': this.postBody
4779	};
4780};
4781
4782Mfe.ApiRequest.prototype.execute = function(callbackSuccess, callbackError, callbackProgress) {
4783	var self = this;
4784	
4785	var requestHash = Mfe.ApiRequest.createRequestHash(this.relativeUrl, this.method, this.urlParams, this.postParams, this.postBody);
4786
4787	var requestOptions = {
4788		'relativeUrl': this.relativeUrl,
4789		'method': this.method,
4790		'urlParams': this.urlParams,
4791		'postParams': this.postParams,
4792		'postBody': this.postBody,
4793	};
4794
4795	if (typeof MfeEnv !== 'undefined' && typeof MfeEnv.ApiRequest !== 'undefined') {
4796		mfe.addTiming('Executing API request');
4797		
4798		var response = MfeEnv.ApiRequest.getApiResponse(requestOptions);
4799		
4800		mfe.addTiming('Finished executing API request: ' + JSON.stringify(requestOptions));
4801		return response;
4802		
4803	}
4804	
4805	if (Mfe.ApiRequest.fromApiBundle === true) {
4806		
4807		// Check if this data is in the bundle
4808		var apiData = Mfe.ApiRequest.mfeInstance.getApiResponse(requestHash);
4809		if (apiData !== null) {
4810			return apiData;
4811		}
4812		
4813		Mfe.ApiRequest.mfeInstance.requestApiResponse(requestHash, requestOptions);
4814		
4815		return null;
4816	}
4817	
4818	if (isEmpty(this.cachable) === false && this.cachable === true) {
4819		var response = Mfe.ApiCache.getRequestByHash(requestHash);
4820		if (isEmpty(response) === false) {
4821			//callbackSuccess(response);
4822			return response;
4823		}
4824	}
4825	
4826	var url = Mfe.ApiRequest.baseUrl + this.relativeUrl;
4827	//var url = 'https://www.kinder-world.org/api' + this.relativeUrl;
4828
4829	var headers = {};
4830
4831	var requestId = Mfe.Utils.Text.generateString('abcdef0123456789', 24);
4832	
4833	if (isEmpty(this.urlParams) === false) {
4834		if (typeof this.urlParams == 'string') {
4835			url += '?' + Mfe.Utils.Js.encodeUriParam(this.urlParams);
4836		} else if (typeof this.urlParams == 'object') {
4837
4838			var urlParamKeys = Object.keys(this.urlParams);
4839			if (urlParamKeys.length > 0) {
4840				var urlParamsArr = [];
4841				for (var i = 0; i < urlParamKeys.length;i++) {
4842					var urlParamKey = urlParamKeys[i];
4843					urlParamsArr.push(urlParamKey + '=' + Mfe.Utils.Js.encodeUriParam(this.urlParams[urlParamKey]));
4844				}
4845				url += '?' + urlParamsArr.join('&');
4846			}
4847		}
4848	}
4849	
4850	var contentType = null;
4851	var hasFile = false;
4852	var postData = null;
4853	
4854
4855	var formData;
4856	if (this.postParams instanceof FormData) {
4857		formData = this.postParams;
4858		hasFile = true;
4859	} else if (isEmpty(this.postParams) === false) {
4860
4861		formData = new FormData();
4862		var postParamKeys = Object.keys(this.postParams);
4863		for (var i = 0; i < postParamKeys.length; i++) {
4864			var postParamKey = postParamKeys[i];
4865
4866			formData.append(postParamKey, this.postParams[postParamKey]);
4867			
4868			if (this.postParams[postParamKey] instanceof File) {
4869				hasFile = true;
4870			}
4871		}
4872		
4873		postData = formData;
4874	}
4875	
4876	if (hasFile === true) {
4877		contentType = false;
4878		postData = formData;
4879	} else {
4880		contentType = 'application/json';
4881		
4882		if (isEmpty(this.postParams) === false) {
4883			postData = JSON.stringify(this.postParams);
4884		}
4885	}
4886
4887	var ajaxOptions = {
4888		'id': requestId,
4889		'method': this.method,
4890		'data': postData,
4891		'contentType': contentType,
4892		'dataType' : 'json',
4893		'url' : url,
4894		'processData': false,
4895		'timeout': this.timeout * 1000,
4896		'headers': headers,
4897		'success' : function(data, statusText, xhr){
4898			var httpCode = xhr.status;
4899			
4900			if (httpCode >= 200 && httpCode < 300) {
4901				if (typeof callbackSuccess !== 'undefined') {
4902					
4903					if (isEmpty(self.cachable) === false && self.cachable === true) {
4904						Mfe.ApiCache.addRequest(requestHash, data.response);
4905					}
4906					
4907					if (isEmpty(data) === true || isEmpty(data.response) === true) {
4908						callbackSuccess(null);
4909					} else {
4910						callbackSuccess(data.response);
4911					}
4912					
4913					return;
4914				}
4915				return;
4916			}
4917			
4918			var errorData = null;
4919			if (isEmpty(data) === false && isEmpty(data.response) === false) {
4920				if (isEmpty(data.response.errors) === false) {
4921					errorData = data.response.errors;
4922				}
4923			}
4924			
4925			if (errorData === null) {
4926				errorData = data;
4927			}
4928			
4929			callbackError(errorData);
4930		},
4931		'error': function(xhr, arg1, arg2){
4932			if (arg1 == 'abort') {
4933				return;
4934			}
4935			
4936			var error;
4937			if (isEmpty(xhr.responseJSON) === false) {
4938				if (isEmpty(xhr.responseJSON.response) === false && isEmpty(xhr.responseJSON.response.errors) === false) {
4939					callbackError(xhr.responseJSON.response.errors);
4940					return;
4941				}
4942				
4943				if (isEmpty(xhr.responseJSON.response) === false) {
4944					callbackError(xhr.responseJSON.response);
4945					return;
4946				}
4947				
4948				callbackError(xhr.responseJSON);
4949				return;
4950			} else if (isEmpty(xhr.responseText) === false && xhr.responseText.length > 0) {
4951				// Create error for unexpected response
4952				/*error = new Create.Error(
4953					Create.Errors.Section.API,
4954					Create.Errors.Code.API_CLIENT_INVALID_JSON,
4955					'Invalid response',
4956					null,
4957					true
4958				);*/
4959				callbackError(error);
4960				return;
4961			}
4962			
4963			/*error = new Create.Error(
4964				Create.Errors.Section.API,
4965				Create.Errors.Code.API_CLIENT_INVALID_JSON,
4966				'Invalid response',
4967				null,
4968				true
4969			);*/
4970
4971			if (xhr.readyState == 0) {
4972				/*error = new Create.Error(
4973					Create.Errors.Section.API,
4974					Create.Errors.Code.API_CLIENT_NETWORK_ERROR,
4975					'Could not connect to Mobypicture. Do you have a working internet connection?',
4976					null,
4977					true
4978				);*/
4979			} else {
4980				/*if (xhr.readyState == 0) {
4981					error = new Create.Error(
4982						Create.Errors.Section.API,
4983						Create.Errors.Code.API_CLIENT_NETWORK_ERROR,
4984						'Could not connect to Mobypicture. Do you have a working internet connection?',
4985						null,
4986						true
4987					);
4988				}*/
4989			}
4990	
4991			callbackError(error);
4992		}
4993	};
4994	
4995	var self = this;
4996	
4997	ajaxOptions.xhr = function () {
4998		var customXhr = $.ajaxSettings.xhr();
4999		
5000		if (isEmpty(callbackProgress) === false) {
5001			if (customXhr.upload) {
5002				customXhr.upload.addEventListener(
5003					'progress',
5004					function (e) {
5005						var bytesDone = e.position || e.loaded;
5006						var bytesTotal = e.totalSize || e.total;
5007						
5008						var percentage = Math.round((100 / bytesTotal) * bytesDone);
5009						if (percentage > 100) {
5010							percentage = 100;
5011						}
5012						
5013						callbackProgress(percentage, bytesTotal, bytesDone);
5014					},
5015					false
5016				);
5017
5018				customXhr.onreadystatechange = function (event) {
5019					
5020					if (customXhr.readyState > 1) {
5021						callbackProgress(100, 0, 0);
5022					}
5023				};
5024		
5025			}
5026		}
5027
5028		return customXhr;
5029	}
5030	
5031	/*if (Mfe.JS.isFormData(this.postParams) === true) {
5032		ajaxOptions.cache =  false;
5033		ajaxOptions.contentType = false;
5034		ajaxOptions.processData = false;
5035	}*/
5036	
5037	if (isEmpty(this.postBody) === false) {
5038		ajaxOptions.data = this.postBody;
5039		ajaxOptions.contentType = 'application/json; charset=utf-8';
5040	}
5041	
5042	if (ajaxOptions.data === null) {
5043		delete ajaxOptions.data;
5044	}
5045	
5046	var xhr = $.ajax(ajaxOptions);
5047	
5048	return null;
5049};
5050
5051Mfe.Fonts = {
5052	'translateFontStyle': function(fontStyle) {
5053		var mapping = {
5054			'100': 'Thin',
5055			'200': 'Extra light',
5056			'300': 'Light',
5057			'400': 'Regular',
5058			'500': 'Medium',
5059			'600': 'Semi bold',
5060			'700': 'Bold',
5061			'800': 'Extra Bold',
5062			'900': 'Black'
5063		};
5064		
5065		var fontWeight = fontStyle.substring(0, 3);
5066		var isItalic = (fontStyle.substring(3, 4) == 'i' ? true : false);
5067		
5068		return mapping[fontWeight] + (isItalic === true ? ' italic' : '');
5069	},
5070	'generateColorCss': function(color) {
5071		if (typeof color == 'object') {
5072			return 'rgba(' + color.r + ', ' + color.g + ', ' + color.b + ', ' + color.a + ')';
5073		}
5074		
5075		return color;
5076	},
5077	'generateFontConfigCss': function(fontConfig, mfe) {
5078		var cssItems = [];
5079		
5080		if (isEmpty(mfe) === false) {
5081			mfe.wfLoader.registerFontFamilyByConfig(fontConfig);
5082		}
5083		
5084		if (isEmpty(fontConfig) === true) {
5085			return '';
5086		}
5087
5088		if (isEmpty(fontConfig.familyId) === false) {
5089			cssItems.push('font-family: ' + "'" + fontConfig.familyId + "'");
5090		}
5091		
5092		if (isEmpty(fontConfig.color) === false) {
5093			cssItems.push('color: ' + Mfe.Fonts.generateColorCss(fontConfig.color));
5094		}
5095
5096		if (isEmpty(fontConfig.size) === false) {
5097			cssItems.push('font-size: ' + fontConfig.size);
5098		}
5099
5100		if (isEmpty(fontConfig.lineHeight) === false) {
5101			cssItems.push('line-height: ' + fontConfig.lineHeight);
5102		}
5103
5104		if (isEmpty(fontConfig.transform) === false) {
5105			cssItems.push('text-transform: ' + fontConfig.transform);
5106		}
5107		
5108		return cssItems.join('; ');
5109	},
5110	'generateFontConfigCssVars': function(elementType, fontConfig, mfe) {
5111		var cssVarItems = [];
5112		
5113		if (isEmpty(mfe) === false) {
5114			mfe.wfLoader.registerFontFamilyByConfig(fontConfig);
5115		}
5116				
5117		var prepend = '--' + elementType + '-';
5118		if (isEmpty(fontConfig) === true) {
5119			return '';
5120		}
5121
5122		if (isEmpty(fontConfig.familyId) === false) {
5123			cssVarItems.push(prepend + 'font-family: ' + fontConfig.familyId);
5124		}
5125
5126		if (isEmpty(fontConfig.color) === false) {
5127			cssVarItems.push(prepend + 'font-color: ' + Mfe.Fonts.generateColorCss(fontConfig.color));
5128		}
5129
5130		if (isEmpty(fontConfig.size) === false) {
5131			cssVarItems.push(prepend + 'font-size: ' + fontConfig.size);
5132		}
5133
5134		if (isEmpty(fontConfig.lineHeight) === false) {
5135			cssVarItems.push(prepend + 'line-height: ' + fontConfig.lineHeight);
5136		}
5137
5138		if (isEmpty(fontConfig.transform) === false) {
5139			cssVarItems.push(prepend + 'text-transform: ' + fontConfig.transform);
5140		}
5141
5142		if (isEmpty(fontConfig.style) === false) {
5143			cssVarItems.push(prepend + 'font-weight: ' + fontConfig.style.substring(0, 3));
5144			
5145			if (fontConfig.style.substring(3, 4) == 'i') {
5146				cssVarItems.push(prepend + 'font-style: italic');
5147			}
5148		}
5149		
5150		return cssVarItems.join('; ');
5151	}
5152};
5153Mfe.Plugin = function(mfe, options) {
5154	this.mfe = mfe;
5155	this.options = options;
5156};
5157Mfe.Plugin.instantiate = function(mfe, name, options) {
5158	var plugin = new Mfe.Plugins[name](mfe, options);
5159	return plugin;
5160};
5161Mfe.Plugin.exists = function(name) {
5162	if (isEmpty(Mfe.Plugins[name]) === true) {
5163		return false;
5164	}
5165	
5166	return true;
5167};
5168Mfe.Widget = function(mfe, widgetId, options) {
5169	this.mfe = mfe;
5170	this.widgetId = widgetId;
5171	this.options = options;
5172	
5173	this.hasContent = false;
5174	
5175	
5176	this.widgetSettingsIndexed = {};
5177	
5178	// Index settings by key
5179	if (typeof Mfe.Widgets[this.name].getSettings !== 'undefined') {
5180		var widgetSettings = Mfe.Widgets[this.name].getSettings();
5181		if (Array.isArray(widgetSettings) === true && widgetSettings.slice) {
5182			for (var i = 0; i < widgetSettings.length; i++) {
5183				var widgetSetting = widgetSettings[i];
5184				this.widgetSettingsIndexed[widgetSetting.name] = widgetSetting;
5185			}
5186		} else {
5187			var widgetSettingsArray = [];
5188			for (var i = 0; i < widgetSettings.sections.length; i++) {
5189				var section = widgetSettings.sections[i];
5190				for (var j = 0; j < section.settings.length; j++) {
5191					var widgetSetting = section.settings[j];
5192					this.widgetSettingsIndexed[widgetSetting.name] = widgetSetting;
5193				}
5194			}
5195		}
5196	}
5197};
5198
5199Mfe.Widget.instantiate = function(mfe, widgetId, options) {
5200	var widget = new Mfe.Widgets[options.name](mfe, widgetId, options);
5201	return widget;
5202};
5203
5204Mfe.Widget.exists = function(name) {
5205	if (isEmpty(Mfe.Widgets[name]) === true) {
5206		return false;
5207	}
5208	
5209	return true;
5210};
5211
5212Mfe.Widget.getWidgetSettings = function (widgetName) {
5213	var baseSettings = {
5214		'sections': [
5215			{
5216				'name': 'general',  'title': 'General',  'settings': []
5217			},
5218			{ 
5219				'name': 'extra',  'title': 'Extra',  'settings': [
5220					{ "type": "text", "name": "widget-name", "default": '', "description": "Widget name" },
5221					{ "type": "text", "name": "widget-html-id", "default": '', "description": "Widget HTML ID" },
5222					{ "type": "text", "name": "widget-title", "default": '', "description": "Widget title" },
5223					{ "type": "text", "name": "widget-subtitle", "default": '', "description": "Widget subtitle" },
5224					{ "type": "text", "name": "widget-description", "default": '', "description": "Widget description" },
5225					{ "type": "text", "name": "widget-icon", "default": '', "description": "Widget icon" },
5226					{ "type": "text", "name": "widget-height", "default": '', "description": "Widget height" },
5227					{ "type": "text", "name": "widget-width", "default": '', "description": "Widget width" },
5228					{ "type": "text", "name": "widget-max-width", "default": '', "description": "Widget max width" },
5229					{ "type": "text", "name": "widget-padding", "default": '', "description": "Widget padding" },
5230					{ "type": "text", "name": "widget-margin-top", "default": '', "description": "Widget margin top" },
5231					{ "type": "text", "name": "widget-margin-bottom", "default": '', "description": "Widget margin bottom" },
5232					{ "type": "text", "name": "widget-margin-left", "default": '', "description": "Widget margin left" },
5233					{ "type": "text", "name": "widget-margin-right", "default": '', "description": "Widget margin right" },
5234					{ "type": "backgroundCssVars", "name": "widget-background", "default": '', "description": "Widget background" }
5235				] 
5236			},
5237			{
5238				'name': 'animation',  'title': 'Animation', 'icon': 'fas fa-fast-forward',  'settings': [
5239					{ "type": "boolean", "name": "animation-enabled", "default": false, "description": "Enable scroll animation" },
5240					{ "type": "options", "name": "animation-style", "default": "fade-in", "description": "Choose an scroll animation", "options": [ 
5241							{ "value": "fade-in", "label": "Fade - in" },
5242							{ "value": "fade-up", "label": "Fade - up" },
5243							{ "value": "fade-down", "label": "Fade - down" },
5244							{ "value": "fade-right", "label": "Fade - right" },
5245							{ "value": "fade-left", "label": "Fade - left" },
5246							{ "value": "fade-up-left", "label": "Fade - up left" },
5247							{ "value": "fade-up-right", "label": "Fade - up right" },
5248							{ "value": "fade-down-left", "label": "Fade - down left" },
5249							{ "value": "fade-down-right", "label": "Fade - down right" },
5250							{ "value": "flip-left", "label": "Flip - left" },
5251							{ "value": "flip-right", "label": "Flip - right" },
5252							{ "value": "flip-up", "label": "Flip - up" },
5253							{ "value": "flip-down", "label": "Flip - down" },
5254							{ "value": "zoom-in", "label": "Zoom - in" },
5255							{ "value": "zoom-in-up", "label": "Zoom - in up" },
5256							{ "value": "zoom-in-down", "label": "Zoom - in down" },
5257							{ "value": "zoom-in-left", "label": "Zoom - in left" },
5258							{ "value": "zoom-in-right", "label": "Zoom - in right" },
5259							{ "value": "zoom-out", "label": "Zoom - out" },
5260							{ "value": "zoom-out-up", "label": "Zoom - out up" },
5261							{ "value": "zoom-out-down", "label": "Zoom - out down" },
5262							{ "value": "zoom-out-left", "label": "Zoom - out left" },
5263							{ "value": "zoom-out-right", "label": "Zoom - out right" }
5264						]
5265					}
5266				]
5267			}
5268		]
5269	};
5270	
5271	var widgetSettings = Mfe.Widgets[widgetName].getSettings();
5272	
5273	if (Array.isArray(widgetSettings) === true && widgetSettings.splice) {
5274		// The settings are just an array
5275		for (var i = 0; i < widgetSettings.length; i++) {
5276			baseSettings.sections[0].settings.push(widgetSettings[i]);
5277		}
5278	} else {
5279		// Index widget settings
5280		var indexedWidgetSettings = {};
5281		for (var i = 0; i < widgetSettings.sections.length; i++) {
5282			var widgetSettingSection = widgetSettings.sections[i];
5283			indexedWidgetSettings[widgetSettingSection.name] = widgetSettingSection;
5284		}
5285		
5286		// Index widget settings
5287		var indexedBaseSettings = {};
5288		for (var i = 0; i < baseSettings.sections.length; i++) {
5289			var baseSettingSection = baseSettings.sections[i];
5290			indexedBaseSettings[baseSettingSection.name] = i;
5291		}
5292		
5293		for (var i = 0; i < widgetSettings.sections.length; i++) {
5294			var widgetSettingSection = widgetSettings.sections[i];
5295			if (typeof indexedBaseSettings[widgetSettingSection.name] == 'undefined') {
5296				baseSettings.sections.push(widgetSettingSection);
5297				indexedBaseSettings[widgetSettingSection.name] = baseSettings.sections.length - 1;
5298			} else {
5299				var settings = baseSettings.sections[indexedBaseSettings[widgetSettingSection.name]].settings;
5300				baseSettings.sections[indexedBaseSettings[widgetSettingSection.name]].settings = settings.concat(widgetSettingSection.settings);
5301			}
5302		}
5303		
5304		// Look for general section, if there is none, add it to the top
5305		/*var hasGeneralSection = false;
5306		var generalSectionIndex = 0;
5307		for (var i = 0; i < widgetSettings.sections.length; i++) {
5308			var widgetSection = widgetSettings.sections[i];
5309			if (widgetSection.name == 'general') {
5310				hasGeneralSection = true;
5311				generalSectionIndex = i;
5312				break;
5313			}
5314		}
5315		
5316		if (hasGeneralSection === false) {
5317			widgetSettings.sections.splice(0, 0, {  'name': 'general',  'title': 'General',  'settings': [] });
5318		}
5319		
5320		for (var i = 0; i < baseSettings.length; i++) {
5321			var baseSetting = baseSettings[i];
5322			widgetSettings.sections[generalSectionIndex].settings.splice(0 + i, 0, baseSetting);
5323		}*/
5324	}
5325	
5326	return baseSettings;
5327};
5328
5329Mfe.Widget.prototype.getSettingConfig = function (settingKey, defaultOnEmptyString) {
5330	var stringTypes = ['text', 'html'];
5331	
5332	var defaultValue;
5333	if (typeof this.widgetSettingsIndexed[settingKey].default !== 'undefined') {
5334		defaultValue = this.widgetSettingsIndexed[settingKey].default;
5335	} else {
5336		if (stringTypes.indexOf(this.widgetSettingsIndexed[settingKey].type) > -1) {
5337			defaultValue = '';
5338		} else {
5339			defaultValue = null;
5340		}
5341	}
5342	
5343	var config = this.getOption(settingKey, defaultValue);
5344	if (typeof defaultOnEmptyString !== 'undefined' && defaultOnEmptyString === true && config.length == 0) {
5345		return defaultValue;
5346	}
5347
5348	return config;
5349};
5350
5351Mfe.Widget.prototype.getOption = function (key, defaultValue, optionsObj) {
5352	if (isEmpty(this.options) === true || isEmpty(this.options[key]) === true) {
5353		return defaultValue;
5354	}
5355
5356	return this.options[key];
5357};
5358
5359Mfe.Widget.prototype.getOptionBoolean = function (key, defaultValue) {
5360	var value = this.getOption(key, defaultValue);
5361	if (value === false || value == 'false') {
5362		return false;
5363	} else {
5364		return true;
5365	}
5366};
5367
5368Mfe.Widget.prototype.getOptionInt = function (key, defaultValue) {
5369	var value = this.getOption(key, defaultValue);
5370	if (value.length === 0) {
5371		return defaultValue;
5372	}
5373	
5374	return parseInt(value);
5375};
5376
5377Mfe.Widget.prototype.setElementHtml = function(html) {
5378	if (this.$el) {
5379		this.$el.html(html);
5380		//alert('has contente is now trye!');
5381		return true;
5382	}
5383	
5384	return false;
5385};
5386
5387Mfe.Widget.prototype.getHtml = function(isPreload) {
5388	var cssClasses = [];
5389	var style = this.getOption('style', null);
5390	if (style !== null) {
5391		var styles = style.split(' ');
5392		for (var i = 0; i < styles.length; i++) {
5393			cssClasses.push('style-' + styles[i]);
5394		}
5395	}
5396	
5397	var widgetCssStyles = '';
5398	if (this.onRequestWidgetStyles) {
5399		widgetCssStyles = this.onRequestWidgetStyles();
5400	}
5401	
5402	var optionWidgetStyle = this.getOption('widget-style', '');
5403	
5404	var optionWidgetName = this.getOption('widget-name', '');
5405	var optionWidgetTitle = this.getOption('widget-title', '');
5406	var optionWidgetSubTitle = this.getOption('widget-subtitle', '');
5407	var optionWidgetDescription = this.getOption('widget-description', '');
5408	var optionWidgetBackground = this.getOption('widget-background', null);
5409	var optionWidgetIcon = this.getOption('widget-icon', '');
5410	var optionWidgetHeight = this.getOption('widget-height', '');
5411	var optionWidgetWidth = this.getOption('widget-width', '');
5412	var optionWidgetMaxWidth = this.getOption('widget-max-width', '');
5413	var optionWidgetPadding = this.getOption('widget-padding', '');
5414	var optionWidgetMarginTop = this.getOption('widget-margin-top', '');
5415	var optionWidgetMarginBottom = this.getOption('widget-margin-bottom', '');
5416	var optionWidgetMarginLeft = this.getOption('widget-margin-left', '');
5417	var optionWidgetMarginRight = this.getOption('widget-margin-right', '');
5418	
5419	var extraCss = [];
5420	if (optionWidgetBackground !== null) {
5421		if (optionWidgetBackground.image) {
5422			extraCss.push('--background-image: url(' + optionWidgetBackground.image + ')');
5423		}
5424		if (optionWidgetBackground.color) {
5425			extraCss.push('--widget-background-color: ' + optionWidgetBackground.color);
5426		}
5427	}
5428	
5429	if (optionWidgetHeight.length > 0) {
5430		extraCss.push('height: ' + optionWidgetHeight);
5431	}
5432	
5433	if (optionWidgetWidth.length > 0) {
5434		extraCss.push('width: ' + optionWidgetWidth);
5435	}
5436	
5437	
5438	if (optionWidgetMaxWidth.length > 0) {
5439		extraCss.push('max-width: ' + optionWidgetMaxWidth);
5440	}
5441	
5442	
5443	if (optionWidgetPadding.length > 0) {
5444		extraCss.push('--widget-padding: ' + optionWidgetPadding);
5445	}
5446	
5447	if (optionWidgetMarginTop.length > 0) {
5448		extraCss.push('--widget-margin-top: ' + optionWidgetMarginTop);
5449	}
5450	
5451	if (optionWidgetMarginBottom.length > 0) {
5452		extraCss.push('--widget-margin-bottom: ' + optionWidgetMarginBottom);
5453	}
5454	
5455	if (optionWidgetMarginLeft.length > 0) {
5456		extraCss.push('--widget-margin-left: ' + optionWidgetMarginLeft);
5457	}
5458	
5459	if (optionWidgetMarginRight.length > 0) {
5460		extraCss.push('--widget-margin-right: ' + optionWidgetMarginRight);
5461	}
5462	
5463	if (extraCss.length > 0) {
5464		widgetCssStyles = widgetCssStyles + '; ' + extraCss.join('; ');
5465	}
5466	
5467	if (optionWidgetName.length > 0) {
5468		cssClasses.push('name-' + optionWidgetName);
5469	}
5470	
5471	if (optionWidgetStyle.length > 0) {
5472		cssClasses.push('style-' + optionWidgetStyle);
5473	}
5474	
5475	var animationAttr = '';
5476	var optionAnimationEnabled = this.getOptionBoolean('animation-enabled', false);
5477	if (optionAnimationEnabled === true) {
5478		var optionAnimationStyle = this.getOption('animation-style', 'fade-in');
5479		cssClasses.push('aos-item');
5480		animationAttr = 'data-aos="'+Mfe.Utils.Text.escapeHtml(optionAnimationStyle)+'" ';
5481	}
5482	
5483	var optionWidgetHtmlId = this.getOption('widget-html-id', '');
5484	
5485	var htmlArr = [
5486		'<div '+(optionWidgetHtmlId.length > 0 ? 'id="' + optionWidgetHtmlId + '" ' : '')+'class="widget '+this.name + (cssClasses.length > 0 ? ' ' + cssClasses.join(' ') : '')+'" data-widget-id="'+this.widgetId+'" ' + animationAttr + 'style="'+widgetCssStyles+'">',
5487			(optionWidgetTitle.length > 0 ? '<h2 class="widget-header">'+optionWidgetTitle+'</h2>' : ''),
5488			(optionWidgetSubTitle.length > 0 ? '<h3 class="widget-subtitle">'+Mfe.Utils.Text.escapeHtml(optionWidgetSubTitle)+'</h3>' : ''),
5489			(optionWidgetIcon.length > 0 ? '<div class="widget-icon"><img src="'+Mfe.Utils.Text.escapeHtml(optionWidgetIcon)+'" /></div>' : ''),
5490			(optionWidgetDescription.length > 0 ? '<p class="widget-description">'+Mfe.Utils.Text.escapeHtml(optionWidgetDescription)+'</p>' : ''),
5491			(isEmpty(this.onRender) === false ? this.onRender(isPreload) : ''),
5492		'</div>'
5493	];
5494	
5495	return htmlArr.join('');
5496};
5497
5498Mfe.Widget.prototype.generateBundle = function() {
5499	var bundle = {
5500		'name': this.name,
5501		'widgetId': this.widgetId,
5502		'options': this.options
5503	};
5504	
5505	return bundle;
5506};
5507
5508Mfe.Widget.prototype.attach = function(mfe, $el) {
5509	this.mfe = mfe;
5510	this.$el = $el;
5511	
5512	if (isEmpty(this.onAttach) === false) {
5513		(function(widget) {
5514			setTimeout(function(){
5515				widget.onAttach($el);
5516			}, 10);
5517		})(this);
5518	}
5519};
5520Mfe.Widget.prototype.unload = function() {
5521	this.detach();
5522};
5523
5524Mfe.Widget.prototype.detach = function(mfe, $el) {
5525	(function(widget) {
5526		setTimeout(function(){
5527			if (widget.onDetach) {
5528				widget.onDetach();
5529			}
5530		}, 10);
5531	})(this);	
5532};
5533
5534Mfe.Widget.prototype.render = function() {
5535	this.$el.html(this.onRender());
5536};
5537
5538Mfe.Widget.Content = {
5539	'fetchContent': function(mfe, options, cursorId, mode, cb) {
5540		
5541		var siteName = getObjValue('site-name', null, options);
5542		if (isEmpty(siteName) === true || siteName.length == 0) {
5543			siteName = mfe.siteBundle.getName();
5544		}
5545
5546		var dataSource = getObjValue('data-source', 'context', options);
5547                
5548		var amount = parseInt(getObjValue('data-amount', 3, options));
5549
5550		// Return empty template with loading state
5551		var skipContext = getObjValue('skip-context', 'false', options);
5552		if (skipContext === false || skipContext == 'false') {
5553			skipContext = false;
5554		} else {
5555			skipContext = true;
5556		}
5557		
5558		if (skipContext === true) {
5559			amount = amount + 1;
5560		}
5561		
5562		if (dataSource == 'blogs') {
5563			
5564			var blogIds = getObjValue('data-blog-ids', null, options);
5565			if (blogIds !== null) {
5566				if (Array.isArray(blogIds) === false) {
5567					blogIds = blogIds.split(',');
5568				}
5569			}
5570			
5571			var offset = parseInt(getObjValue('data-offset', 0, options)) || 0;
5572			
5573			var items = Mfe.Api.Blogs.getPosts(siteName, blogIds, amount, offset, cursorId, function(result, response) {
5574				cb(response);
5575				return null;
5576			});
5577
5578			if (items !== null) {
5579				return items;
5580			}
5581                    } else if (dataSource == 'external-data') {
5582			
5583			var externalDataId = getObjValue('data-external-data-id', null, options);
5584
5585			var items = Mfe.Api.ExternalDatasource.get(siteName, externalDataId, function(result, response) {
5586				cb(response);
5587				return null;
5588			});
5589
5590			if (items !== null) {
5591				return items;
5592			}
5593		} else if (dataSource == 'blogs-tags') {
5594						
5595			var tags = getObjValue('data-blog-tags', null, options);
5596			if (tags !== null) {
5597				if (Array.isArray(tags) === false) {
5598					tags = tags.split(',');
5599				}
5600			}	
5601			
5602			var offset = parseInt(getObjValue('data-offset', 0, options)) || 0;
5603			var items = Mfe.Api.BlogPosts.getByTags(siteName, tags, amount, offset, cursorId, function(result, response) {
5604				cb(response);
5605				return null;
5606			});
5607
5608			if (items !== null) {
5609				return items;
5610			}
5611			
5612		} else if (dataSource == 'calendars') {
5613			
5614			var calendarIds = getObjValue('data-calendar-ids', null, options);
5615			if (calendarIds !== null) {
5616				if (Array.isArray(calendarIds) === false) {
5617					calendarIds = calendarIds.split(',');
5618				}
5619			}
5620
5621			var items = Mfe.Api.Calendars.getEvents(siteName, calendarIds, amount, cursorId, function(result, response) {
5622				cb(response);
5623				return null;
5624			});
5625
5626			if (items !== null) {
5627				return items;
5628			}
5629			
5630		} else if (dataSource == 'userGroupTeamMembers') {
5631			
5632			var userGroupTeamId = getObjValue('data-usergroupteam-id', null, options);
5633			/*if (userGroupTeamIds !== null) {
5634				if (Array.isArray(userGroupTeamIds) === false) {
5635					userGroupTeamIds = userGroupTeamIds.split(',');
5636				}
5637			}*/
5638
5639			var items = Mfe.Api.UserGroups.getTeam(siteName, userGroupTeamId, function(result, response) {
5640				cb(response);
5641				return null;
5642			});
5643
5644			if (items !== null) {
5645				return items;
5646			}
5647			
5648		} else if (dataSource == 'streams') {
5649			var streamIds = getObjValue('data-stream-ids', null, options);
5650			if (streamIds === null) {
5651				return null;
5652			}
5653			if (Array.isArray(streamIds) === false) {
5654				streamIds = streamIds.split(',');
5655			}
5656			
5657			var items = Mfe.Api.Streams.getMedia(siteName, streamIds, 'mobypicture', null, amount, cursorId, function(result, response) {
5658				cb(response);
5659				return null;
5660			});
5661
5662			if (items !== null) {
5663				return items;
5664			}
5665			 
5666			
5667		} else if (dataSource == 'datasetView') {
5668			
5669			let datasetViewId = getObjValue('data-dataset-view-id', null, options);
5670			if (datasetViewId === null) {
5671				return null;
5672			}
5673			
5674			var datasetView = Mfe.Api.DatasetViews.get(siteName, datasetViewId, function(result, response) {
5675				if (result === true) {
5676					cb(response);
5677					return;
5678				}
5679				cb(false);
5680			});
5681			
5682			if (datasetView !== null) {
5683				return datasetView;
5684			}
5685			/*
5686			
5687			if (Array.isArray(streamIds) === false) {
5688				streamIds = streamIds.split(',');
5689			}
5690			
5691			var items = Mfe.Api.Streams.getMedia(siteName, streamIds, 'mobypicture', null, amount, cursorId, function(result, response) {
5692				cb(response);
5693				return null;
5694			});
5695
5696			if (items !== null) {
5697				return items;
5698			}*/
5699			
5700		} else if (dataSource == 'snippet') {
5701			
5702
5703			var snippetId = getObjValue('data-snippet-id', null, options);
5704			if (snippetId === null) {
5705				return null;
5706			}
5707
5708			var snippet = Mfe.Api.CmsPages.get(siteName, snippetId, function(result, response) {
5709				cb(response);
5710				return null;
5711			});
5712
5713			if (snippet !== null) {
5714				return snippet;
5715			}
5716			
5717		} else if (dataSource == 'contentset') {
5718			
5719			var contentSetId = getObjValue('data-contentset-id', null, options);
5720			if (contentSetId === null) {
5721				return null;
5722			}
5723
5724			var contentSet = Mfe.Api.ContentSet.get(siteName, contentSetId, function(result, response) {
5725				cb(response);
5726				return null;
5727			});
5728
5729			if (contentSet !== null) {
5730				return contentSet;
5731			}
5732			
5733		} else if (dataSource == 'storyline') {
5734			
5735			var storylineId = getObjValue('data-storyline-id', null, options);
5736			if (storylineId === null) {
5737				return null;
5738			}
5739
5740			var contentSet = Mfe.Api.ContentSet.get(siteName, storylineId, function(result, response) {
5741				cb(response);
5742				return null;
5743			});
5744
5745			if (contentSet !== null) {
5746				return contentSet;
5747			}
5748			
5749		} else if (dataSource == 'menu') {
5750			
5751			
5752			var menuId = getObjValue('data-menu-id', null, options);
5753			if (menuId === null) {
5754				return null;
5755			}
5756
5757			var menu = mfe.siteBundle.getMenuById(menuId);
5758			var menuQueryResult = menu.getItemsAsQueryResult();
5759			return menuQueryResult;
5760			
5761		} else if (dataSource == 'context') {
5762			
5763			if (mfe.context == 'blog-overview') {
5764
5765				var blogIds = [mfe.contextId];
5766				var offset = getObjValue('data-offset', 0, options);
5767				var items = Mfe.Api.Blogs.getPosts(siteName, blogIds, amount, offset, cursorId, function(result, response) {
5768					cb(response);
5769					return null;
5770				});
5771
5772				if (items !== null) {
5773					return items;
5774				}
5775				
5776			} else if (mfe.context == 'search') {
5777
5778				return mfe.contextObject;
5779			} else if (mfe.context == 'dataset-table') {
5780				
5781				var datasetLookupKey = getObjValue('dataset-lookup-key', '', options);
5782				
5783				return mfe.contextObject.getProcessedValue(datasetLookupKey);
5784
5785				//return mfe.contextObject;
5786				/*var searchParams = mfe.contextParams;
5787				
5788				var items = Mfe.Api.BlogPosts.search(siteName, searchParams.query, searchParams.tags, searchParams.authors, searchParams.storylines, amount, cursorId, function(result, response) {
5789					cb(response);
5790					return null;
5791				});
5792
5793				if (items !== null) {
5794					return items;
5795				}*/
5796				
5797			} else if (mfe.context == 'blog-item') {
5798
5799				if (mode == 'multi') {
5800
5801					var blogIds = [mfe.contextObject.getPostGroupId()];
5802					var offset = getObjValue('data-offset', 0, options);
5803					var items = Mfe.Api.Blogs.getPosts(siteName, blogIds, amount, offset, cursorId, function(result, response) {
5804						cb(response);
5805						return null;
5806					});
5807
5808					if (items !== null) {
5809						return items;
5810					}
5811					
5812				} else {
5813					return mfe.contextObject;
5814				}
5815
5816				
5817
5818				/*var item = Mfe.Api.BlogPosts.get(siteName, mfe.contextId, function(result, response) {
5819					cb(response);
5820					return null;
5821				});
5822
5823				if (item !== null) {
5824					return item;
5825				}*/
5826				
5827			} else if (mfe.context == 'stream-item') {
5828
5829				return mfe.contextObject;
5830
5831			} else if (mfe.context == 'calendar-item') {
5832
5833				return mfe.contextObject;
5834			} else if (mfe.context == 'cms-page') {
5835
5836				return mfe.contextObject;
5837/*
5838				alert(mfe.contextId);
5839				var item = Mfe.Api.CalendarEvent.get(siteName, mfe.contextId, function(result, response) {
5840					cb(response);
5841					return null;
5842				});
5843
5844				if (item !== null) {
5845					return item;
5846				}*/
5847			}
5848		}
5849	}
5850}
5851
5852
5853Mfe.Layout = function(mfe, renderer, layoutId, options) {
5854	this.mfe = mfe;
5855	this.renderer = renderer;
5856	this.layoutId = layoutId;
5857	this.options = options;
5858};
5859
5860Mfe.Layout.instantiate = function(mfe, layoutId, options) {
5861	var layout = new Mfe.Layouts[options.name](mfe, layoutId, options);
5862	return layout;
5863};
5864
5865Mfe.Layout.exists = function(name) {
5866	if (isEmpty(Mfe.Layouts[name]) === true) {
5867		return false;
5868	}
5869	
5870	return true;
5871};
5872
5873Mfe.Layout.getLayoutSettings = function (layoutName) {
5874	return [];
5875};
5876
5877Mfe.Layout.prototype.getOption = function (key, defaultValue, optionsObj) {
5878	if (isEmpty(this.options) === true || isEmpty(this.options[key]) === true) {
5879		return defaultValue;
5880	}
5881
5882	return this.options[key];
5883};
5884
5885Mfe.Layout.prototype.getOptionBoolean = function (key, defaultValue) {
5886	var value = this.getOption(key, defaultValue);
5887	if (value === false || value == 'false') {
5888		return false;
5889	} else {
5890		return true;
5891	}
5892};
5893
5894Mfe.Layout.prototype.getHtml = function(isPreload) {
5895	
5896	var htmlArr = [
5897		'<div class="layout '+this.name + (cssClasses.length > 0 ? ' ' + cssClasses.join(' ') : '')+'" data-layout-id="'+this.layoutId+'" style="'+layoutCssStyles+'">',
5898			(optionWidgetTitle.length > 0 ? '<h2 class="layout-header">'+optionWidgetTitle+'</h2>' : ''),
5899			(optionWidgetSubTitle.length > 0 ? '<h3 class="layout-subtitle">'+Mfe.Utils.Text.escapeHtml(optionWidgetSubTitle)+'</h3>' : ''),
5900			(optionWidgetIcon.length > 0 ? '<div class="layout-icon"><img src="'+Mfe.Utils.Text.escapeHtml(optionWidgetIcon)+'" /></div>' : ''),
5901			(optionWidgetDescription.length > 0 ? '<p class="layout-description">'+Mfe.Utils.Text.escapeHtml(optionWidgetDescription)+'</p>' : ''),
5902			(isEmpty(this.onRender) === false ? this.onRender(isPreload) : ''),
5903		'</div>'
5904	];
5905
5906	return htmlArr.join('');
5907};
5908
5909Mfe.Layout.prototype.generateBundle = function() {
5910	var bundle = {
5911		'name': this.name,
5912		'layoutId': this.layoutId,
5913		'options': this.options
5914	};
5915	
5916	return bundle;
5917};
5918
5919Mfe.Layout.prototype.attach = function(mfe, $el) {
5920	this.mfe = mfe;
5921	this.$el = $el;
5922	
5923	if (isEmpty(this.onAttach) === false) {
5924		(function(layout) {
5925			setTimeout(function(){
5926				layout.onAttach($el);
5927			}, 10);
5928		})(this);
5929	}
5930};
5931Mfe.Layout.prototype.unload = function() {
5932	this.detach();
5933};
5934Mfe.Layout.prototype.getSettingsByType = function(type) {
5935	var settings = this.getSettings();
5936	var filteredSettings = [];
5937	
5938	for (var i = 0; i < settings.length; i++) {
5939		var setting = settings[i];
5940		
5941		if (setting.type == type) {
5942			filteredSettings.push(setting);
5943		}
5944	}
5945	
5946	return filteredSettings;
5947};
5948
5949
5950Mfe.Layout.prototype.render = function() {
5951	return this.onRender();
5952};
5953
5954Mfe.Layout.prototype.renderWidgets = function(widgets) {
5955	return this.renderer.renderThemeWidgets(widgets);
5956};
5957
5958Mfe.Layout.prototype.detach = function(mfe, $el) {
5959	(function(layout) {
5960		setTimeout(function(){
5961			if (layout.onDetach) {
5962				layout.onDetach();
5963			}
5964		}, 10);
5965	})(this);	
5966};
5967Mfe.Locale = {
5968	'Currencies': {
5969		'EUR': {
5970			
5971		}
5972	},
5973	'parseCurrencyAmount': function(amount) {
5974		var hasComma = amount.indexOf(',');
5975		var hasPeriod = amount.indexOf('.');
5976
5977		var decimalSeparator = ',';
5978		var thousandsSeparator = '.';
5979		if (hasComma > -1 && hasPeriod > -1) {
5980			if (hasComma < hasPeriod) {
5981				// Period = decimal separator
5982				decimalSeparator = '.';
5983			} else if (hasPeriod < hasComma) {
5984				// Comma = decimal 
5985				decimalSeparator = ',';
5986			}
5987		} else if (hasComma > -1) {
5988			if (amount.substring(amount.length - 3, amount.length - 2) == ',') {
5989				decimalSeparator = ',';
5990			} else {
5991				amount = amount.replace(/\,/g, '');
5992				hasComma = -1;
5993				return [amount, '00'];
5994			}
5995			
5996		} else if (hasPeriod > -1) {
5997			if (amount.substring(amount.length - 3, amount.length - 2) == '.') {
5998				decimalSeparator = '.';
5999			} else {
6000				amount = amount.replace(/\./g, '');
6001				hasPeriod = -1;
6002				return [amount, '00'];
6003			}
6004			
6005		} else {
6006			return [amount, '00'];
6007		}
6008		
6009		
6010		
6011		var newAmount = null;
6012		var amountBefore = null;
6013		var amountAfter = null;
6014
6015		if (decimalSeparator == '.') {
6016			// Remove all commas
6017			newAmount = amount.replace(/\,/g, '');
6018
6019			hasComma = newAmount.indexOf(',');
6020			hasPeriod = newAmount.indexOf('.');
6021			amountBefore = newAmount.substring(0, hasPeriod);
6022			amountAfter = newAmount.substring(hasPeriod + 1);
6023		} else if (decimalSeparator == ',') {
6024			// Remove all periods
6025			newAmount = amount.replace(/\./g, '');
6026
6027			hasComma = newAmount.indexOf(',');
6028			hasPeriod = newAmount.indexOf('.');
6029
6030			amountBefore = newAmount.substring(0, hasComma);
6031			amountAfter = newAmount.substring(hasComma + 1);
6032		}
6033		
6034		return [amountBefore, amountAfter];
6035	},
6036	'formatCurrencyAmount': function(amount, decimalSeparator,thous
6036andsSeparator, skipThousands, skipDecimal) {
6037		if (amount.length == 0) {
6038			return amount;
6039		}
6040
6041		var currencyDecimals = 2;
6042
6043		var amount = amount.toString();
6044
6045		var amountBeforeDecimal = '';
6046		var amountAfterDecimal = '';
6047
6048		var decimalPos = amount.toString().lastIndexOf(decimalSeparator);
6049		if (decimalPos >= 0) {
6050			amountAfterDecimal = amount.substring(decimalPos + 1, amount.length);
6051			if (amountAfterDecimal.length < currencyDecimals) {
6052				amountAfterDecimal = amountAfterDecimal.rpad('0', currencyDecimals);
6053			}
6054			amountBeforeDecimal = amount.substring(0, decimalPos);
6055		} else {
6056			amountBeforeDecimal = amount.toString();
6057			amountAfterDecimal = amountAfterDecimal.rpad('0', currencyDecimals);
6058		}
6059
6060		// Strip away anything not numeric
6061		amountBeforeDecimal = amountBeforeDecimal.replace(/\D/g,'');
6062
6063		// Add thousands separator
6064		if (amountBeforeDecimal.length > 0) {
6065			if (parseInt(amountBeforeDecimal) > 999) {
6066				if (typeof skipThousands == 'undefined' || skipThousands === false) {
6067					amountBeforeDecimal = amountBeforeDecimal.addThousands(thousandsSeparator, decimalSeparator);
6068				}
6069			}
6070		} else {
6071			amountBeforeDecimal = '0';
6072		}
6073
6074		var fixedAmount;
6075		if (typeof skipDecimal == 'undefined' || skipDecimal === false) {
6076			fixedAmount = amountBeforeDecimal + decimalSeparator + amountAfterDecimal;
6077		} else {
6078			fixedAmount = amountBeforeDecimal + amountAfterDecimal;
6079		}
6080
6081		return fixedAmount;
6082	}
6083};
6084Mfe.Utils = {
6085	
6086}
6087
6088Mfe.Utils.DateTime = {
6089	'toString': function(format, year, month, day, hour, minutes, seconds) {
6090		var paddedMonth = month.toString().lpad('0', 2);
6091		var paddedDay = day.toString().lpad('0', 2);
6092
6093		if (isEmpty(format) === false && format == 'date') {
6094			return year + '-' + paddedMonth + '-' + paddedDay;
6095		} else {
6096			var paddedHour = hour.toString().lpad('0', 2);
6097			var paddedMinutes = minutes.toString().lpad('0', 2);
6098			var paddedSeconds = seconds.toString().lpad('0', 2);
6099			return year + '-' + paddedMonth + '-' + paddedDay + ' ' + paddedHour + ':' + paddedMinutes + ':' + paddedSeconds;
6100		}
6101	},
6102	'toTimeZone': function(dateTime, srcTimeZone, dstTimeZone) {
6103		var format = 'YYYY/MM/DD HH:mm:ss';
6104		
6105		var srcDateTime = moment.tz(dateTime, srcTimeZone);
6106		var dstMoment = srcDateTime.clone().tz(dstTimeZone);
6107		
6108		var dstDateTime = dstMoment.format('YYYY-MM-DD HH:mm:ss');
6109		return dstDateTime;
6110	},
6111	'toUtc': function(dateTime, srcTimeZone) {
6112		if (isEmpty(srcTimeZone) === true) {
6113			srcTimeZone = Mfe.Utils.UserAgent.getTimeZone();
6114		}
6115		
6116		var srcDateTime = moment.tz(dateTime, srcTimeZone);
6117		var dstMoment = srcDateTime.clone().tz('UTC');
6118		
6119		var dstDateTime = dstMoment.format('YYYY-MM-DD HH:mm:ss');
6120		return dstDateTime;
6121	},
6122	'toLocalDateTime': function(utcDateTime) {
6123		if (isEmpty(utcDateTime) === true) {
6124			return null;
6125		}
6126		
6127		var utcDateTimeParts = utcDateTime.split(' ');
6128		var date = new Date(utcDateTimeParts[0] + 'T' + utcDateTimeParts[1] + 'Z');
6129		return Mfe.Utils.DateTime.toString('datetime', date.getFullYear(), date.getMonth() + 1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());
6130	},
6131	'getDate': function(currentDate) {
6132		if (isEmpty(currentDate)) {
6133			currentDate = new Date();
6134		}
6135		
6136		var year = currentDate.getFullYear();
6137		var month = currentDate.getMonth() + 1;
6138		var day = currentDate.getDate();
6139		
6140		return year + '-' + month.toString().lpad('0', 2) + '-' + day.toString().lpad('0', 2);
6141	},
6142	'getTime': function(currentDate) {
6143		if (isEmpty(currentDate)) {
6144			currentDate = new Date();
6145		}
6146		
6147		return currentDate.getHours().toString().lpad('0', 2) + ':' + currentDate.getMinutes().toString().lpad('0', 2) + ':' + currentDate.getSeconds().toString().lpad('0', 2);
6148	},
6149	'getDaysInMonth': function(year, month) {
6150		return new Date(year, month, 0).getDate();
6151	},
6152	'getDayOfWeek': function(year, month, day, firstDay) {
6153		var dow = new Date(year, month - 1, day).getDay();
6154		var dowMappings = {
6155			'sat': [1, 2, 3, 4, 5, 6, 0],
6156			'sun': [0, 1, 2, 3, 4, 5, 6],
6157			'mon': [6, 0, 1, 2, 3, 4, 5]
6158		};
6159		return dowMappings[firstDay][dow];
6160	},
6161	'subtractDays': function(year, month, day, subtractDays) {
6162		var paddedMonth = month.toString().lpad('0', 2);
6163		var paddedDay = day.toString().lpad('0', 2);
6164		var d = new Date(year + '-' + paddedMonth + '-' + paddedDay);
6165		d.setDate(d.getDate() - subtractDays);
6166		return d;
6167	},
6168	'addDaysToDate': function(date, addDays) {
6169		var year = date.getFullYear();
6170		var month = date.getMonth() + 1;
6171		var day = date.getDate();
6172		
6173		return Mfe.Utils.DateTime.addDays(year, month, day, addDays);
6174	},
6175	'addDays': function(year, month, day, addDays) {
6176		var paddedMonth = month.toString().lpad('0', 2);
6177		var paddedDay = day.toString().lpad('0', 2);
6178
6179		var d = new Date(year + '-' + paddedMonth + '-' + paddedDay);
6180		d.setDate(d.getDate() + addDays);
6181		return d;
6182	},
6183	'addHours': function(date, addHours) {
6184		date.setHours(date.getHours() + addHours);
6185		return date;
6186	},
6187	'nextMonth': function(year, month) {
6188		var newMonth = month.toString();
6189		var newYear = year.toString();
6190		if (month == 12) {
6191			newMonth = 1;
6192			newYear++;
6193		} else {
6194			newMonth++;
6195		}
6196
6197		return { 'year': newYear, 'month': newMonth };
6198	},
6199	'previousMonth': function(year, month) {
6200		var newMonth = month.toString();
6201		var newYear = year.toString();
6202		if (month == 1) {
6203			newMonth = 12;
6204			newYear--;
6205		} else {
6206			newMonth--;
6207		}
6208
6209		return { 'year': newYear, 'month': newMonth };
6210	},
6211	'getDateByWeekNo': function(week, year) {
6212		var weekDate = new Date(Date.UTC(year, 0, 1 + (week - 1) * 7));
6213		
6214		var dow = weekDate.getDay();
6215		var weekStart = weekDate;
6216		
6217		if (dow <= 4) {
6218			weekStart.setDate(weekDate.getDate() - weekDate.getDay() + 1);
6219		} else {
6220			weekStart.setDate(weekDate.getDate() + 8 - weekDate.getDay());
6221		}
6222		
6223		return weekStart;
6224	},
6225	'getWeekNoByDate': function(year, month, day) {
6226		var monthPadded = month.toString().lpad('0', 2);
6227		var dayPadded = day.toString().lpad('0', 2);
6228		
6229		var momentDate = moment.utc(year + '-' + monthPadded + '-' + dayPadded + ' 00:00:00', "YYYY-MM-DD HH:mm:ss");
6230		var yearWeekNo = momentDate.format('GGGG W');
6231		
6232		var yearWeekNoParts = yearWeekNo.split(' ');
6233		
6234		return { 'year': yearWeekNoParts[0], 'week': yearWeekNoParts[1] };
6235	},
6236	'getDaySpanBetweenDates': function(dateStart, dateEnd) {
6237		var dates = [
6238			dateStart.toString()
6239		];
6240		
6241		if (dateStart == dateEnd) {
6242			return dates;
6243		}
6244		
6245		//var noDays = 1;
6246		var dateStartParts = dateStart.split('-');
6247		var dateStartAdded = Mfe.Utils.DateTime.addDays(dateStartParts[0], dateStartParts[1], dateStartParts[2], 1).getSimpleDate();
6248		//noDays++;
6249		dates.push(dateStartAdded);
6250		
6251		while (dateStartAdded != dateEnd && dates.length < 800) {
6252			
6253			var dateStartAddedParts = dateStartAdded.split('-');
6254			dateStartAdded = Mfe.Utils.DateTime.addDays(dateStartAddedParts[0], dateStartAddedParts[1], dateStartAddedParts[2], 1).getSimpleDate();
6255			//noDays++;
6256			dates.push(dateStartAdded);
6257		}
6258		
6259		if (dateStartAdded == dateEnd) {
6260			return dates;
6261		}
6262		
6263		return false;
6264	}
6265
6266};
6267
6268Mfe.Utils.Dom = {
6269	'getNodeName': function (node) {
6270		if (isEmpty(node) === true || isEmpty(node.nodeName) === true) {
6271			return '';
6272		}
6273
6274		return node.nodeName.toUpperCase();
6275	}
6276}
6277
6278Mfe.Utils.Js = {
6279	'encodeUriParam': function (value) {
6280		return encodeURIComponent(value);
6281	}
6282}
6283
6284Mfe.Utils.RegExp = {
6285	'escapeVal': function(val) {
6286		return val.replace(/[-[\]{}()*+?.~,\\^$|#\s]/g, '\\$&');
6287	}
6288}
6289
6290
6291Mfe.Utils.UserAgent = {
6292	'isSafari': function() {
6293		var REGEXP_USERAGENT = /(Macintosh|iPhone|iPod|iPad).*AppleWebKit/i;
6294		return navigator && REGEXP_USERAGENT.test(navigator.userAgent);
6295	},
6296	'getRequestPath': function() {
6297		return document.location.pathname;
6298	},
6299	'getCookie': function(name) {
6300		match = document.cookie.match(new RegExp(name + '=([^;]+)'));
6301		if (match) return match[1];
6302	},
6303	'setCookie': function(name, value, days, domain) {
6304		var expires = "";
6305		if (days) {
6306			var date = new Date();
6307			date.setTime(date.getTime() + (days*24*60*60*1000));
6308			expires = "; expires=" + date.toUTCString();
6309		}
6310		
6311		document.cookie = name + "=" + value + expires + "; domain="+domain+"; path=/";
6312	},
6313	'getUrlVars': function() { 
6314		var query = location.search.substr(1);
6315		var result = {};
6316		query.split("&").forEach(function(part) {
6317		  var item = part.split("=");
6318		  result[item[0]] = decodeURIComponent(item[1]);
6319		});
6320		return result;
6321	}
6322};
6323Mfe.Layouts['vertical'] = function(mfe, renderer, layoutId, options) {
6324	this.mfe = mfe;
6325	this.renderer = renderer;
6326	this.name = 'vertical';
6327	this.baseTemplate = 'base-default';
6328	
6329	Mfe.Layout.apply(this, arguments);
6330};
6331Mfe.Layouts['vertical'].inherits(Mfe.Layout);
6332Mfe.Layouts['vertical'].title = 'Columns';
6333Mfe.Layouts['vertical'].prototype.getSettings = function() {
6334	return [
6335		{ "type": "text", "name": "columns", "default": 2 },
6336		{ "type": "background", "name": "backgroundCss" },
6337		{ "type": "background", "name": "backgroundCssColumn1" },
6338		{ "type": "background", "name": "backgroundCssColumn2" },
6339		{ "type": "widgets", "name": "widgetsColumn1" },
6340		{ "type": "widgets", "name": "widgetsColumn2" }
6341	];
6342};
6343Mfe.Layouts['vertical'].prototype.onRender = function() {
6344	
6345	var layoutTemplate = this.mfe.getTemplate('layouts', 'vertical', 'default');
6346	var templateVarsColumns = [];
6347	
6348	var columnsCount = parseInt(this.getOption('columns', 2));
6349	for (var i = 1; i <= columnsCount; i++) {
6350		var widgetsConfig = this.getOption('widgetsColumn' + i, []);
6351		templateVarsColumns.push({
6352			'index': i,
6353			'widgetsHtml': this.renderWidgets(widgetsConfig)
6354		});
6355	}
6356	
6357	var templateVars = {
6358		'mfeIncludeEditContainers': this.renderer.mfeIncludeEditContainers,
6359		'columns': templateVarsColumns
6360	};
6361	
6362	var layoutHtml = layoutTemplate(templateVars);
6363
6364	return layoutHtml;
6365};
6366
6367Mfe.Layouts['vertical'].prototype.renderWidget = function() {
6368	
6369};
6370
6371Mfe.Layouts['vertical'].prototype.generateTemplateVars = function() {
6372	
6373};
6374Mfe.Locales.en = {
6375	'countries': [
6376		'Afghanistan',
6377		'Albania',
6378		'Algeria',
6379		'American Samoa',
6380		'Andorra',
6381		'Angola',
6382		'Antigua and Barbuda',
6383		'Argentina',
6384		'Armenia',
6385		'Australia',
6386		'Austria',
6387		'Azerbaijan',
6388		'Bahamas',
6389		'Bahrain',
6390		'Bangladesh',
6391		'Barbados',
6392		'Belarus',
6393		'Belgium',
6394		'Belize',
6395		'Benin',
6396		'Bermuda',
6397		'Bhutan',
6398		'Bolivia',
6399		'Bosnia and Herzegovina',
6400		'Botswana',
6401		'Brazil',
6402		'Brunei',
6403		'Bulgaria',
6404		'Burkina Faso',
6405		'Burundi',
6406		'Cambodia',
6407		'Cameroon',
6408		'Canada',
6409		'Cape Verde',
6410		'Cayman Islands',
6411		'Central African Republic',
6412		'Chad',
6413		'Chile',
6414		'China',
6415		'Colombia',
6416		'Comoros',
6417		'Congo, Democratic Republic of the',
6418		'Congo, Republic of the',
6419		'Costa Rica',
6420		'Côte d\'Ivoire',
6421		'Croatia',
6422		'Cuba',
6423		'Cyprus',
6424		'Czech Republic',
6425		'Denmark',
6426		'Djibouti',
6427		'Dominica',
6428		'Dominican Republic',
6429		'East Timor',
6430		'Ecuador',
6431		'Egypt',
6432		'El Salvador',
6433		'Equatorial Guinea',
6434		'Eritrea',
6435		'Estonia',
6436		'Ethiopia',
6437		'Faroe Islands',
6438		'Fiji',
6439		'Finland',
6440		'France',
6441		'French Polynesia',
6442		'Gabon',
6443		'Gambia',
6444		'Georgia',
6445		'Germany',
6446		'Ghana',
6447		'Greece',
6448		'Greenland',
6449		'Grenada',
6450		'Guam',
6451		'Guatemala',
6452		'Guinea',
6453		'Guinea-Bissau',
6454		'Guyana',
6455		'Haiti',
6456		'Honduras',
6457		'Hong Kong',
6458		'Hungary',
6459		'Iceland',
6460		'India',
6461		'Indonesia',
6462		'Iran',
6463		'Iraq',
6464		'Ireland',
6465		'Israel',
6466		'Italy',
6467		'Jamaica',
6468		'Japan',
6469		'Jordan',
6470		'Kazakhstan',
6471		'Kenya',
6472		'Kiribati',
6473		'North Korea',
6474		'South Korea',
6475		'Kosovo',
6476		'Kuwait',
6477		'Kyrgyzstan',
6478		'Laos',
6479		'Latvia',
6480		'Lebanon',
6481		'Lesotho',
6482		'Liberia',
6483		'Libya',
6484		'Liechtenstein',
6485		'Lithuania',
6486		'Luxembourg',
6487		'Macedonia',
6488		'Madagascar',
6489		'Malawi',
6490		'Malaysia',
6491		'Maldives',
6492		'Mali',
6493		'Malta',
6494		'Marshall Islands',
6495		'Mauritania',
6496		'Mauritius',
6497		'Mexico',
6498		'Micronesia',
6499		'Moldova',
6500		'Monaco',
6501		'Mongolia',
6502		'Montenegro',
6503		'Morocco',
6504		'Mozambique',
6505		'Myanmar',
6506		'Namibia',
6507		'Nauru',
6508		'Nepal',
6509		'Netherlands',
6510		'New Zealand',
6511		'Nicaragua',
6512		'Niger',
6513		'Nigeria',
6514		'Northern Mariana Islands',
6515		'Norway',
6516		'Oman',
6517		'Pakistan',
6518		'Palau',
6519		'Palestine, State of',
6520		'Panama',
6521		'Papua New Guinea',
6522		'Paraguay',
6523		'Peru',
6524		'Philippines',
6525		'Poland',
6526		'Portugal',
6527		'Puerto Rico',
6528		'Qatar',
6529		'Romania',
6530		'Russia',
6531		'Rwanda',
6532		'Saint Kitts and Nevis',
6533		'Saint Lucia',
6534		'Saint Vincent and the Grenadines',
6535		'Samoa',
6536		'San Marino',
6537		'Sao Tome and Principe',
6538		'Saudi Arabia',
6539		'Senegal',
6540		'Serbia and Montenegro',
6541		'Seychelles',
6542		'Sierra Leone',
6543		'Singapore',
6544		'Sint Maarten',
6545		'Slovakia',
6546		'Slovenia',
6547		'Solomon Islands',
6548		'Somalia',
6549		'South Africa',
6550		'Spain',
6551		'Sri Lanka',
6552		'Sudan',
6553		'Sudan, South',
6554		'Suriname',
6555		'Swaziland',
6556		'Sweden',
6557		'Switzerland',
6558		'Syria',
6559		'Taiwan',
6560		'Tajikistan',
6561		'Tanzania',
6562		'Thailand',
6563		'Togo',
6564		'Tonga',
6565		'Trinidad and Tobago',
6566		'Tunisia',
6567		'Turkey',
6568		'Turkmenistan',
6569		'Tuvalu',
6570		'Uganda',
6571		'Ukraine',
6572		'United Arab Emirates',
6573		'United Kingdom',
6574		'United States',
6575		'Uruguay',
6576		'Uzbekistan',
6577		'Vanuatu',
6578		'Vatican City',
6579		'Venezuela',
6580		'Vietnam',
6581		'Virgin Islands, British',
6582		'Virgin Islands, U.S.',
6583		'Yemen',
6584		'Zambia',
6585		'Zimbabwe'
6586	]
6587};
6588
6589Mfe.Locales.nl = {
6590	'countries': [
6591		'Afghanistan',
6592		'Albania',
6593		'Algeria',
6594		'American Samoa',
6595		'Andorra',
6596		'Angola',
6597		'Antigua and Barbuda',
6598		'Argentina',
6599		'Armenia',
6600		'Australia',
6601		'Austria',
6602		'Azerbaijan',
6603		'Bahamas',
6604		'Bahrain',
6605		'Bangladesh',
6606		'Barbados',
6607		'Belarus',
6608		'Belgium',
6609		'Belize',
6610		'Benin',
6611		'Bermuda',
6612		'Bhutan',
6613		'Bolivia',
6614		'Bosnia and Herzegovina',
6615		'Botswana',
6616		'Brazil',
6617		'Brunei',
6618		'Bulgaria',
6619		'Burkina Faso',
6620		'Burundi',
6621		'Cambodia',
6622		'Cameroon',
6623		'Canada',
6624		'Cape Verde',
6625		'Cayman Islands',
6626		'Central African Republic',
6627		'Chad',
6628		'Chile',
6629		'China',
6630		'Colombia',
6631		'Comoros',
6632		'Congo, Democratic Republic of the',
6633		'Congo, Republic of the',
6634		'Costa Rica',
6635		'Côte d\'Ivoire',
6636		'Croatia',
6637		'Cuba',
6638		'Cyprus',
6639		'Czech Republic',
6640		'Denmark',
6641		'Djibouti',
6642		'Dominica',
6643		'Dominican Republic',
6644		'East Timor',
6645		'Ecuador',
6646		'Egypt',
6647		'El Salvador',
6648		'Equatorial Guinea',
6649		'Eritrea',
6650		'Estonia',
6651		'Ethiopia',
6652		'Faroe Islands',
6653		'Fiji',
6654		'Finland',
6655		'France',
6656		'French Polynesia',
6657		'Gabon',
6658		'Gambia',
6659		'Georgia',
6660		'Germany',
6661		'Ghana',
6662		'Greece',
6663		'Greenland',
6664		'Grenada',
6665		'Guam',
6666		'Guatemala',
6667		'Guinea',
6668		'Guinea-Bissau',
6669		'Guyana',
6670		'Haiti',
6671		'Honduras',
6672		'Hong Kong',
6673		'Hungary',
6674		'Iceland',
6675		'India',
6676		'Indonesia',
6677		'Iran',
6678		'Iraq',
6679		'Ireland',
6680		'Israel',
6681		'Italy',
6682		'Jamaica',
6683		'Japan',
6684		'Jordan',
6685		'Kazakhstan',
6686		'Kenya',
6687		'Kiribati',
6688		'North Korea',
6689		'South Korea',
6690		'Kosovo',
6691		'Kuwait',
6692		'Kyrgyzstan',
6693		'Laos',
6694		'Latvia',
6695		'Lebanon',
6696		'Lesotho',
6697		'Liberia',
6698		'Libya',
6699		'Liechtenstein',
6700		'Lithuania',
6701		'Luxembourg',
6702		'Macedonia',
6703		'Madagascar',
6704		'Malawi',
6705		'Malaysia',
6706		'Maldives',
6707		'Mali',
6708		'Malta',
6709		'Marshall Islands',
6710		'Mauritania',
6711		'Mauritius',
6712		'Mexico',
6713		'Micronesia',
6714		'Moldova',
6715		'Monaco',
6716		'Mongolia',
6717		'Montenegro',
6718		'Morocco',
6719		'Mozambique',
6720		'Myanmar',
6721		'Namibia',
6722		'Nauru',
6723		'Nepal',
6724		'Netherlands',
6725		'New Zealand',
6726		'Nicaragua',
6727		'Niger',
6728		'Nigeria',
6729		'Northern Mariana Islands',
6730		'Norway',
6731		'Oman',
6732		'Pakistan',
6733		'Palau',
6734		'Palestine, State of',
6735		'Panama',
6736		'Papua New Guinea',
6737		'Paraguay',
6738		'Peru',
6739		'Philippines',
6740		'Poland',
6741		'Portugal',
6742		'Puerto Rico',
6743		'Qatar',
6744		'Romania',
6745		'Russia',
6746		'Rwanda',
6747		'Saint Kitts and Nevis',
6748		'Saint Lucia',
6749		'Saint Vincent and the Grenadines',
6750		'Samoa',
6751		'San Marino',
6752		'Sao Tome and Principe',
6753		'Saudi Arabia',
6754		'Senegal',
6755		'Serbia and Montenegro',
6756		'Seychelles',
6757		'Sierra Leone',
6758		'Singapore',
6759		'Sint Maarten',
6760		'Slovakia',
6761		'Slovenia',
6762		'Solomon Islands',
6763		'Somalia',
6764		'South Africa',
6765		'Spain',
6766		'Sri Lanka',
6767		'Sudan',
6768		'Sudan, South',
6769		'Suriname',
6770		'Swaziland',
6771		'Sweden',
6772		'Switzerland',
6773		'Syria',
6774		'Taiwan',
6775		'Tajikistan',
6776		'Tanzania',
6777		'Thailand',
6778		'Togo',
6779		'Tonga',
6780		'Trinidad and Tobago',
6781		'Tunisia',
6782		'Turkey',
6783		'Turkmenistan',
6784		'Tuvalu',
6785		'Uganda',
6786		'Ukraine',
6787		'United Arab Emirates',
6788		'United Kingdom',
6789		'United States',
6790		'Uruguay',
6791		'Uzbekistan',
6792		'Vanuatu',
6793		'Vatican City',
6794		'Venezuela',
6795		'Vietnam',
6796		'Virgin Islands, British',
6797		'Virgin Islands, U.S.',
6798		'Yemen',
6799		'Zambia',
6800		'Zimbabwe'
6801	]
6802};
6803
6804Mfe.Classes.ContentEvent = function(eventObj) {
6805	this.class = eventObj.class;
6806 
6807	this.eventObj = eventObj;
6808	
6809	this.revision = null;
6810	if (isEmpty(eventObj.revision) === false) {
6811		this.revision = new Mfe.Classes.ContentEventRevision(eventObj.revision);
6812	}
6813};
6814
6815Mfe.Classes.ContentEvent.prototype.getId = function() {
6816	return this.eventObj.id;
6817};
6818
6819Mfe.Classes.ContentEvent.prototype.getStatus = function() {
6820	return this.eventObj.status;
6821};
6822
6823Mfe.Classes.ContentEvent.prototype.getSiteId = function() {
6824	return this.eventObj.site.id;
6825};
6826
6827Mfe.Classes.ContentEvent.prototype.getCalendarId = function() {
6828	return this.eventObj.calendar.id;
6829};
6830
6831Mfe.Classes.ContentEvent.prototype.getStartDateUtc = function() {
6832	return this.eventObj.startDateUtc;
6833};
6834
6835Mfe.Classes.ContentEvent.prototype.getEndDateUtc = function() {
6836	return this.eventObj.endDateUtc;
6837};
6838
6839Mfe.Classes.ContentEvent.prototype.getTimeZone = function() {
6840	return this.eventObj.revision.timezone;
6841};
6842
6843Mfe.Classes.ContentEvent.prototype.getStartDate = function() {
6844	return this.eventObj.startDate;
6845};
6846
6847/*Mfe.Classes.ContentEvent.prototype.getStartDate = function() {
6848	return Create.Utils.DateTime.toTimeZone(this.getStartDateUtc(), 'UTC', this.getTimeZone());
6849};*/
6850
6851Mfe.Classes.ContentEvent.prototype.getEndDate = function() {
6852	return this.eventObj.endDate;
6853};
6854
6855
6856Mfe.Classes.ContentEvent.prototype.getRevision = function() {
6857	return this.revision;
6858};
6859
6860Mfe.Classes.ContentEvent.prototype.getTemplateVars = function(mfe) {
6861	var templateVars = {
6862		'id': this.getId(),
6863		'status': this.getStatus(),
6864		'siteId': this.getSiteId(),
6865		'calendar': null,
6866		'startDate': this.eventObj.startDate,
6867		'startDateUtc': this.getStartDateUtc(),
6868		'startDateLocal': Mfe.Utils.DateTime.toLocalDateTime(this.getStartDateUtc()),
6869		'endDateUtc': this.getEndDateUtc(),
6870		'endDate': this.eventObj.endDate,
6871		'endDateLocal': Mfe.Utils.DateTime.toLocalDateTime(this.getEndDateUtc()),
6872		'revision': null,
6873		'isSameDay': false,
6874		'isWholeDay': false
6875	};
6876	
6877	if (this.getStartDateUtc().substring(0, 10) == this.getEndDateUtc().substring(0, 10)) {
6878		templateVars.isSameDay = true;
6879	}
6880	
6881	if (
6882			( this.getStartDate().substring(11) == '00:00:00' || this.getStartDate().substring(11) == '23:59:59') && 
6883			( this.getEndDate().substring(11) == '00:00:00' || this.getEndDate().substring(11) == '23:59:59')
6884	) {
6885		templateVars.isWholeDay = true;
6886	}
6887
6888	templateVars.revision = this.revision.getTemplateVars();
6889	
6890	if (templateVars.revision.hasEventPage === true) {
6891		templateVars.linkPath = mfe.generateItemPath(this);
6892	} else {
6893		templateVars.linkPath = templateVars.revision.url;
6894	}
6895	
6896	return templateVars;
6897};
6898
6899Mfe.Classes.ContentEvent.newArray = function(eventObjs) {
6900	var authors = [];
6901	
6902	for (var i = 0; i < eventObjs.length; i++) {
6903		var eventObj = eventObjs[i];
6904		authors.push(new Mfe.Classes.ContentEvent(eventObj));
6905	}
6906	
6907	return authors;
6908};
6909
6910Mfe.Classes.ContentEvent.index = function(objs) {
6911	var index = {};
6912	
6913	for (var i = 0; i < objs.length; i++) {
6914		var obj = objs[i];
6915		index[obj.getId()] = obj;
6916	}
6917	
6918	return index;
6919}
6920
6921Mfe.Classes.ContentEventRevision = function(revisionObj) {
6922	this.class = revisionObj.class;
6923 
6924	this.revisionObj = revisionObj;
6925	this.cover = null;
6926	
6927
6928	this.fragments = [];
6929	for (var i = 0; i < this.revisionObj.fragments.length; i++) {
6930		var fragmentObj = this.revisionObj.fragments[i];
6931		this.fragments.push(new Mfe.Classes.ContentFragment(fragmentObj));
6932	}
6933	
6934	if (isEmpty(revisionObj.cover) === false && revisionObj.cover instanceof Array === false) {
6935		this.cover = new Mfe.Classes.Upload(revisionObj.cover);
6936	}
6937};
6938	
6939Mfe.Classes.ContentEventRevision.prototype.getId = function() {
6940	return this.revisionObj.id;
6941};
6942
6943Mfe.Classes.ContentEventRevision.prototype.getTitle = function() {
6944	return this.revisionObj.title;
6945};
6946
6947Mfe.Classes.ContentEventRevision.prototype.getDescription = function() {
6948	return this.revisionObj.description;
6949};
6950
6951Mfe.Classes.ContentEventRevision.prototype.getFragments = function() {
6952	return this.fragments;
6953};
6954
6955Mfe.Classes.ContentEventRevision.prototype.getUrl = function() {
6956	return this.revisionObj.url;
6957};
6958
6959Mfe.Classes.ContentEventRevision.prototype.getUrlLabel = function() {
6960	return this.revisionObj.urlLabel;
6961};
6962
6963Mfe.Classes.ContentEventRevision.prototype.isAllDay = function() {
6964	var startTime = this.revisionObj.startDateTime.substring(11,19);
6965	var endTime = this.revisionObj.endDateTime.substring(11,19);
6966
6967	if (startTime == '00:00:00' && endTime == '23:59:59') {
6968		return true;
6969	}
6970
6971	return false;
6972};
6973
6974Mfe.Classes.ContentEventRevision.prototype.getStartDateUtc = function() {
6975	var momentDate = moment(this.revisionObj.startDate).utc();
6976	return momentDate.format('YYYY-MM-DD HH:mm:ss');
6977}
6978Mfe.Classes.ContentEventRevision.prototype.getStartDate = function() {
6979	return this.revisionObj.startDateTime.substring(0, 10);
6980}
6981Mfe.Classes.ContentEventRevision.prototype.getEndDate = function() {
6982	return this.revisionObj.endDateTime.substring(0, 10);
6983}
6984Mfe.Classes.ContentEventRevision.prototype.getEndDateUtc = function() {
6985	var momentDate = moment(this.revisionObj.endDate).utc();
6986	return momentDate.format('YYYY-MM-DD HH:mm:ss');
6987}
6988Mfe.Classes.ContentEventRevision.prototype.getLocationAddress = function() {
6989	return this.revisionObj.location.address;
6990}
6991Mfe.Classes.ContentEventRevision.prototype.getLocationCity = function() {
6992	return this.revisionObj.location.city;
6993}
6994Mfe.Classes.ContentEventRevision.prototype.getLocationCountry = function() {
6995	return this.revisionObj.location.country;
6996}
6997Mfe.Classes.ContentEventRevision.prototype.getLocationVenue = function() {
6998	return this.revisionObj.location.venue;
6999}
7000Mfe.Classes.ContentEventRevision.prototype.hasCover = function() {
7001	return this.cover !== null;
7002}
7003Mfe.Classes.ContentEventRevision.prototype.getCover = function() {
7004	return this.cover;
7005}
7006Mfe.Classes.ContentEventRevision.prototype.hasEventPage = function() {
7007	return this.revisionObj.hasEventPage;
7008}
7009Mfe.Classes.ContentEventRevision.prototype.getTemplateVars = function() {
7010	var templateVars = {
7011		'id': this.getId(),
7012		'title': this.getTitle(),
7013		'description': this.getDescription(),
7014		'hasEventPage': this.hasEventPage(),
7015		'cover': null,
7016		'url': this.getUrl(),
7017		'urlLabel': this.getUrlLabel(),
7018		'location': {
7019			'address': this.getLocationAddress(),
7020			'city': this.getLocationCity(),
7021			'country': this.getLocationCountry(),
7022			'venue': this.getLocationVenue()
7023		},
7024		'fragments': []
7025	};
7026	
7027	if (isEmpty(this.cover) === false) {
7028		templateVars.cover = this.cover.getTemplateVars();
7029	}
7030	
7031	return templateVars;
7032}
7033
7034Mfe.Classes.ContentEventRevision.newArray = function(revisionObjs) {
7035	var authors = [];
7036	
7037	for (var i = 0; i < revisionObjs.length; i++) {
7038		var revisionObj = revisionObjs[i];
7039		authors.push(new Mfe.Classes.ContentEventRevision(revisionObj));
7040	}
7041	
7042	return authors;
7043};
7044
7045Mfe.Classes.ContentEventRevision.index = function(objs) {
7046	var index = {};
7047	
7048	for (var i = 0; i < objs.length; i++) {
7049		var obj = objs[i];
7050		index[obj.getId()] = obj;
7051	}
7052	
7053	return index;
7054}
7055
7056Mfe.Classes.ContentExternalData = function(dataObj) {
7057	this.class = 'ContentExternalData';
7058	
7059	this.dataObj = dataObj;
7060};
7061Mfe.Classes.ContentExternalData.prototype.getTemplateVars = function(mfe) {
7062	return this.dataObj;
7063};
7064Mfe.Classes.ContentForm = function(formObj) {
7065	this.class = 'Mfe.Classes.ContentForm';
7066	this.formObj = formObj;
7067	
7068	this.panels = [];
7069	for (var i = 0; i < this.formObj.panels.length; i++) {
7070		var panelObj = this.formObj.panels[i];
7071		this.panels.push(new Mfe.Classes.ContentFormPanel(panelObj));
7072	}
7073};
7074Mfe.Classes.ContentForm.prototype.getData = function() {
7075	return this.formObj;
7076};
7077Mfe.Classes.ContentForm.prototype.getId = function() {
7078	return this.formObj.id;
7079};
7080Mfe.Classes.ContentForm.prototype.getTitle = function() {
7081	return this.formObj.title;
7082};
7083Mfe.Classes.ContentForm.prototype.getPanels = function() {
7084	return this.panels;
7085};
7086Mfe.Classes.ContentForm.prototype.getFields = function() {
7087	var fields = [];
7088	var panels = this.getPanels();
7089	
7090	for (var i = 0; i < panels.length; i++) {
7091		var panel = panels[i];
7092		var panelFields = panel.getFields();
7093		
7094		for (var j = 0; j < panelFields.length; j++) {
7095			var field = panelFields[j];
7096			fields.push(field);
7097		}
7098	}
7099	
7100	return fields;
7101};
7102Mfe.Classes.ContentForm.prototype.getTemplateVars = function() {
7103	var templateVars = {
7104		'id': this.getId(),
7105		'title': this.getTitle(),
7106		'panels': []
7107	};
7108	
7109	for (var i = 0; i < this.panels.length; i++) {
7110		templateVars.panels.push(this.panels[i].getTemplateVars());
7111	}
7112	
7113	return templateVars;
7114};
7115Mfe.Classes.ContentFormPanel = function(panelObj) {
7116	this.panelObj = panelObj;
7117	
7118	this.fields = [];
7119	for (var i = 0; i < this.panelObj.fields.length; i++) {
7120		var fieldObj = this.panelObj.fields[i];
7121		this.fields.push(new Mfe.Classes.ContentFormPanelField(fieldObj));
7122	}
7123};
7124Mfe.Classes.ContentFormPanel.prototype.getId = function() {
7125	return this.panelObj.id;
7126};
7127Mfe.Classes.ContentFormPanel.prototype.getLabel = function() {
7128	return this.panelObj.label;
7129};
7130Mfe.Classes.ContentFormPanel.prototype.getDescription = function() {
7131	return this.panelObj.description;
7132};
7133Mfe.Classes.ContentFormPanel.prototype.getFields = function() {
7134	return this.fields;
7135};
7136Mfe.Classes.ContentFormPanel.prototype.getTemplateVars = function() {
7137	var templateVars = {
7138		'id': this.getId(),
7139		'label': this.getLabel(),
7140		'description': this.getDescription(),
7141		'fields': []
7142	};
7143
7144	for (var i = 0; i < this.fields.length; i++) {
7145		templateVars.fields.push(this.fields[i].getTemplateVars());
7146	}
7147	
7148	
7149	return templateVars;
7150};
7151Mfe.Classes.ContentFormPanelField = function(fieldObj) {
7152	this.fieldObj = fieldObj;
7153		
7154	this.options = [];
7155	for (var i = 0; i < this.fieldObj.options.length; i++) {
7156		var optionObj = this.fieldObj.options[i];
7157		this.options.push(new Mfe.Classes.ContentFormPanelFieldOption(optionObj));
7158	}
7159};
7160Mfe.Classes.ContentFormPanelField.prototype.getId = function() {
7161	return this.fieldObj.id;
7162};
7163Mfe.Classes.ContentFormPanelField.prototype.getLabel = function() {
7164	return this.fieldObj.label;
7165};
7166Mfe.Classes.ContentFormPanelField.prototype.getComment = function() {
7167	return this.fieldObj.comment;
7168};
7169Mfe.Classes.ContentFormPanelField.prototype.getType = function() {
7170	return this.fieldObj.type;
7171};
7172Mfe.Classes.ContentFormPanelField.prototype.getValidation = function() {
7173	return this.fieldObj.validation;
7174};
7175Mfe.Classes.ContentFormPanelField.prototype.isRequired = function() {
7176	return this.fieldObj.isRequired;
7177};
7178Mfe.Classes.ContentFormPanelField.prototype.getSettings = function() {
7179	return this.fieldObj.settings;
7180};
7181Mfe.Classes.ContentFormPanelField.prototype.getTemplateVars = function() {
7182	var templateVars = {
7183		'id': this.getId(),
7184		'label': this.getLabel(),
7185		'comment': this.getComment(),
7186		'type': this.getType(),
7187		'isRequired': this.isRequired(),
7188		'options': [],
7189		'settings': this.getSettings()
7190	};
7191	
7192	for (var i = 0; i < this.options.length; i++) {
7193		templateVars.options.push(this.options[i].getTemplateVars());
7194	}
7195	
7196	return templateVars;
7197};
7198Mfe.Classes.ContentFormPanelFieldOption = function(optionObj) {
7199	this.optionObj = optionObj;
7200};
7201Mfe.Classes.ContentFormPanelFieldOption.prototype.getId = function() {
7202	return this.optionObj.id;
7203};
7204Mfe.Classes.ContentFormPanelFieldOption.prototype.getLabel = function() {
7205	return this.optionObj.label;
7206};
7207Mfe.Classes.ContentFormPanelFieldOption.prototype.getTemplateVars = function() {
7208	var templateVars = {
7209		'id': this.getId(),
7210		'label': this.getLabel()
7211	};
7212	
7213	return templateVars;
7214};
7215Mfe.Classes.ContentFragment = function(fragmentObj) {
7216	this.fragmentObj = fragmentObj;
7217	
7218	this.settings = this.fragmentObj.settings;
7219	this.upload = null;
7220	if (this.fragmentObj.type == 'CMSImageWidget' || this.fragmentObj.type == 'CMSTextImageWidget') {
7221		if (isEmpty(this.fragmentObj.settings) === false && isEmpty(this.fragmentObj.settings.imageSource) === false) {
7222			if (this.fragmentObj.settings.imageSource == 'upload' && isEmpty(this.fragmentObj.settings.imageUpload) === false) {
7223				this.upload = Mfe.Classes.Upload.fromOldUpload(this.fragmentObj.settings.imageUpload)
7224			}
7225		}
7226	}
7227};
7228Mfe.Classes.ContentFragment.prototype.getType = function() {
7229	return this.fragmentObj.type;
7230};
7231Mfe.Classes.ContentFragment.prototype.getSetting = function(name, defaultValue) {
7232	if (isEmpty(this.fragmentObj.settings[name]) === true) {
7233		return defaultValue;
7234	}
7235	
7236	return this.fragmentObj.settings[name];
7237};
7238Mfe.Classes.ContentFragment.prototype.getSettings = function() {
7239	return this.fragmentObj.settings;
7240};
7241Mfe.Classes.ContentFragment.prototype.getUpload = function() {
7242	return this.upload;
7243};
7244
7245Mfe.Classes.ContentFragment.prototype.getTemplateVars = function() {
7246	var templateVars = {
7247		'type': this.getType()
7248	};
7249	
7250	var fragmentType = this.getType();
7251	if (fragmentType == 'CMSTextWidget' || fragmentType == 'CMSTextImageWidget') {
7252		templateVars.html = this.getSetting('contentHTML', '');
7253	}
7254	
7255	if (fragmentType == 'CMSQuoteWidget') {
7256		templateVars.html = this.getSetting('contentHTML', '');
7257		
7258		var splitChar = "~";
7259		//var splitChar = "\u2014";
7260		var splitCharPos = templateVars.html.indexOf(splitChar);
7261		if (splitCharPos > -1) {
7262			var htmlQuotePart = templateVars.html.substring(0, splitCharPos);
7263			var htmlQuoteSourcePart = templateVars.html.substring(splitCharPos);
7264			templateVars.html = htmlQuotePart + '<div class="cite">'+htmlQuoteSourcePart+'</div>';
7265		}
7266	}
7267		
7268	if (fragmentType == 'CMSImageWidget' || fragmentType == 'CMSTextImageWidget') {
7269		var imageLink = this.getSetting('imageLink', null);
7270		var imageSource = this.getSetting('imageSource', null);
7271		
7272		templateVars.imageSource = imageSource;
7273		templateVars.imageLink = imageLink;
7274		
7275		if (isEmpty(imageSource) === false && imageSource == 'upload') {
7276			var imageUpload = this.getSetting('imageUpload', null);
7277			if (isEmpty(imageUpload) === false) {
7278				templateVars.media = {
7279					'type': imageUpload.mediaType,
7280					'files': imageUpload.files
7281				};
7282			}
7283		} else if (imageSource == 'url') {
7284			templateVars.imageUrl = this.getSetting('imageURL', null);
7285		}
7286		
7287		if (fragmentType == 'CMSTextImageWidget') {
7288			templateVars.imageAlignment = this.getSetting('imageAlignment', 'left');
7289		}
7290		
7291		templateVars.imageCopyright = this.getSetting('imageCopyright', '');
7292		templateVars.imageCopyrightUrl = this.getSetting('imageCopyrightUrl', '');
7293	}
7294	
7295	if (fragmentType == 'CMSEmbedWidget') {
7296		
7297		var embedHtml = this.generateEmbedHtml(this.settings);
7298		
7299		templateVars.embedHtml = embedHtml;
7300		templateVars.embedVendor = this.settings.vendor;
7301		templateVars.embedStatusClass = 'loaded';
7302		
7303		if (templateVars.embedVendor == 'twitter') {
7304			templateVars.embedStatusClass = 'loading';
7305			templateVars.embedOembedUrl = 'https://publish.twitter.com/oembed?url=' + encodeURIComponent(this.settings.vendorEmbedCode);
7306		} else if (templateVars.embedVendor == 'instagram') {
7307			templateVars.embedHtml = this.settings.vendorEmbedCode;
7308			templateVars.embedStatusClass = 'loading';
7309
7310			if (this.settings.vendorEmbedCode.length == 0 && this.settings.vendorContentID.length > 0) {
7311				var fakeInstagramUrl = 'https://www.instagram.com/p/' + encodeURIComponent(this.settings.vendorContentID);
7312				templateVars.embedOembedUrl = 'https://api.instagram.com/oembed?url=' + encodeURIComponent(fakeInstagramUrl);
7313			} else {
7314				templateVars.embedOembedUrl = 'https://api.instagram.com/oembed?url=' + encodeURIComponent(this.settings.vendorEmbedCode);
7315			}
7316			
7317			
7318		} else if (templateVars.embedVendor == 'vimeo') {
7319			templateVars.embedHtml = this.settings.vendorEmbedCode;
7320			templateVars.embedStatusClass = 'loading';
7321			
7322			if (this.settings.vendorEmbedCode.length == 0 && this.settings.vendorContentID.length > 0) {
7323				var fakeVimeoUrl = 'https://vimeo.com/' + encodeURIComponent(this.settings.vendorContentID);
7324				templateVars.embedOembedUrl = 'https://vimeo.com/api/oembed.json?url=' + encodeURIComponent(fakeVimeoUrl);
7325			} else {
7326				templateVars.embedOembedUrl = 'https://vimeo.com/api/oembed.json?url=' + encodeURIComponent(this.settings.vendorEmbedCode);
7327			}
7328			
7329		} 
7330		
7331	}
7332
7333	return templateVars;
7334};
7335
7336Mfe.Classes.ContentFragment.prototype.generateEmbedHtml = function(embedSettings) {
7337	if (isEmpty(embedSettings) === true || isEmpty(embedSettings.vendor) === true) {
7338		return '';
7339	}
7340	
7341	var embedHtml = '';
7342	if (embedSettings.vendor == 'youtube') {
7343		embedHtml = '<iframe width="100%" height="100%" src="https://www.youtube.com/embed/'+Mfe.Utils.Text.escapeHtml(Mfe.Utils.Js.encodeUriParam(embedSettings.vendorContentID))+'" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>'
7344	} else if (embedSettings.vendor == 'iframe') {
7345		
7346		var hostname = Mfe.Utils.Text.parseHostname(embedSettings.vendorContentID);
7347		var hostnameClass = hostname.replace(/\./g, '-');
7348		
7349		var height = '100%';
7350		
7351		if (isEmpty(embedSettings.vendorSpecificHeight) === false) {
7352			height = embedSettings.vendorSpecificHeight.toString();
7353			
7354			if (height.substring(height.length - 2, height.length) != 'px' &&height.substring(height.length - 1, height.length) != '%') {
7355				height = height + 'px';
7356			}
7357		}
7358		
7359		embedHtml = '<iframe class="iframe-embed-fragment embed-domain-'+hostnameClass+'" width="100%" style="height: ' + height + ';" src="'+Mfe.Utils.Text.escapeHtml(embedSettings.vendorContentID)+'" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>';
7360	} else if (embedSettings.vendor == 'twitter') {
7361		
7362	}
7363	
7364	var htmlWrapperArr = [
7365		'<div style="">',
7366			'<div style="">',
7367			embedHtml,
7368			'</div>',
7369		'</div>'
7370	];
7371	var htmlWrapper = htmlWrapperArr.join('');
7372	
7373	return htmlWrapper;
7374};
7375Mfe.Classes.ContentMedia = function(mediaObj) {
7376	this.class = mediaObj.class;
7377	
7378	this.mediaObj = mediaObj;
7379};
7380Mfe.Classes.ContentMedia.prototype.getId = function() {
7381	return this.getMediaId();
7382};
7383Mfe.Classes.ContentMedia.prototype.getType = function() {
7384	return this.mediaObj.type;
7385};
7386Mfe.Classes.ContentMedia.prototype.getMediaType = function() {
7387	return this.mediaObj.mediaType;
7388};
7389Mfe.Classes.ContentMedia.prototype.getMediaSubType = function() {
7390	return this.mediaObj.mediaSubType;
7391};
7392Mfe.Classes.ContentMedia.prototype.getMediaId = function() {
7393	return this.mediaObj.mediaID;
7394};
7395Mfe.Classes.ContentMedia.prototype.getInfo = function() {
7396	return this.mediaObj.info;
7397};
7398Mfe.Classes.ContentMedia.prototype.getTitle = function() {
7399	return this.mediaObj.info.title;
7400};
7401Mfe.Classes.ContentMedia.prototype.getMediaUrl = function() {
7402	var url;
7403	
7404	if (this.getMediaType() == 'mobypicture' && this.getMediaSubType() == 'photo') {
7405		url = this.mediaObj.info.media.location.replace('_view', '_large');
7406	} 
7407	
7408	return url;
7409};
7410Mfe.Classes.ContentMedia.prototype.getImageUrl = function() {
7411	var url;
7412	
7413	if (this.getMediaType() == 'mobypicture' && this.getMediaSubType() == 'photo') {
7414		
7415		if (typeof this.mediaObj.info.media.thumbnails.large !== 'undefined') {
7416			url = this.mediaObj.info.media.thumbnails.large;			
7417		} else {
7418			url = this.mediaObj.info.media.thumbnails.view;	
7419		}
7420
7421	}  else if (this.getMediaType() == 'mobypicture' && this.getMediaSubType() == 'video') {
7422		url = this.mediaObj.info.media.thumbnails.view;
7423	}
7424	 
7425	return url;
7426};
7427Mfe.Classes.ContentMedia.prototype.getDescription = function() {
7428	return this.mediaObj.info.description;
7429};
7430Mfe.Classes.ContentMedia.prototype.getCreationDateLocal = function() {
7431	var remoteDate = new Date(this.mediaObj.datetime);
7432	var utcDateTime = remoteDate.getUTCDateTime();
7433	
7434	var localDatetime = Mfe.Utils.DateTime.toLocalDateTime(utcDateTime);
7435	
7436	return localDatetime;
7437};
7438
7439Mfe.Classes.ContentMedia.prototype.getTemplateVars = function(mfe) {
7440	var templateVars = {
7441		'id': this.getId(),
7442		'queryId': (isEmpty(this.mediaObj.streamMediaID) === false ? this.mediaObj.streamMediaID : '0'),
7443		'source': this.getMediaType(),
7444		'type': this.getMediaSubType(),
7445		'title': this.getTitle(),
7446		'description': this.getDescription(),
7447		'publicationDateUtc': new Date(this.mediaObj.datetime).getUTCDateTime(),
7448		'media': {
7449			'url': this.getMediaUrl(),
7450			'thumbnail': this.mediaObj.info.media.thumbnails.view
7451		},
7452		'linkPath': mfe.generateItemPath(this)
7453	};
7454	
7455	return templateVars;
7456};
7457Mfe.Classes.ContentMmdMedia = function(mediaObj) {
7458	this.class = mediaObj.class;
7459	this.mediaObj = mediaObj;
7460	
7461	this.indexedFiles = {};
7462	for (var i = 0; i < mediaObj.files.length; i++) {
7463		var fileObj = mediaObj.files[i];
7464		
7465		if (typeof this.indexedFiles[fileObj.groupKey] === 'undefined') {
7466			this.indexedFiles[fileObj.groupKey] = {};
7467		}
7468		
7469		if (typeof this.indexedFiles[fileObj.groupKey][fileObj.type] === 'undefined') {
7470			this.indexedFiles[fileObj.groupKey][fileObj.type] = {};
7471		}
7472		
7473		if (typeof this.indexedFiles[fileObj.groupKey][fileObj.type][fileObj.format] === 'undefined') {
7474			this.indexedFiles[fileObj.groupKey][fileObj.type][fileObj.format] = {};
7475		}
7476		
7477		if (typeof this.indexedFiles[fileObj.groupKey][fileObj.type][fileObj.format][fileObj.videoRes
7477olution.descriptor] === 'undefined') {
7478			this.indexedFiles[fileObj.groupKey][fileObj.type][fileObj.format][fileObj.videoResolution.descriptor] = fileObj;
7479		}
7480	}
7481};
7482
7483Mfe.Classes.ContentMmdMedia.prototype.getId = function() {
7484	return this.mediaObj.id;
7485};
7486
7487Mfe.Classes.ContentMmdMedia.prototype.getType = function() {
7488	return this.mediaObj.type;
7489};
7490Mfe.Classes.ContentMmdMedia.prototype.getIndexedFiles = function() {
7491	return this.indexedFiles;
7492};
7493Mfe.Classes.ContentMmdMedia.prototype.getTypeName = function() {
7494	if (this.getType() == 'v') {
7495		return 'video';
7496	}
7497};
7498
7499Mfe.Classes.ContentMmdMedia.prototype.getAvailability = function() {
7500	return this.mediaObj.availability;
7501};
7502
7503Mfe.Classes.ContentMmdMedia.prototype.getTemplateVars = function(mfe) {
7504	var templateVars = {
7505		'id': this.getId(),
7506		'status': this.getStatus(),
7507		'siteId': this.getSiteId(),
7508		'calendar': null,
7509		'startDateUtc': this.getStartDateUtc(),
7510		'startDateLocal': Mfe.Utils.DateTime.toLocalDateTime(this.getStartDateUtc()),
7511		'endDateUtc': this.getEndDateUtc(),
7512		'endDateLocal': Mfe.Utils.DateTime.toLocalDateTime(this.getEndDateUtc()),
7513		'revision': null,
7514		'isSameDay': false
7515	};
7516	
7517	if (this.getStartDateUtc().substring(0, 10) == this.getEndDateUtc().substring(0, 10)) {
7518		templateVars.isSameDay = true;
7519	}
7520	
7521	templateVars.revision = this.revision.getTemplateVars();
7522	templateVars.linkPath = mfe.generateItemPath(this);
7523	
7524	return templateVars;
7525};
7526
7527Mfe.Classes.ContentMmdMedia.newArray = function(mediaObjs) {
7528	var authors = [];
7529	
7530	for (var i = 0; i < mediaObjs.length; i++) {
7531		var mediaObj = mediaObjs[i];
7532		authors.push(new Mfe.Classes.ContentMmdMedia(mediaObj));
7533	}
7534	
7535	return authors;
7536};
7537
7538Mfe.Classes.ContentMmdMedia.index = function(objs) {
7539	var index = {};
7540	
7541	for (var i = 0; i < objs.length; i++) {
7542		var obj = objs[i];
7543		index[obj.getId()] = obj;
7544	}
7545	
7546	return index;
7547};
7548
7549Mfe.Classes.ContentMmdPlaylist = function(playlistObj) {
7550	this.class = playlistObj.class;
7551	this.playlistObj = playlistObj;
7552	
7553	this.mediaItems = [];
7554	for (var i = 0; i < this.playlistObj.media.length; i++) {
7555		var mediaItem = new Mfe.Classes.ContentMmdMedia(this.playlistObj.media[i]);
7556		this.mediaItems.push(mediaItem);
7557	}
7558};
7559
7560Mfe.Classes.ContentMmdPlaylist.prototype.getId = function() {
7561	return this.playlistObj.id;
7562};
7563
7564Mfe.Classes.ContentMmdPlaylist.prototype.getMediaItems = function() {
7565	return this.mediaItems;
7566};
7567
7568Mfe.Classes.ContentMmdPlaylist.prototype.getTemplateVars = function(mfe) {
7569	var templateVars = {
7570		'id': this.getId()
7571	};
7572	
7573	return templateVars;
7574};
7575
7576Mfe.Classes.ContentMmdPlaylist.newArray = function(playlistObjs) {
7577	var authors = [];
7578	
7579	for (var i = 0; i < playlistObjs.length; i++) {
7580		var playlistObj = playlistObjs[i];
7581		authors.push(new Mfe.Classes.ContentMmdPlaylist(playlistObj));
7582	}
7583	
7584	return authors;
7585};
7586
7587Mfe.Classes.ContentMmdPlaylist.index = function(objs) {
7588	var index = {};
7589	
7590	for (var i = 0; i < objs.length; i++) {
7591		var obj = objs[i];
7592		index[obj.getId()] = obj;
7593	}
7594	
7595	return index;
7596};
7597
7598Mfe.Classes.ContentPost = function(postObj) {
7599	this.class = postObj.class;
7600	
7601	this.postObj = postObj;
7602	
7603	this.revisionsByLang = {};
7604	this.revisions = [];
7605	
7606	for (var i = 0; i < this.postObj.revisions.length; i++) {
7607		var revisionObj = this.postObj.revisions[i];
7608		var revision = new Mfe.Classes.ContentRevision(revisionObj);
7609		
7610		this.revisions.push(revision);
7611		this.revisionsByLang[revision.getLanguage()] = revision;
7612	}
7613	
7614	this.updates = [];
7615	if (isEmpty(this.postObj.updates) === false) {
7616		for (var i = 0; i < this.postObj.updates.length; i++) {
7617			var updateObj = this.postObj.updates[i];
7618			var update = new Mfe.Classes.ContentUpdate(updateObj);
7619
7620			this.updates.push(update);
7621		}
7622	}
7623	
7624	this.storylines = [];
7625	if (isEmpty(this.postObj.storylines) === false) {
7626		for (var i = 0; i < this.postObj.storylines.length; i++) {
7627			var storylineObj = this.postObj.storylines[i];
7628			var storyline = new Mfe.Classes.SiteStoryline(storylineObj);
7629
7630			this.storylines.push(storyline);
7631		}
7632	}
7633	
7634	if (this.postObj.type == 'blog') {
7635		var cmsBlogGroup = mfe.siteBundle.getCmsBlogGroupById(this.postObj.postGroup.id);
7636		if (isEmpty(cmsBlogGroup) === true) {
7637			this.postObj.postGroup = {
7638				'id': 0,
7639				'title': 'Dummy Blog'
7640			};
7641		}
7642	}
7643};
7644Mfe.Classes.ContentPost.prototype.getId = function() {
7645	return this.postObj.id;
7646};
7647Mfe.Classes.ContentPost.prototype.getQueryId = function() {
7648	return (isEmpty(this.postObj.queryId) === false ? this.postObj.queryId : '0');
7649};
7650Mfe.Classes.ContentPost.prototype.getType = function() {
7651	return this.postObj.type;
7652};
7653Mfe.Classes.ContentPost.prototype.getStatus = function() {
7654	return this.postObj.status;
7655};
7656Mfe.Classes.ContentPost.prototype.getSiteId = function() {
7657	return this.postObj.site.id;
7658};
7659Mfe.Classes.ContentPost.prototype.getPostGroupId = function() {
7660	return this.postObj.postGroup.id;
7661};
7662Mfe.Classes.ContentPost.prototype.getCreationDateUtc = function() {
7663	return this.postObj.creationDateUtc;
7664};
7665Mfe.Classes.ContentPost.prototype.getPublicationDateTs = function() {
7666	return this.postObj.publicationDateTs;
7667};
7668Mfe.Classes.ContentPost.prototype.getPublicationDateUtc = function() {
7669	return this.postObj.publicationDateUtc;
7670};
7671Mfe.Classes.ContentPost.prototype.getPublicationDateIso8601 = function() {
7672        let isoDate = this.postObj.publicationDateUtc.replace(' ', 'T');
7673        return isoDate + 'Z';
7674};
7675Mfe.Classes.ContentPost.prototype.getScheduledDateUtc = function() {
7676	return this.postObj.scheduleDateUtc;
7677};
7678Mfe.Classes.ContentPost.prototype.getLastModifiedDateUtc = function() {
7679	return this.postObj.lastModifiedDateUtc;
7680};
7681Mfe.Classes.ContentPost.prototype.getVisibilityExcludeIndexing = function() {
7682	return this.postObj.visibilityExcludeIndexing;
7683};
7684Mfe.Classes.ContentPost.prototype.getRevisionLanguages = function() {
7685	return Object.keys(this.revisionsByLang);
7686};
7687Mfe.Classes.ContentPost.prototype.getRevisionByLanguage = function(lang) {
7688
7689	var languageRevision;
7690	if (isEmpty(this.revisionsByLang[lang]) === false) {
7691		languageRevision = this.revisionsByLang[lang];
7692	} else {
7693		languageRevision = this.revisions[0];
7694	}
7695		
7696	return languageRevision;
7697};
7698Mfe.Classes.ContentPost.prototype.getUpdates = function() {
7699	return this.updates;
7700};
7701Mfe.Classes.ContentPost.prototype.getStorylines = function() {
7702	return this.storylines;
7703};
7704Mfe.Classes.ContentPost.prototype.getRevisionObjects = function() {
7705	var revisionObjs = {};
7706	for (var i = 0; i < this.revisions.length; i++) {
7707		var revision = this.revisions[i];
7708		revisionObjs[revision.getLanguage()] = revision.getRevisionObject();
7709	}
7710	
7711	return revisionObjs;
7712};
7713
7714Mfe.Classes.ContentPost.prototype.getTemplateVars = function(mfe, revision, includeReadTime) {
7715	var templateVars = {
7716		'id': this.getId(),
7717		'queryId': (isEmpty(this.postObj.queryId) === false ? this.postObj.queryId : '0'),
7718		'status': this.getStatus(),
7719		'siteId': this.getSiteId(),
7720		'blogGroup': null,
7721		'path': null,
7722		'revision': null,
7723		'creationDateUtc': this.getCreationDateUtc(),
7724		'publicationDateUtc': this.getPublicationDateUtc(),
7725		'scheduledDateUtc': this.getScheduledDateUtc(),
7726		'creationDateLocal': Mfe.Utils.DateTime.toLocalDateTime(this.getCreationDateUtc()),
7727		'publicationDateLocal': Mfe.Utils.DateTime.toLocalDateTime(this.getPublicationDateUtc()),
7728		'scheduledDateLocal': Mfe.Utils.DateTime.toLocalDateTime(this.getScheduledDateUtc())
7729	};
7730	
7731	if (isEmpty(revision) === false) {
7732		templateVars.revision = revision.getTemplateVars(includeReadTime);
7733	} else if (this.revisions.length > 0) {
7734		
7735		var languageRevision;
7736		if (isEmpty(this.revisionsByLang[mfe.pageLanguage]) === false) {
7737			languageRevision = this.revisionsByLang[mfe.pageLanguage];
7738		} else {
7739			languageRevision = this.revisions[0];
7740		}
7741		
7742		templateVars.revision = languageRevision.getTemplateVars(includeReadTime);
7743	}
7744	
7745	if (this.postObj.type == 'blog') {
7746		var cmsBlogGroup = mfe.siteBundle.getCmsBlogGroupById(this.postObj.postGroup.id);
7747		if (isEmpty(cmsBlogGroup) === false) {
7748			templateVars.blogGroup = cmsBlogGroup.getTemplateVars();
7749			templateVars.categoryBlockCssVars = [
7750				'--wc-category-block-bg-color: var(--wc-category-block-'+templateVars.blogGroup.id+'-bg-color)',
7751				'--wc-category-block-fg-color: var(--wc-category-block-'+templateVars.blogGroup.id+'-fg-color)',
7752				'--wc-category-text-fg-color: var(--wc-category-text-'+templateVars.blogGroup.id+'-fg-color)'
7753			].join('; ');
7754		} else {
7755			templateVars.blogGroup = this.postObj.postGroup;
7756		}
7757		
7758		templateVars.linkPath = mfe.generateItemPath(this);
7759		delete templateVars.path;
7760	} else if (this.postObj.type == 'page') {
7761		templateVars.path = this.postObj.path;
7762		
7763		templateVars.linkPath = mfe.generateItemPath(this);
7764		
7765		delete templateVars.blogGroup;
7766	}
7767	
7768	return templateVars;
7769};
7770
7771Mfe.Classes.ContentPost.instantiate = function(postObj) {
7772	if (postObj.type == 'blog') {
7773		return new Mfe.Classes.ContentPostBlog(postObj);
7774	} else if (postObj.type == 'page') {
7775		return new Mfe.Classes.ContentPostPage(postObj);
7776	}
7777}
7778
7779Mfe.Classes.ContentPost.newArray = function(postObjs) {
7780	var posts = [];
7781	
7782	for (var i = 0; i < postObjs.length; i++) {
7783		var postObj = postObjs[i];
7784		posts.push(Mfe.Classes.ContentPost.instantiate(postObj));
7785	}
7786	
7787	return posts;
7788}
7789Mfe.Classes.ContentPostBlog = function(blogObj) {
7790	this.name = 'ContentPostBlog';
7791	Mfe.Classes.ContentPost.apply(this, arguments);
7792	
7793	var blogObj = blogObj;
7794};
7795Mfe.Classes.ContentPostBlog.inherits(Mfe.Classes.ContentPost);
7796
7797Mfe.Classes.ContentPostPage = function(blogObj) {
7798	this.name = 'ContentPostPage';
7799	Mfe.Classes.ContentPost.apply(this, arguments);
7800	
7801	var blogObj = blogObj;
7802};
7803Mfe.Classes.ContentPostPage.inherits(Mfe.Classes.ContentPost);
7804Mfe.Classes.ContentPostPage.prototype.getPath = function() {
7805	return this.postObj.path;
7806}
7807Mfe.Classes.ContentRevision = function(revisionObj) {
7808	this.revisionObj = revisionObj;
7809	
7810	this.author = null;
7811	if (isEmpty(this.revisionObj.author) === false) {
7812		this.author = new Mfe.Classes.SiteAuthor(this.revisionObj.author);
7813	}
7814	
7815	this.fragments = [];
7816	for (var i = 0; i < this.revisionObj.fragments.length; i++) {
7817		var fragmentObj = this.revisionObj.fragments[i];
7818		this.fragments.push(new Mfe.Classes.ContentFragment(fragmentObj));
7819	}
7820	
7821	this.cover = null;
7822	if (isEmpty(this.revisionObj.cover) === false && isEmpty(this.revisionObj.cover.upload) === false) {
7823		this.cover = new Mfe.Classes.Upload(this.revisionObj.cover);
7824	}
7825};
7826Mfe.Classes.ContentRevision.prototype.getId = function() {
7827	return this.revisionObj.id;
7828};
7829Mfe.Classes.ContentRevision.prototype.getAuthor = function() {
7830	return this.author;
7831};
7832Mfe.Classes.ContentRevision.prototype.getLanguage = function() {
7833	return this.revisionObj.language;
7834};
7835Mfe.Classes.ContentRevision.prototype.getTitle = function() {
7836	return this.revisionObj.title;
7837};
7838Mfe.Classes.ContentRevision.prototype.getSlug = function() {
7839	return this.revisionObj.slug;
7840};
7841Mfe.Classes.ContentRevision.prototype.getSummary = function() {
7842	return this.revisionObj.summary;
7843};
7844Mfe.Classes.ContentRevision.prototype.getFragments = function() {
7845	return this.fragments;
7846};
7847Mfe.Classes.ContentRevision.prototype.getTags = function() {
7848	return this.revisionObj.tags;
7849};
7850Mfe.Classes.ContentRevision.prototype.getRevisionObject = function() {
7851	return this.revisionObj;
7852};
7853Mfe.Classes.ContentRevision.prototype.getCover = function() {
7854	return this.cover;
7855};
7856Mfe.Classes.ContentRevision.prototype.getImageFromFragments = function() {
7857	for (var i = 0; i < this.fragments.length; i++) {
7858		var fragment = this.fragments[i];
7859		
7860		if (fragment.upload !== null) {
7861			return {
7862				'type': 'upload',
7863				'upload': fragment.upload
7864			};
7865		}
7866		
7867		if (fragment.settings.imageURL && fragment.settings.imageURL.length > 0) {
7868			return {
7869				'type': 'url',
7870				'url': fragment.settings.imageURL
7871			}
7872		}
7873	}
7874	
7875	return null;
7876};
7877Mfe.Classes.ContentRevision.prototype.getOgImage = function() {
7878	var ogImage = {
7879		'url': '',
7880		'width': '',
7881		'height': ''
7882	};
7883	
7884	var cover = this.getCover();
7885	if (isEmpty(cover) === true) {
7886		return ogImage;
7887	}
7888	
7889	var mediaFileObj = cover.getMediaFileBySize('box1024');
7890	if (isEmpty(mediaFileObj) === true) {
7891		return ogImage;
7892	}
7893	
7894	ogImage.url = mediaFileObj.url;
7895	ogImage.width = mediaFileObj.width;
7896	ogImage.height = mediaFileObj.height;
7897	
7898	return ogImage;
7899	
7900};
7901Mfe.Classes.ContentRevision.prototype.getReadTime = function() {
7902	var noImages = 0;
7903	var noWords = 0;
7904	var fragments = this.getFragments();
7905	for (var i = 0; i < fragments.length; i++) {
7906		var fragment = fragments[i];
7907		var fragmentType = fragment.getType();
7908
7909		if (fragmentType == 'CMSTextWidget') {
7910			var fragmentText = Mfe.Utils.Text.decodeHtmlEntities(fragment.getSetting('contentHTML', '').replace(/<(.|\n)*?>/g, ' '));
7911			noWords += Mfe.Utils.Text.countWords(fragmentText);
7912		} else if (fragmentType == 'CMSQuoteWidget') {
7913			
7914		} else if (fragmentType == 'CMSImageWidget') {
7915			noImages++;
7916		}
7917	}
7918	
7919	var wpm = 275;
7920	var readTime = (noWords / (wpm / 60)) + (noImages * 12);
7921	
7922	return {
7923		'minutes': Math.ceil(readTime / 60),
7924		'words': noWords
7925	};
7926};
7927Mfe.Classes.ContentRevision.prototype.getTemplateVars = function(includeReadTime) {
7928	var templateVars = {
7929		'id': this.getId(),
7930		'author': null,
7931		'readTime': null,
7932		'title': this.getTitle(),
7933		'slug': this.getSlug(),
7934		'summary': this.getSummary(),
7935		'cover': null,
7936		'tags': this.revisionObj.tags
7937	};
7938	
7939	if (isEmpty(includeReadTime) === false && includeReadTime === true) {
7940		templateVars.readTime = this.getReadTime();
7941	} else {
7942		delete templateVars.readTime;
7943	}
7944	
7945	if (isEmpty(this.author) === false) {
7946		templateVars.author = this.author.getTemplateVars();
7947	}
7948	
7949	if (isEmpty(this.cover) === false) {
7950		templateVars.cover = this.cover.getTemplateVars();
7951	} else {
7952		// If there is no cover we will try to fake it using uploads from the fragments
7953		var image = this.getImageFromFragments();
7954		
7955		if (image !== null) {
7956			if (image.type == 'upload') {
7957				templateVars.cover = image.upload.getTemplateVars();
7958			} else if (image.type == 'url') {
7959				templateVars.cover = {
7960					'id': '0',
7961					'caption': '',
7962					'filesIndexed': {
7963						'box1024': { 'type': 'box', 'size': 1024, 'width': 780, 'url': image.url },
7964						'box1280': { 'type': 'box', 'size': 1280, 'width': 780, 'url': image.url },
7965						'box320': { 'type': 'box', 'size': 320, 'width': 780, 'url': image.url },
7966						'box640': { 'type': 'box', 'size': 640, 'width': 780, 'url': image.url },
7967						'square120': { 'type': 'square', 'size': 120, 'width': 120, 'url': image.url }
7968					}
7969				}
7970			}
7971		}
7972	}
7973	
7974	return templateVars;
7975};
7976Mfe.Classes.ContentSet = function(setObj) {
7977	this.class = setObj.class;
7978 
7979	this.setObj = setObj;
7980	
7981	this.contents = [];
7982	for (var i = 0; i < setObj.contents.length; i++) {
7983		var resultObj = setObj.contents[i];
7984
7985		if (resultObj.class == 'content\\posts\\blog') {
7986			this.contents.push(new Mfe.Classes.ContentPostBlog(resultObj));
7987		} else if (resultObj.class == 'content\\posts\\page') {
7988			this.contents.push(new Mfe.Classes.ContentPostPage(resultObj));
7989		} else if (resultObj.class == 'content\\media') {
7990			this.contents.push(new Mfe.Classes.ContentMedia(resultObj));
7991		} else if (resultObj.class == 'content\\event') {
7992			this.contents.push(new Mfe.Classes.ContentEvent(resultObj));
7993		}
7994	}
7995};
7996
7997Mfe.Classes.ContentSet.prototype.getId = function() {
7998	return this.setObj.id;
7999};
8000
8001Mfe.Classes.ContentSet.prototype.getTitle = function() {
8002	return this.setObj.title;
8003};
8004
8005Mfe.Classes.ContentSet.prototype.getContents = function() {
8006	return this.contents;
8007};
8008
8009Mfe.Classes.ContentSet.prototype.getResults = function() {
8010	return this.getContents();
8011};
8012
8013Mfe.Classes.ContentSet.prototype.getTemplateVars = function(mfe) {
8014	var templateVars = {
8015		'id': this.getId(),
8016		'title': this.getTitle()
8017	};
8018	
8019	return templateVars;
8020};
8021
8022
8023Mfe.Classes.ContentSet.newArray = function(setObjs) {
8024	var authors = [];
8025	
8026	for (var i = 0; i < setObjs.length; i++) {
8027		var setObj = setObjs[i];
8028		authors.push(new Mfe.Classes.ContentSet(setObj));
8029	}
8030	
8031	return authors;
8032};
8033
8034Mfe.Classes.ContentSet.index = function(objs) {
8035	var index = {};
8036	
8037	for (var i = 0; i < objs.length; i++) {
8038		var obj = objs[i];
8039		index[obj.getId()] = obj;
8040	}
8041	
8042	return index;
8043}
8044
8045Mfe.Classes.DatasetRecordLookup = function(recordObj) {
8046	this.class = 'Mfe.Classes.DatasetRecordLookup';
8047	this.recordObj = recordObj;
8048	
8049	this.templateVars = {};
8050	
8051	this.processedValues = {};
8052	
8053	var valueKeys = Object.keys(this.recordObj.values);
8054	for (var i = 0; i < valueKeys.length; i++) {
8055		var valueKey = valueKeys[i];
8056		var value = this.recordObj.values[valueKey];
8057		if (value !== null && typeof value.class === 'undefined') {
8058			this.templateVars[valueKey] = value;
8059			this.processedValues[valueKey] = value;
8060			continue;
8061		}
8062		
8063		if (value !== null && value.class == 'content\\posts\\page') {
8064			var contentPostPage = Mfe.Classes.ContentPost.instantiate(value);
8065			this.processedValues[valueKey] = contentPostPage;
8066			
8067			this.templateVars[valueKey] = value;
8068		} else {
8069			this.processedValues[valueKey] = value;
8070		}
8071	}
8072	
8073};
8074Mfe.Classes.DatasetRecordLookup.prototype.getData = function() {
8075	return this.recordObj;
8076};
8077Mfe.Classes.DatasetRecordLookup.prototype.getValues = function() {
8078	return this.recordObj.values;
8079};
8080Mfe.Classes.DatasetRecordLookup.prototype.getProcessedValues = function() {
8081	return this.processedValues;
8082};
8083Mfe.Classes.DatasetRecordLookup.prototype.getProcessedValue = function(key) {
8084	return this.processedValues[key];
8085};
8086Mfe.Classes.DatasetRecordLookup.prototype.getTemplateVars = function(mfe) {
8087	var templateVars = {};
8088	var valueKeys = Object.keys(this.recordObj.values);
8089	
8090	for (var i = 0; i < valueKeys.length; i++) {
8091		var valueKey = valueKeys[i];
8092		var value = this.recordObj.values[valueKey];
8093		if (value !== null && typeof value.class === 'undefined') {
8094			templateVars[valueKey] = value;
8095			continue;
8096		}
8097		
8098		if (value !== null && value.class == 'content\\posts\\page') {
8099			templateVars[valueKey] = this.processedValues[valueKey].getTemplateVars(mfe);
8100		} else {
8101			templateVars[valueKey] = value;
8102		}
8103	}
8104        
8105        templateVars._id = this.recordObj.id;
8106        templateVars._createdAt = this.recordObj.createdAt;
8107        templateVars._meta = this.recordObj.meta;
8108	
8109	return templateVars;
8110};
8111Mfe.Classes.DatasetTableSearchResults = function(resultsObj) {
8112	this.class = 'Mfe.Classes.DatasetTableSearchResults';
8113	this.resultsObj = resultsObj;
8114	this.results = [];
8115	this.buildIndex();
8116};
8117Mfe.Classes.DatasetTableSearchResults.prototype.getData = function() {
8118	return this.resultsObj;
8119};
8120Mfe.Classes.DatasetTableSearchResults.prototype.getResults = function() {
8121	return this.results;
8122};
8123
8124Mfe.Classes.DatasetTableSearchResults.prototype.buildIndex = function() {
8125	// Index tables
8126	let recordsIndexed = {};
8127	let tableFieldsIndexed = {};
8128	
8129	this.tableIdByViewName = {};
8130	this.recordsById = {};
8131	this.results = [];
8132	
8133	for (var i = 0; i < this.resultsObj.table.fields.length; i++) {
8134	    let field = this.resultsObj.table.fields[i];
8135	    tableFieldsIndexed[field.id] = field;
8136	}
8137	
8138	for (var i = 0; i < this.resultsObj.records.length; i++) {
8139	    let record = this.resultsObj.records[i];
8140	    
8141	    let recordTemplateVars = {
8142		'id': record.id
8143	    };
8144	    
8145	    let recordFieldIds = Object.keys(record.values);
8146	    for (let recordFieldId of recordFieldIds) {
8147		let field = tableFieldsIndexed[recordFieldId];
8148		recordTemplateVars[field.templateName] = record.values[recordFieldId];
8149	    }
8150	    
8151	    recordsIndexed[record.id] = record;
8152	    recordsIndexed[record.id].templateVars = recordTemplateVars;
8153	    
8154	    this.results.push(recordsIndexed[record.id]);
8155	}
8156	
8157	this.recordsIndexed = recordsIndexed;
8158	
8159	return;
8160	
8161	
8162	
8163	
8164	var tableNames = Object.keys(this.viewObj.contents);
8165	for (var i = 0; i < tableNames.length; i++) {
8166		var tableName = tableNames[i];
8167		var table = this.viewObj.contents[tableName];
8168		
8169		if (i === 0) {
8170			recordsIndexed[table.table.id] = this.indexTable(table, true);
8171		} else {
8172			recordsIndexed[table.table.id] = this.indexTable(table, false);
8173		}
8174		
8175		
8176		for (var j = 0; j < table.table.fields.length; j++) {
8177			var field = table.table.fields[j];
8178			tableFieldsIndexed[field.id] = field;
8179		}
8180		
8181		this.tableIdByViewName[tableName] = table.table.id;
8182	}
8183	
8184	// Prepare records (get actual data from table-links and stuff)
8185	for (var i = 0; i < tableNames.length; i++) {
8186		var tableName = tableNames[i];
8187		var table = this.viewObj.contents[tableName];
8188		
8189		//var tableFieldsIndexed = this.indexTableFields(table);
8190		c
8191		var records = recordsIndexed[table.table.id];
8192		var recordIds = Object.keys(records);
8193		
8194		for (var j = 0; j < recordIds.length; j++) {
8195			var recordId = recordIds[j];
8196			var record = records[recordId];
8197			
8198			var recordTemplateVars = {
8199				'id': record.id
8200			};
8201			
8202			var recordFieldIds = Object.keys(record.values);
8203			for (var k = 0; k < recordFieldIds.length; k++) {
8204				var recordFieldId = recordFieldIds[k];
8205				var field = tableFieldsIndexed[recordFieldId];
8206				
8207				if (field.type == 'table-link') {
8208					
8209					recordTemplateVars[field.templateName] = [];
8210					
8211					if (record.values[recordFieldId] !== null) {
8212						for (var l = 0; l < record.values[recordFieldId].length; l++) {
8213
8214							var recordValue = record.values[recordFieldId][l];
8215							var tableLink = recordsIndexed[field.valueType];
8216							
8217							if (typeof tableLink == 'undefined') {
8218								continue;
8219							}
8220							
8221							if (typeof tableLink[recordValue] == 'undefined') {
8222								continue;
8223							}
8224							
8225							
8226							var tableLinkRecord = tableLink[recordValue];
8227
8228							// Make template vars for this record
8229							var tableLinkRecordTemplateVars = {
8230								'id': tableLinkRecord.id
8231							};
8232
8233							var tableLinkRecordFieldIds = Object.keys(tableLinkRecord.values);
8234							for (var m = 0; m < tableLinkRecordFieldIds.length; m++) {
8235								var tableLinkRecordFieldId = tableLinkRecordFieldIds[m];
8236								var tableLinkField = tableFieldsIndexed[tableLinkRecordFieldId];
8237
8238								tableLinkRecordTemplateVars[tableLinkField.templateName] = tableLinkRecord.values[tableLinkRecordFieldId];
8239							}
8240
8241							recordTemplateVars[field.templateName].push(tableLinkRecordTemplateVars);
8242						}
8243					}
8244					
8245				} else {
8246					recordTemplateVars[field.templateName] = record.values[recordFieldId];
8247				}
8248			}
8249			
8250			recordsIndexed[table.table.id][recordId].templateVars = recordTemplateVars;
8251			this.recordsById[recordId] = recordsIndexed[table.table.id][recordId];
8252		}
8253	}
8254	
8255	this.recordsIndexed = recordsIndexed;
8256};
8257
8258Mfe.Classes.DatasetTableSearchResults.prototype.generateContentTemplateVars = function() {
8259	let templateVars = {
8260	    'table': null,
8261	    'results': []
8262	};
8263	
8264	
8265	console.log(this.results);
8266	
8267	
8268	for (let result of this.results) {
8269	    templateVars.results.push(result.templateVars);
8270	}
8271	
8272	return templateVars;
8273	
8274	var tableNames = Object.keys(this.viewObj.contents);
8275	for (var i = 0; i < tableNames.length; i++) {
8276		var tableName = tableNames[i];
8277		var table = this.viewObj.contents[tableName];
8278		
8279		var tableFieldsIndexed = {};
8280		var tableFieldsIndexedByTemplateKey = {};
8281		for (let tableField of table.table.fields) {
8282		    tableFieldsIndexed[tableField.id] = tableField;
8283		    tableFieldsIndexedByTemplateKey[tableField.templateName] = tableField;
8284		}
8285		
8286		var records = this.recordsIndexed[table.table.id];
8287		
8288		templateVars[tableName] = [];
8289		
8290		var recordIds = Object.keys(records);
8291		for (var j = 0; j < recordIds.length; j++) {
8292			var recordId = recordIds[j];
8293			var recordTemplateVars = records[recordId].templateVars;
8294			
8295			if (typeof filters !== 'undefined') {
8296				if (typeof filters[tableName] !== 'undefined') {
8297					
8298					var matchesAll = true;
8299					var matchesAny = false;
8300					
8301					var filterFieldKeys = Object.keys(filters[tableName]);
8302					for (var k = 0; k < filterFieldKeys.length; k++) {
8303						var filterFieldKey = filterFieldKeys[k];
8304						
8305						if (Array.isArray(filters[tableName][filterFieldKey]) === true) {
8306							
8307							// Tags
8308							if (filters[tableName][filterFieldKey].length == 0) {
8309								continue;
8310							}
8311							
8312							for (var l = 0; l < filters[tableName][filterFieldKey].length; l++) {
8313								var filterValue = filters[tableName][filterFieldKey][l];
8314								
8315								var recordItemMatches = false;
8316								for (var m = 0; m < recordTemplateVars[filterFieldKey].length; m++) {
8317									var recordFieldItem = recordTemplateVars[filterFieldKey][m];
8318									
8319									if (recordFieldItem.id == filterValue) {
8320										recordItemMatches = true;
8321										break;
8322									}
8323								}
8324								
8325								if (recordItemMatches === false) {
8326									matchesAll = false;
8327								} else {
8328									matchesAny = true;
8329								}
8330							}
8331							
8332						} else {
8333							
8334							var filterValue = filters[tableName][filterFieldKey];
8335							
8336							var recordItemMatches = false;
8337							for (var m = 0; m < recordTemplateVars[filterFieldKey].length; m++) {
8338								let recordFieldValue = recordTemplateVars[filterFieldKey][m];
8339								if (recordFieldValue == filterValue || (recordFieldValue.id && recordFieldValue.id == filterValue)) {
8340									recordItemMatches = true;
8341									break;
8342								}
8343							
8344							}
8345							
8346							if (recordItemMatches === false) {
8347								matchesAll = false;
8348							} else {
8349								matchesAny = true;
8350							}
8351						}
8352					}
8353
8354					if (filterMode == 'any' && matchesAny === true || filterMode == 'all' && matchesAll === true) {
8355						templateVars[tableName].push(recordTemplateVars);
8356						continue;
8357					}
8358					
8359					continue;
8360				}
8361			}
8362			
8363			templateVars[tableName].push(recordTemplateVars);
8364		}
8365                
8366		// Randomize items in array
8367		var tableSettings = this.viewObj.view.settings.tables[table.table.id];
8368		if (typeof tableSettings.randomize !== 'undefined') {
8369			if (tableSettings.randomize == 'always') {
8370				templateVars[tableName] = templateVars[tableName].randomize();
8371			}
8372		} else if (this.viewObj.view.data[tableName].sorting) {
8373                    
8374                    let sortField = this.viewObj.view.data[tableName].sorting[0];
8375                    let sortDirection = this.viewObj.view.data[tableName].sorting[1];
8376		    
8377		    if (typeof templateVars[tableName][0][sortField] === 'undefined') {
8378			sortField = tableFieldsIndexed[sortField].templateName;
8379		    }
8380		    
8381                    templateVars[tableName].sort(function(a, b) {
8382			if (tableFieldsIndexedByTemplateKey[sortField].valueType === 'text') {
8383			    const compareResult = ('' + a[sortField]).localeCompare(b[sortField]);
8384			    return compareResult;
8385			} else {
8386			    if (sortDirection === 'desc') {
8387				if (a[sortField] > b[sortField]) {
8388				    return -1;
8389				} else if (a[sortField] < b[sortField]) {
8390				    return 1;
8391				} else {
8392				    return 0;
8393				}
8394			    } else {
8395				if (a[sortField] > b[sortField]) {
8396				    return 1;
8397				} else if (a[sortField] < b[sortField]) {
8398				    return -1;
8399				} else {
8400				    return 0;
8401				}
8402			    }
8403			}
8404			
8405
8406                    });
8407                }
8408	}
8409        
8410	return templateVars;
8411};
8412Mfe.Classes.DatasetTableSearchResults.prototype.indexTable = function(table, addToResults) {
8413	var recordsById = {};
8414
8415	for (var i = 0; i < table.records.length; i++) { 
8416		var record = table.records[i];
8417		recordsById[record.id] = record;
8418		
8419		if (typeof addToResults === 'undefined' || addToResults === true) {
8420			this.results.push(record);
8421		}
8422	}
8423	
8424	return recordsById;
8425};
8426
8427Mfe.Classes.DatasetTableSearchResults.prototype.indexTableFields = function(table) {
8428	var fieldsById = {};
8429
8430	for (var i = 0; i < table.table.fields.length; i++) { 
8431		var field = table.table.fields[i];
8432		fieldsById[field.id] = field;
8433	}
8434
8435	return fieldsById;
8436};
8437
8438Mfe.Classes.DatasetTableSearchResults.prototype.getTemplateVars = function() {
8439	var templateVars = {
8440		'id': this.getId(),
8441		'title': this.getTitle()
8442	};
8443
8444	return templateVars;
8445};
8446
8447
8448Mfe.Classes.DatasetTableSearchResults.prototype.getRecordById = function(tableName, recordId) {
8449	var tableId = this.tableIdByViewName[tableName];
8450	return this.recordsIndexed[tableId][recordId];
8451};
8452
8453
8454Mfe.Classes.DatasetView = function(viewObj) {
8455	this.class = 'Mfe.Classes.DatasetView';
8456	this.viewObj = viewObj;
8457	
8458	this.results = [];
8459	this.buildIndex();
8460};
8461Mfe.Classes.DatasetView.prototype.getData = function() {
8462	return this.viewObj;
8463};
8464Mfe.Classes.DatasetView.prototype.getId = function() {
8465	return this.viewObj.id;
8466};
8467Mfe.Classes.DatasetView.prototype.getTitle = function() {
8468	return this.viewObj.title;
8469};
8470Mfe.Classes.DatasetView.prototype.getResults = function() {
8471	return this.results;
8472};
8473
8474Mfe.Classes.DatasetView.prototype.buildIndex = function() {
8475	// Index tables
8476	var recordsIndexed = {};
8477	var tableFieldsIndexed = {};
8478	
8479	this.tableIdByViewName = {};
8480	this.recordsById = {};
8481	this.results = [];
8482	
8483	var tableNames = Object.keys(this.viewObj.contents);
8484	for (var i = 0; i < tableNames.length; i++) {
8485		var tableName = tableNames[i];
8486		var table = this.viewObj.contents[tableName];
8487		
8488		if (i === 0) {
8489			recordsIndexed[table.table.id] = this.indexTable(table, true);
8490		} else {
8491			recordsIndexed[table.table.id] = this.indexTable(table, false);
8492		}
8493		
8494		
8495		for (var j = 0; j < table.table.fields.length; j++) {
8496			var field = table.table.fields[j];
8497			tableFieldsIndexed[field.id] = field;
8498		}
8499		
8500		this.tableIdByViewName[tableName] = table.table.id;
8501	}
8502	
8503	// Prepare records (get actual data from table-links and stuff)
8504	for (var i = 0; i < tableNames.length; i++) {
8505		var tableName = tableNames[i];
8506		var table = this.viewObj.contents[tableName];
8507		
8508		//var tableFieldsIndexed = this.indexTableFields(table);
8509		
8510		var records = recordsIndexed[table.table.id];
8511		var recordIds = Object.keys(records);
8512		
8513		for (var j = 0; j < recordIds.length; j++) {
8514			var recordId = recordIds[j];
8515			var record = records[recordId];
8516			
8517			var recordTemplateVars = {
8518				'id': record.id
8519			};
8520			
8521			var recordFieldIds = Object.keys(record.values);
8522			for (var k = 0; k < recordFieldIds.length; k++) {
8523				var recordFieldId = recordFieldIds[k];
8524				var field = tableFieldsIndexed[recordFieldId];
8525				
8526				if (field.type == 'table-link') {
8527					
8528					recordTemplateVars[field.templateName] = [];
8529					
8530					if (record.values[recordFieldId] !== null) {
8531						for (var l = 0; l < record.values[recordFieldId].length; l++) {
8532
8533							var recordValue = record.values[recordFieldId][l];
8534							var tableLink = recordsIndexed[field.valueType];
8535							
8536							if (typeof tableLink == 'undefined') {
8537								continue;
8538							}
8539							
8540							if (typeof tableLink[recordValue] == 'undefined') {
8541								continue;
8542							}
8543							
8544							
8545							var tableLinkRecord = tableLink[recordValue];
8546
8547							// Make template vars for this record
8548							var tableLinkRecordTemplateVars = {
8549								'id': tableLinkRecord.id
8550							};
8551
8552							var tableLinkRecordFieldIds = Object.keys(tableLinkRecord.values);
8553							for (var m = 0; m < tableLinkRecordFieldIds.length; m++) {
8554								var tableLinkRecordFieldId = tableLinkRecordFieldIds[m];
8555								var tableLinkField = tableFieldsIndexed[tableLinkRecordFieldId];
8556
8557								tableLinkRecordTemplateVars[tableLinkField.templateName] = tableLinkRecord.values[tableLinkRecordFieldId];
8558							}
8559
8560							recordTemplateVars[field.templateName].push(tableLinkRecordTemplateVars);
8561						}
8562					}
8563					
8564				} else {
8565					recordTemplateVars[field.templateName] = record.values[recordFieldId];
8566				}
8567			}
8568			
8569			recordsIndexed[table.table.id][recordId].templateVars = recordTemplateVars;
8570			this.recordsById[recordId] = recordsIndexed[table.table.id][recordId];
8571		}
8572	}
8573	
8574	this.recordsIndexed = recordsIndexed;
8575};
8576
8577Mfe.Classes.DatasetView.prototype.generateContentTemplateVars = function(filters, filterMode) {
8578	var templateVars = {};
8579	
8580	var tableNames = Object.keys(this.viewObj.contents);
8581	for (var i = 0; i < tableNames.length; i++) {
8582		var tableName = tableNames[i];
8583		var table = this.viewObj.contents[tableName];
8584		
8585		var tableFieldsIndexed = {};
8586		var tableFieldsIndexedByTemplateKey = {};
8587		for (let tableField of table.table.fields) {
8588		    tableFieldsIndexed[tableField.id] = tableField;
8589		    tableFieldsIndexedByTemplateKey[tableField.templateName] = tableField;
8590		}
8591		
8592		var records = this.recordsIndexed[table.table.id];
8593		
8594		templateVars[tableName] = [];
8595		
8596		var recordIds = Object.keys(records);
8597		for (var j = 0; j < recordIds.length; j++) {
8598			var recordId = recordIds[j];
8599			var recordTemplateVars = records[recordId].templateVars;
8600			
8601			if (typeof filters !== 'undefined') {
8602				if (typeof filters[tableName] !== 'undefined') {
8603					
8604					var matchesAll = true;
8605					var matchesAny = false;
8606					
8607					var filterFieldKeys = Object.keys(filters[tableName]);
8608					for (var k = 0; k < filterFieldKeys.length; k++) {
8609						var filterFieldKey = filterFieldKeys[k];
8610						
8611						if (Array.isArray(filters[tableName][filterFieldKey]) === true) {
8612							
8613							// Tags
8614							if (filters[tableName][filterFieldKey].length == 0) {
8615								continue;
8616							}
8617							
8618							for (var l = 0; l < filters[tableName][filterFieldKey].length; l++) {
8619								var filterValue = filters[tableName][filterFieldKey][l];
8620								
8621								var recordItemMatches = false;
8622								for (var m = 0; m < recordTemplateVars[filterFieldKey].length; m++) {
8623									var recordFieldItem = recordTemplateVars[filterFieldKey][m];
8624									
8625									if (recordFieldItem.id == filterValue) {
8626										recordItemMatches = true;
8627										break;
8628									}
8629								}
8630								
8631								if (recordItemMatches === false) {
8632									matchesAll = false;
8633								} else {
8634									matchesAny = true;
8635								}
8636							}
8637							
8638						} else {
8639							
8640							var filterValue = filters[tableName][filterFieldKey];
8641							
8642							var recordItemMatches = false;
8643							for (var m = 0; m < recordTemplateVars[filterFieldKey].length; m++) {
8644								let recordFieldValue = recordTemplateVars[filterFieldKey][m];
8645								if (recordFieldValue == filterValue || (recordFieldValue.id && recordFieldValue.id == filterValue)) {
8646									recordItemMatches = true;
8647									break;
8648								}
8649							
8650							}
8651							
8652							if (recordItemMatches === false) {
8653								matchesAll = false;
8654							} else {
8655								matchesAny = true;
8656							}
8657						}
8658					}
8659
8660					if (filterMode == 'any' && matchesAny === true || filterMode == 'all' && matchesAll === true) {
8661						templateVars[tableName].push(recordTemplateVars);
8662						continue;
8663					}
8664					
8665					continue;
8666				}
8667			}
8668			
8669			templateVars[tableName].push(recordTemplateVars);
8670		}
8671                
8672		// Randomize items in array
8673		var tableSettings = this.viewObj.view.settings.tables[table.table.id];
8674		if (typeof tableSettings.randomize !== 'undefined') {
8675			if (tableSettings.randomize == 'always') {
8676				templateVars[tableName] = templateVars[tableName].randomize();
8677			}
8678		} else if (this.viewObj.view.data[tableName].sorting) {
8679                    
8680                    let sortField = this.viewObj.view.data[tableName].sorting[0];
8681                    let sortDirection = this.viewObj.view.data[tableName].sorting[1];
8682                    
8683		    if (typeof templateVars[tableName][0][sortField] === 'undefined') {
8684			sortField = tableFieldsIndexed[sortField].templateName;
8685		    }
8686		    
8687                    templateVars[tableName].sort(function(a, b) {
8688                        
8689			if (tableFieldsIndexedByTemplateKey[sortField] && tableFieldsIndexedByTemplateKey[sortField].valueType === 'text') {
8690			    const compareResult = ('' + a[sortField]).localeCompare(b[sortField]);
8691			    return compareResult;
8692			} else {
8693                            
8694                            let cmpValueA = a[sortField];
8695                            let cmpValueB = b[sortField];
8696                            
8697                            if (sortField === 'id') {
8698                                cmpValueA = parseInt(cmpValueA);
8699                                cmpValueB = parseInt(cmpValueB);
8700                            }
8701                            
8702			    if (sortDirection === 'desc') {
8703				if (cmpValueA > cmpValueB) {
8704				    return -1;
8705				} else if (cmpValueA < cmpValueB) {
8706				    return 1;
8707				} else {
8708				    return 0;
8709				}
8710			    } else {
8711				if (cmpValueA > cmpValueB) {
8712				    return 1;
8713				} else if (cmpValueA < cmpValueB) {
8714				    return -1;
8715				} else {
8716				    return 0;
8717				}
8718			    }
8719			}
8720			
8721
8722                    });
8723                    
8724                }
8725	}
8726        
8727	return templateVars;
8728};
8729Mfe.Classes.DatasetView.prototype.indexTable = function(table, addToResults) {
8730	var recordsById = {};
8731
8732	for (var i = 0; i < table.records.length; i++) { 
8733		var record = table.records[i];
8734		recordsById[record.id] = record;
8735		
8736		if (typeof addToResults === 'undefined' || addToResults === true) {
8737			this.results.push(record);
8738		}
8739	}
8740	
8741	return recordsById;
8742};
8743
8744Mfe.Classes.DatasetView.prototype.indexTableFields = function(table) {
8745	var fieldsById = {};
8746
8747	for (var i = 0; i < table.table.fields.length; i++) { 
8748		var field = table.table.fields[i];
8749		fieldsById[field.id] = field;
8750	}
8751
8752	return fieldsById;
8753};
8754
8755Mfe.Classes.DatasetView.prototype.getTemplateVars = function() {
8756	var templateVars = {
8757		'id': this.getId(),
8758		'title': this.getTitle()
8759	};
8760
8761	return templateVars;
8762};
8763
8764
8765Mfe.Classes.DatasetView.prototype.getRecordById = function(tableName, recordId) {
8766	var tableId = this.tableIdByViewName[tableName];
8767	return this.recordsIndexed[tableId][recordId];
8768};
8769
8770
8771Mfe.Classes.QueryResult = function(queryResultObj) {
8772	this.class = queryResultObj.class;
8773	this.apiData = queryResultObj;
8774	this.type = queryResultObj.type;
8775	this.results = [];
8776	this.totalMatches = 0;
8777	this.itemsPerPage = 0;
8778	
8779	if (typeof this.apiData.totalMatches !== 'undefined') {
8780		this.totalMatches = this.apiData.totalMatches;
8781	} else {
8782		this.totalMatches = queryResultObj.results.length;
8783	}
8784	
8785	if (typeof this.apiData.itemsPerPage !== 'undefined') {
8786		this.itemsPerPage = this.apiData.itemsPerPage;
8787	} else {
8788		this.itemsPerPage = queryResultObj.results.length;
8789	}
8790	
8791	for (var i = 0; i < queryResultObj.results.length; i++) {
8792		var resultObj = queryResultObj.results[i];
8793
8794		if (resultObj.class == 'content\\posts\\blog') {
8795			this.results.push(new Mfe.Classes.ContentPostBlog(resultObj));
8796		} else if (resultObj.class == 'content\\posts\\page') {
8797			this.results.push(new Mfe.Classes.ContentPostPage(resultObj));
8798		} else if (resultObj.class == 'content\\media') {
8799			this.results.push(new Mfe.Classes.ContentMedia(resultObj));
8800		} else if (resultObj.class == 'content\\event') {
8801			this.results.push(new Mfe.Classes.ContentEvent(resultObj));
8802		} else if (resultObj.class == 'menu\\item') {
8803			this.results.push(new Mfe.Classes.SiteMenuItem(resultObj));
8804		}/* else if (resultObj.class == 'content\\update') {
8805			this.results.push(new Mfe.Classes.ContentUpdate(resultObj));
8806		} else if (resultObj.class == 'content\\playlist') {
8807			this.results.push(new Mfe.Classes.ContentPlaylist(resultObj));
8808		} else if (resultObj.class == 'content\\spotlight') {
8809			this.results.push(new Mfe.Classes.ContentSpotlight(resultObj));
8810		} else if (resultObj.class == 'content\\bookmark') {
8811			this.results.push(new Mfe.Classes.ContentBookmark(resultObj));
8812		} else if (resultObj.class == 'comment') {
8813			this.results.push(new Mfe.Classes.Comment(resultObj));
8814		} else if (resultObj.class == 'calendar\\content') {
8815			this.results.push(new Mfe.Classes.CalendarContent(resultObj));
8816		} else if (resultObj.class == 'googlecalendar\\event') {
8817			this.results.push(new Mfe.Classes.GoogleCalendarEvent(resultObj));
8818		}*/
8819	}
8820};
8821
8822Mfe.Classes.QueryResult.prototype.getType = function() {
8823	return this.type;
8824};
8825
8826Mfe.Classes.QueryResult.prototype.getEntity = function() {
8827	return this.entity;
8828};
8829
8830Mfe.Classes.QueryResult.prototype.getTotalMatches = function() {
8831	return this.totalMatches;
8832};
8833
8834Mfe.Classes.QueryResult.prototype.getItemsPerPage = function() {
8835	return this.itemsPerPage;
8836};
8837
8838Mfe.Classes.QueryResult.prototype.getResults = function() {
8839	return this.results;
8840};
8841
8842Mfe.Classes.QueryResult.prototype.getApiData = function() {
8843	return this.apiData;
8844};
8845
8846Mfe.Classes.SiteAuthor = function(authorObj) {
8847	var authorObj = authorObj;
8848
8849	return {
8850		'getData': function() {
8851			return authorObj;
8852		},
8853		'getId': function() {
8854			return authorObj.id;
8855		},
8856		'getFullName': function() {
8857			return authorObj.fullName;
8858		},
8859		'getTemplateVars': function() {
8860			return {
8861				'id': authorObj.id,
8862				'fullName': authorObj.fullName,
8863				'avatarUrl': mfe.translateUrl(authorObj.avatarUrl),
8864			};
8865		}
8866	};
8867};
8868
8869Mfe.Classes.SiteAuthor.newArray = function(authorObjs) {
8870	var authors = [];
8871	
8872	for (var i = 0; i < authorObjs.length; i++) {
8873		var authorObj = authorObjs[i];
8874		authors.push(new Mfe.Classes.SiteAuthor(authorObj));
8875	}
8876	
8877	return authors;
8878};
8879
8880Mfe.Classes.SiteAuthor.index = function(objs) {
8881	var index = {};
8882	
8883	for (var i = 0; i < objs.length; i++) {
8884		var obj = objs[i];
8885		index[obj.getId()] = obj;
8886	}
8887	
8888	return index;
8889}
8890
8891Mfe.Classes.SiteAuthor.getArrayTemplateVars = function(authors) {
8892	var templateVars = [];
8893	for (var i = 0; i < authors.length; i++) {
8894		var author = authors[i];
8895		templateVars.push(author.getTemplateVars());
8896	}
8897	
8898	return templateVars;
8899};
8900
8901Mfe.Classes.SiteBundle = function(siteBundleObj) {
8902	this.siteBundleObj = siteBundleObj;
8903	
8904	this.cmsBlogGroups = [];
8905	this.cmsBlogGroupsIndexed = {};
8906	for (var i = 0; i < siteBundleObj.postGroups.length; i++) {
8907		var postGroupObj = siteBundleObj.postGroups[i];
8908		
8909		var postGroup = new Mfe.Classes.SitePostGroup(postGroupObj);
8910		this.cmsBlogGroups.push(postGroup);
8911		
8912		this.cmsBlogGroupsIndexed[postGroup.getId()] = postGroup;
8913	}
8914	
8915	this.menus = [];
8916	this.menusIndexed = {};
8917	for (var i = 0; i < siteBundleObj.menus.length; i++) {
8918		var menusObj = siteBundleObj.menus[i];
8919		
8920		var menu = new Mfe.Classes.SiteMenu(menusObj);
8921		this.menus.push(menu);
8922		
8923		this.menusIndexed[menu.getId()] = menu;
8924	}
8925	
8926	
8927	this.components = [];
8928	this.componentsIndexed = {};
8929	if (siteBundleObj.components) {
8930		for (var i = 0; i < siteBundleObj.components.length; i++) {
8931			var componentsObj = siteBundleObj.components[i];
8932
8933			var component = new Mfe.Classes.SiteComponent(componentsObj);
8934			this.components.push(component);
8935
8936			this.componentsIndexed[component.getId()] = component;
8937		}
8938	}
8939	
8940	this.presets = [];
8941	this.presetsIndexed = {};
8942	if (siteBundleObj.presets) {
8943		for (var i = 0; i < siteBundleObj.presets.length; i++) {
8944			var presetObj = siteBundleObj.presets[i];
8945
8946			var preset = new Mfe.Classes.SitePreset(presetObj);
8947			this.presets.push(preset);
8948
8949			this.presetsIndexed[preset.getId()] = preset;
8950		}
8951	}
8952};
8953Mfe.Classes.SiteBundle.prototype.getName = function(){
8954	return this.siteBundleObj.name;
8955};
8956Mfe.Classes.SiteBundle.prototype.getTitle = function(){
8957	return this.siteBundleObj.title;
8958};
8959Mfe.Classes.SiteBundle.prototype.getCmsPagePaths = function(){
8960	return this.siteBundleObj.cmsPagePaths;
8961};
8962Mfe.Classes.SiteBundle.prototype.getCmsBlogGroups = function(){
8963	return this.cmsBlogGroups;
8964};
8965Mfe.Classes.SiteBundle.prototype.getContentSets = function(){
8966	return this.contentSets;
8967};
8968Mfe.Classes.SiteBundle.prototype.getContentSetById = function(id){
8969	return this.contentSetsIndexed[id];
8970};
8971Mfe.Classes.SiteBundle.prototype.getMenus = function(){
8972	return this.menus;
8973};
8974Mfe.Classes.SiteBundle.prototype.getMenuById = function(id){
8975	return this.menusIndexed[id];
8976};
8977Mfe.Classes.SiteBundle.prototype.getComponents = function(){
8978	return this.components;
8979};
8980Mfe.Classes.SiteBundle.prototype.getComponentById = function(id){
8981	return this.componentsIndexed[id];
8982};
8983Mfe.Classes.SiteBundle.prototype.updatePresetByObj = function(presetObj){
8984	var preset = new Mfe.Classes.SitePreset(presetObj);
8985	this.updatePreset(preset);
8986};
8987Mfe.Classes.SiteBundle.prototype.updatePreset = function(preset){
8988	for (var i = 0; i < this.presets.length; i++) {
8989		if (this.presets[i].getId() == preset.getId()) {
8990			this.presets[i] = preset;
8991			break;
8992		}
8993	}
8994	
8995	this.presetsIndexed[preset.getId()] = preset;
8996};
8997Mfe.Classes.SiteBundle.prototype.addPresetByObj = function(presetObj){
8998	var preset = new Mfe.Classes.SitePreset(presetObj);
8999	this.addPreset(preset);
9000};
9001Mfe.Classes.SiteBundle.prototype.addPreset = function(preset){
9002	this.presets.push(preset);
9003	this.presetsIndexed[preset.getId()] = preset;
9004};
9005Mfe.Classes.SiteBundle.prototype.getPresets = function(){
9006	return this.presets;
9007};
9008Mfe.Classes.SiteBundle.prototype.getPresetById = function(id){
9009	return this.presetsIndexed[id];
9010};
9011Mfe.Classes.SiteBundle.prototype.getMenuByType = function(type){
9012	for (var i = 0; i < this.menus.length; i++) {
9013		var menu = this.menus[i];
9014		if (menu.getType() == type) {
9015			return menu;
9016		}
9017	}
9018	
9019	return null;
9020};
9021Mfe.Classes.SiteBundle.prototype.getMenuByLanguage = function(type, language) {
9022	var typeMenus = [];
9023	for (var i = 0; i < this.menus.length; i++) {
9024		var menu = this.menus[i];
9025		if (menu.getType() == type) {
9026			typeMenus.push(menu);
9027		}
9028	}
9029	
9030	for (var i = 0; i < typeMenus.length; i++) {
9031		var typeMenu = typeMenus[i];
9032		if (typeMenu.getLanguage() == language) {
9033			return typeMenu;
9034		}
9035	}
9036	
9037	if (typeMenus.length > 0) {
9038		return typeMenus[0];
9039	}
9040	
9041	return null;
9042};
9043Mfe.Classes.SiteBundle.prototype.getCmsBlogGroupById = function(id){
9044	return this.cmsBlogGroupsIndexed[id];
9045};
9046Mfe.Classes.SiteBundle.prototype.getDonationSettings = function(){
9047	return this.siteBundleObj.donations;
9048};
9049Mfe.Classes.SiteComponent = function(groupObj) {
9050	this.name = 'SiteComponent';
9051	this.groupObj = groupObj;
9052};
9053Mfe.Classes.SiteComponent.prototype.getId = function() {
9054	return this.groupObj.id;
9055};
9056Mfe.Classes.SiteComponent.prototype.getConfig = function() {
9057	return this.groupObj.revision.config;
9058};
9059
9060Mfe.Classes.SiteComponent.name = 'SiteComponent';
9061
9062Mfe.Classes.SiteComponent.newArray = function(groupObjs) {
9063	var destinations = [];
9064	
9065	for (var i = 0; i < groupObjs.length; i++) {
9066		var groupObj = groupObjs[i];
9067		destinations.push(new Mfe.Classes.SiteComponent(groupObj));
9068	}
9069	
9070	return destinations;
9071};
9072
9073Mfe.Classes.SiteComponent.index = function(objs) {
9074	var index = {};
9075	
9076	for (var i = 0; i < objs.length; i++) {
9077		var obj = objs[i];
9078		index[obj.getId()] = obj;
9079	}
9080	
9081	return index;
9082}
9083
9084Mfe.Classes.SiteComponent.getSimpleTemplateVars = function(groups) {
9085	var simpleTemplateVars = [];
9086	
9087	for (var i = 0; i < groups.length; i++) {
9088		var obj = groups[i];
9089		
9090		simpleTemplateVars.push(obj.getSimpleTemplateVars());
9091	}
9092	
9093	return simpleTemplateVars;
9094}
9095
9096Mfe.Classes.SiteComponent.getArrayTemplateVars = function(postGroups) {
9097	var templateVars = [];
9098	for (var i = 0; i < postGroups.length; i++) {
9099		var postGroup = postGroups[i];
9100		templateVars.push(postGroup.getTemplateVars());
9101	}
9102	
9103	return templateVars;
9104};
9105Mfe.Classes.SiteContentSet = function(setObj) {
9106	this.name = 'SiteContentSet';
9107	this.setObj = setObj;
9108};
9109Mfe.Classes.SiteContentSet.prototype.getId = function() {
9110	return this.setObj.id;
9111};
9112Mfe.Classes.SiteContentSet.prototype.getTitle = function() {
9113	return this.setObj.title;
9114};
9115Mfe.Classes.SiteContentSet.prototype.getTemplateVars = function() {
9116	return {
9117		'id': this.setObj.id,
9118		'title': this.setObj.title
9119	};
9120};
9121Mfe.Classes.SiteContentSet.prototype.getSimpleTemplateVars = function() {
9122	return {
9123		'id': this.setObj.id,
9124		'title': this.setObj.title
9125	};
9126};
9127
9128Mfe.Classes.SiteContentSet.name = 'SiteContentSet';
9129
9130Mfe.Classes.SiteContentSet.newArray = function(setObjs) {
9131	var destinations = [];
9132	
9133	for (var i = 0; i < setObjs.length; i++) {
9134		var setObj = setObjs[i];
9135		destinations.push(new Mfe.Classes.SiteContentSet(setObj));
9136	}
9137	
9138	return destinations;
9139};
9140
9141Mfe.Classes.SiteContentSet.index = function(objs) {
9142	var index = {};
9143	
9144	for (var i = 0; i < objs.length; i++) {
9145		var obj = objs[i];
9146		index[obj.getId()] = obj;
9147	}
9148	
9149	return index;
9150}
9151
9152Mfe.Classes.SiteContentSet.getSimpleTemplateVars = function(groups) {
9153	var simpleTemplateVars = [];
9154	
9155	for (var i = 0; i < groups.length; i++) {
9156		var obj = groups[i];
9157		
9158		simpleTemplateVars.push(obj.getSimpleTemplateVars());
9159	}
9160	
9161	return simpleTemplateVars;
9162}
9163
9164Mfe.Classes.SiteContentSet.getArrayTemplateVars = function(postGroups) {
9165	var templateVars = [];
9166	for (var i = 0; i < postGroups.length; i++) {
9167		var postGroup = postGroups[i];
9168		templateVars.push(postGroup.getTemplateVars());
9169	}
9170	
9171	return templateVars;
9172};
9173Mfe.Classes.SiteMenu = function(groupObj) {
9174	this.name = 'SiteMenu';
9175	this.groupObj = groupObj;
9176};
9177Mfe.Classes.SiteMenu.prototype.getId = function() {
9178	return this.groupObj.id;
9179};
9180Mfe.Classes.SiteMenu.prototype.getTitle = function() {
9181	return this.groupObj.title;
9182};
9183Mfe.Classes.SiteMenu.prototype.getType = function() {
9184	return this.groupObj.type;
9185};
9186Mfe.Classes.SiteMenu.prototype.getLanguage = function() {
9187	return this.groupObj.language;
9188};
9189Mfe.Classes.SiteMenu.prototype.getItemsAsQueryResult = function() {
9190	var items = this.getItems();
9191	
9192	var queryResultItems = [];
9193	
9194	for (var i = 0; i < items.length; i++) {
9195		var itemObj = items[i];
9196		itemObj.class = 'menu\\item';
9197		queryResultItems.push(itemObj);
9198	}
9199	
9200	var queryResult = new Mfe.Classes.QueryResult({
9201		'class': 'queryresult',
9202		'type': 'menu',
9203		'results': queryResultItems
9204	});
9205	
9206	return queryResult;
9207}
9207;
9208Mfe.Classes.SiteMenu.prototype.getItems = function(pagePath, autoSelectFirstItem) {
9209	if (isEmpty(this.groupObj.revision) === true) {
9210		return [];
9211	}
9212	if (isEmpty(this.groupObj.revision.config) === true) {
9213		return [];
9214	}
9215	
9216	if (typeof pagePath == 'undefined') {
9217		return this.groupObj.revision.config;
9218	}
9219	
9220	var extendedItems = [];
9221	var items = JSON.parse(JSON.stringify(this.groupObj.revision.config));
9222	
9223	var selectedItemIndex = null;
9224	for (var i = 0; i < items.length; i++) {
9225		var item = items[i];
9226
9227		var matchPath;
9228		if (item.selectedUrl) {
9229			matchPath = item.selectedUrl;
9230		} else {
9231			matchPath = item.url;
9232		}
9233		
9234		items[i].matchPath = matchPath;
9235		item.matchPath = matchPath;
9236		
9237		var matches = false;
9238		if (pagePath == matchPath) {
9239			matches = true;
9240		} else if (matchPath == '/') {
9241			matches = false;
9242		} else if (pagePath.substring(0, matchPath.length) == matchPath) {
9243			matches = true;
9244		}
9245		
9246		if (matches === true) {
9247			if (selectedItemIndex === null) {
9248				selectedItemIndex = i;
9249			} else {
9250				var selectedMatchPath;
9251				if (items[selectedItemIndex].selectedUrl) {
9252					selectedMatchPath = items[selectedItemIndex].selectedUrl;
9253				} else {
9254					selectedMatchPath = items[selectedItemIndex].url;
9255				}
9256				
9257				if (matchPath.length > selectedMatchPath.length) {
9258					selectedItemIndex = i;
9259				}
9260			}
9261		}
9262		
9263		/*
9264		
9265		console.log('menu item');
9266		console.log(item);
9267
9268		if (selectedItemIndex === null) {
9269			
9270
9271			
9272			console.log('MATCH PATH:');
9273			console.log(matchPath);
9274
9275
9276			
9277			if (matches === true) {
9278				console.log('item matches: ');
9279				console.log(matchPath);
9280				selectedItemIndex = i;
9281			}
9282			
9283		} else {
9284			
9285			var matchPath;
9286			if (item.selectedUrl) {
9287				matchPath = item.selectedUrl;
9288			} else {
9289				matchPath = item.url;
9290			}
9291			
9292			if (pagePath == matchPath) {
9293				selectedItemIndex = i;
9294			} else if (pagePath.substring(0, matchPath.length) == matchPath) {
9295				
9296				if (matchPath.length > items[selectedItemIndex].url) {
9297					selectedItemIndex = i;
9298				}
9299			}
9300			
9301		}*/
9302		
9303		item.isSelected = false;
9304		extendedItems.push(item);
9305	}
9306	
9307	if (selectedItemIndex === null && (typeof autoSelectFirstItem !== 'undefined' && autoSelectFirstItem === true)) {
9308		selectedItemIndex = 0;
9309	}
9310	
9311	if (selectedItemIndex !== null) {
9312		extendedItems[selectedItemIndex].isSelected = true;
9313	}
9314	
9315	return extendedItems;
9316};
9317Mfe.Classes.SiteMenu.prototype.getTemplateVars = function(pagePath) {
9318	return {
9319		'id': this.groupObj.id,
9320		'title': this.groupObj.title,
9321		'type': this.groupObj.type,
9322		'language': this.groupObj.language,
9323		'items': this.getItems(pagePath)
9324	};
9325};
9326Mfe.Classes.SiteMenu.prototype.getSimpleTemplateVars = function() {
9327	return {
9328		'id': this.groupObj.id,
9329		'title': this.groupObj.title
9330	};
9331};
9332
9333Mfe.Classes.SiteMenu.name = 'SiteMenu';
9334
9335Mfe.Classes.SiteMenu.newArray = function(groupObjs) {
9336	var destinations = [];
9337	
9338	for (var i = 0; i < groupObjs.length; i++) {
9339		var groupObj = groupObjs[i];
9340		destinations.push(new Mfe.Classes.SiteMenu(groupObj));
9341	}
9342	
9343	return destinations;
9344};
9345
9346Mfe.Classes.SiteMenu.index = function(objs) {
9347	var index = {};
9348	
9349	for (var i = 0; i < objs.length; i++) {
9350		var obj = objs[i];
9351		index[obj.getId()] = obj;
9352	}
9353	
9354	return index;
9355}
9356
9357Mfe.Classes.SiteMenu.getSimpleTemplateVars = function(groups) {
9358	var simpleTemplateVars = [];
9359	
9360	for (var i = 0; i < groups.length; i++) {
9361		var obj = groups[i];
9362		
9363		simpleTemplateVars.push(obj.getSimpleTemplateVars());
9364	}
9365	
9366	return simpleTemplateVars;
9367}
9368
9369Mfe.Classes.SiteMenu.getArrayTemplateVars = function(postGroups) {
9370	var templateVars = [];
9371	for (var i = 0; i < postGroups.length; i++) {
9372		var postGroup = postGroups[i];
9373		templateVars.push(postGroup.getTemplateVars());
9374	}
9375	
9376	return templateVars;
9377};
9378Mfe.Classes.SiteMenuItem = function(itemObj) {
9379	this.name = 'SiteMenuItem';
9380	this.itemObj = itemObj;
9381	this.class = itemObj.class;
9382};
9383Mfe.Classes.SiteMenuItem.prototype.get = function() {
9384	return this.itemObj.id;
9385};
9386Mfe.Classes.SiteMenuItem.prototype.getTemplateVars = function() {
9387	var templateVars = {
9388		'type': this.itemObj.type,
9389		'title': this.itemObj.title,
9390		'url': this.itemObj.url,
9391		'style': this.itemObj.style,
9392		'iconSet': 'brand',
9393		'icon': this.itemObj.icon,
9394		'imageUrl': this.itemObj.imageUrl,
9395		'buttonText': this.itemObj.buttonText,
9396		'description': this.itemObj.description
9397	};
9398	
9399	if (this.itemObj.iconSet !== 'undefined') {
9400		templateVars.iconSet = this.itemObj.iconSet;
9401	}
9402	
9403	return templateVars;
9404};
9405Mfe.Classes.SiteMenuItem.name = 'SiteMenuItem';
9406
9407Mfe.Classes.SiteMenuItem.newArray = function(itemObjs) {
9408	var destinations = [];
9409	
9410	for (var i = 0; i < itemObjs.length; i++) {
9411		var itemObj = itemObjs[i];
9412		destinations.push(new Mfe.Classes.SiteMenuItem(itemObj));
9413	}
9414	
9415	return destinations;
9416};
9417
9418Mfe.Classes.SiteMenuItem.index = function(objs) {
9419	var index = {};
9420	
9421	for (var i = 0; i < objs.length; i++) {
9422		var obj = objs[i];
9423		index[obj.getId()] = obj;
9424	}
9425	
9426	return index;
9427}
9428
9429Mfe.Classes.SiteMenuItem.getArrayTemplateVars = function(postGroups) {
9430	var templateVars = [];
9431	for (var i = 0; i < postGroups.length; i++) {
9432		var postGroup = postGroups[i];
9433		templateVars.push(postGroup.getTemplateVars());
9434	}
9435	
9436	return templateVars;
9437};
9438Mfe.Classes.SitePostGroup = function(groupObj) {
9439	this.name = 'SitePostGroup';
9440	this.groupObj = groupObj;
9441};
9442Mfe.Classes.SitePostGroup.prototype.getId = function() {
9443	return this.groupObj.id;
9444};
9445Mfe.Classes.SitePostGroup.prototype.getTitle = function() {
9446	return this.groupObj.title;
9447};
9448Mfe.Classes.SitePostGroup.prototype.getLabel = function() {
9449	return this.groupObj.label;
9450};
9451Mfe.Classes.SitePostGroup.prototype.getType = function() {
9452	return this.groupObj.type;
9453};
9454Mfe.Classes.SitePostGroup.prototype.getTemplateVars = function() {
9455	var label = '';
9456	if (typeof this.groupObj.label !== 'undefined') {
9457		label = this.groupObj.label;
9458	}
9459	
9460	return {
9461		'id': this.groupObj.id,
9462		'title': this.groupObj.title,
9463		'label': (label.length > 0 ? label : this.groupObj.title),
9464		'type': this.groupObj.type
9465	};
9466};
9467Mfe.Classes.SitePostGroup.prototype.getSimpleTemplateVars = function() {
9468	var label = '';
9469	if (typeof this.groupObj.label !== 'undefined') {
9470		label = this.groupObj.label;
9471	}
9472	
9473	
9474	return {
9475		'id': this.groupObj.id,
9476		'title': this.groupObj.title,
9477		'label': (label.length > 0 ? label : this.groupObj.title)
9478	};
9479};
9480
9481Mfe.Classes.SitePostGroup.name = 'SiteDestination';
9482
9483Mfe.Classes.SitePostGroup.newArray = function(groupObjs) {
9484	var destinations = [];
9485	
9486	for (var i = 0; i < groupObjs.length; i++) {
9487		var groupObj = groupObjs[i];
9488		destinations.push(new Mfe.Classes.SitePostGroup(groupObj));
9489	}
9490	
9491	return destinations;
9492};
9493
9494Mfe.Classes.SitePostGroup.index = function(objs) {
9495	var index = {};
9496	
9497	for (var i = 0; i < objs.length; i++) {
9498		var obj = objs[i];
9499		index[obj.getId()] = obj;
9500	}
9501	
9502	return index;
9503}
9504
9505Mfe.Classes.SitePostGroup.getSimpleTemplateVars = function(groups) {
9506	var simpleTemplateVars = [];
9507	
9508	for (var i = 0; i < groups.length; i++) {
9509		var obj = groups[i];
9510		
9511		simpleTemplateVars.push(obj.getSimpleTemplateVars());
9512	}
9513	
9514	return simpleTemplateVars;
9515}
9516
9517Mfe.Classes.SitePostGroup.getArrayTemplateVars = function(postGroups) {
9518	var templateVars = [];
9519	for (var i = 0; i < postGroups.length; i++) {
9520		var postGroup = postGroups[i];
9521		templateVars.push(postGroup.getTemplateVars());
9522	}
9523	
9524	return templateVars;
9525};
9526Mfe.Classes.SitePreset = function(presetObj) {
9527	this.name = 'SitePreset';
9528	this.presetObj = presetObj;
9529};
9530Mfe.Classes.SitePreset.prototype.getId = function() {
9531	return this.presetObj.id;
9532};
9533Mfe.Classes.SitePreset.prototype.getTitle = function() {
9534	return this.presetObj.title;
9535};
9536Mfe.Classes.SitePreset.prototype.getEntity = function() {
9537	return this.presetObj.entity;
9538};
9539Mfe.Classes.SitePreset.prototype.getEntityType = function() {
9540	return this.presetObj.entityType;
9541};
9542Mfe.Classes.SitePreset.prototype.getConfig = function() {
9543	return this.presetObj.config;
9544};
9545
9546Mfe.Classes.SitePreset.name = 'SitePreset';
9547
9548Mfe.Classes.SitePreset.newArray = function(presetObjs) {
9549	var destinations = [];
9550	
9551	for (var i = 0; i < presetObjs.length; i++) {
9552		var presetObj = presetObjs[i];
9553		destinations.push(new Mfe.Classes.SitePreset(presetObj));
9554	}
9555	
9556	return destinations;
9557};
9558
9559Mfe.Classes.SitePreset.index = function(objs) {
9560	var index = {};
9561	
9562	for (var i = 0; i < objs.length; i++) {
9563		var obj = objs[i];
9564		index[obj.getId()] = obj;
9565	}
9566	
9567	return index;
9568}
9569
9570Mfe.Classes.SitePreset.getSimpleTemplateVars = function(groups) {
9571	var simpleTemplateVars = [];
9572	
9573	for (var i = 0; i < groups.length; i++) {
9574		var obj = groups[i];
9575		
9576		simpleTemplateVars.push(obj.getSimpleTemplateVars());
9577	}
9578	
9579	return simpleTemplateVars;
9580}
9581
9582Mfe.Classes.SitePreset.getArrayTemplateVars = function(postGroups) {
9583	var templateVars = [];
9584	for (var i = 0; i < postGroups.length; i++) {
9585		var postGroup = postGroups[i];
9586		templateVars.push(postGroup.getTemplateVars());
9587	}
9588	
9589	return templateVars;
9590};
9591Mfe.Classes.SiteStoryline = function(storylineObj) {
9592	this.class = storylineObj.class;
9593 
9594	this.storylineObj = storylineObj;
9595	
9596	this.contents = [];
9597	if (isEmpty(storylineObj.contents) === false) {
9598		for (var i = 0; i < storylineObj.contents.length; i++) {
9599			var resultObj = storylineObj.contents[i];
9600
9601			if (resultObj.class == 'content\\posts\\blog') {
9602				this.contents.push(new Mfe.Classes.ContentPostBlog(resultObj));
9603			} else if (resultObj.class == 'content\\posts\\page') {
9604				this.contents.push(new Mfe.Classes.ContentPostPage(resultObj));
9605			} else if (resultObj.class == 'content\\media') {
9606				this.contents.push(new Mfe.Classes.ContentMedia(resultObj));
9607			} else if (resultObj.class == 'content\\event') {
9608				this.contents.push(new Mfe.Classes.ContentEvent(resultObj));
9609			}
9610		}
9611	}
9612};
9613
9614Mfe.Classes.SiteStoryline.prototype.getId = function() {
9615	return this.storylineObj.id;
9616};
9617
9618Mfe.Classes.SiteStoryline.prototype.getTitle = function() {
9619	return this.storylineObj.title;
9620};
9621
9622Mfe.Classes.SiteStoryline.prototype.getDescription = function() {
9623	return this.storylineObj.description;
9624};
9625
9626Mfe.Classes.SiteStoryline.prototype.getContents = function() {
9627	return this.contents;
9628};
9629
9630Mfe.Classes.SiteStoryline.prototype.getResults = function() {
9631	return this.getContents();
9632};
9633
9634Mfe.Classes.SiteStoryline.prototype.getTemplateVars = function(mfe) {
9635	var templateVars = {
9636		'id': this.getId(),
9637		'title': this.getTitle(),
9638		'description': this.getDescription()
9639	};
9640	
9641	return templateVars;
9642};
9643
9644
9645Mfe.Classes.SiteStoryline.newArray = function(storylineObjs) {
9646	var authors = [];
9647	
9648	for (var i = 0; i < storylineObjs.length; i++) {
9649		var storylineObj = storylineObjs[i];
9650		authors.push(new Mfe.Classes.SiteStoryline(storylineObj));
9651	}
9652	
9653	return authors;
9654};
9655
9656Mfe.Classes.SiteStoryline.index = function(objs) {
9657	var index = {};
9658	
9659	for (var i = 0; i < objs.length; i++) {
9660		var obj = objs[i];
9661		index[obj.getId()] = obj;
9662	}
9663	
9664	return index;
9665}
9666
9667Mfe.Classes.SiteUserGroup = function(groupObj) {
9668	this.class = groupObj.class;
9669	
9670	this.name = 'SiteUserGroup';
9671	this.groupObj = groupObj;
9672	
9673	this.teams = [];
9674	for (var i = 0; i < this.groupObj.teams.length; i++) {
9675		var teamObj = this.groupObj.teams[i];
9676		this.teams.push(new Mfe.Classes.SiteUserGroupTeam(teamObj));
9677	}
9678};
9679Mfe.Classes.SiteUserGroup.prototype.getId = function() {
9680	return this.groupObj.id;
9681};
9682Mfe.Classes.SiteUserGroup.prototype.getTitle = function() {
9683	return this.groupObj.title;
9684};
9685Mfe.Classes.SiteUserGroup.prototype.getTeams = function() {
9686	return this.teams;
9687};
9688Mfe.Classes.SiteUserGroup.prototype.getTemplateVars = function() {
9689	var templateVars = {
9690		'id': this.groupObj.id,
9691		'title': this.groupObj.title,
9692		'teams': []
9693	};
9694	
9695	this.teams.forEach(function(el){
9696		templateVars.teams.push(el.getTemplateVars());
9697	});
9698	
9699	
9700	
9701	return templateVars;
9702};
9703Mfe.Classes.SiteUserGroup.prototype.getSimpleTemplateVars = function() {
9704	return {
9705		'id': this.groupObj.id,
9706		'title': this.groupObj.title
9707	};
9708};
9709
9710Mfe.Classes.SiteUserGroup.name = 'SiteUserGroup';
9711
9712Mfe.Classes.SiteUserGroup.newArray = function(groupObjs) {
9713	var destinations = [];
9714	
9715	for (var i = 0; i < groupObjs.length; i++) {
9716		var groupObj = groupObjs[i];
9717		destinations.push(new Mfe.Classes.SiteUserGroup(groupObj));
9718	}
9719	
9720	return destinations;
9721};
9722
9723Mfe.Classes.SiteUserGroup.index = function(objs) {
9724	var index = {};
9725	
9726	for (var i = 0; i < objs.length; i++) {
9727		var obj = objs[i];
9728		index[obj.getId()] = obj;
9729	}
9730	
9731	return index;
9732}
9733
9734Mfe.Classes.SiteUserGroup.getSimpleTemplateVars = function(groups) {
9735	var simpleTemplateVars = [];
9736	
9737	for (var i = 0; i < groups.length; i++) {
9738		var obj = groups[i];
9739		simpleTemplateVars.push(obj.getSimpleTemplateVars());
9740	}
9741	
9742	return simpleTemplateVars;
9743}
9744
9745Mfe.Classes.SiteUserGroup.getArrayTemplateVars = function(postGroups) {
9746	var templateVars = [];
9747	for (var i = 0; i < postGroups.length; i++) {
9748		var postGroup = postGroups[i];
9749		templateVars.push(postGroup.getTemplateVars());
9750	}
9751	
9752	return templateVars;
9753};
9754Mfe.Classes.SiteUserGroupTeam = function(teamObj) {
9755	this.class = teamObj.class;
9756	
9757	this.name = 'SiteUserGroupTeam';
9758	this.teamObj = teamObj;
9759	
9760	this.members = [];
9761	this.tags = [];
9762	
9763	for (var i = 0; i < this.teamObj.members.length; i++) {
9764		var memberObj = this.teamObj.members[i];
9765		this.members.push(new Mfe.Classes.SiteUserGroupTeamMember(memberObj));
9766	}
9767	
9768	for (var i = 0; i < this.teamObj.tags.length; i++) {
9769		var tagObj = this.teamObj.tags[i];
9770		this.tags.push(new Mfe.Classes.SiteUserGroupTeamTag(tagObj));
9771	}
9772	
9773};
9774Mfe.Classes.SiteUserGroupTeam.prototype.getData = function() {
9775	return this.teamObj;
9776};
9777Mfe.Classes.SiteUserGroupTeam.prototype.getId = function() {
9778	return this.teamObj.id;
9779};
9780Mfe.Classes.SiteUserGroupTeam.prototype.getTitle = function() {
9781	return this.teamObj.title;
9782};
9783Mfe.Classes.SiteUserGroupTeam.prototype.getMembers = function() {
9784	return this.members;
9785};
9786Mfe.Classes.SiteUserGroupTeam.prototype.getTemplateVars = function() {
9787	return {
9788		'id': this.teamObj.id,
9789		'title': this.teamObj.title,
9790		'tags': Mfe.Classes.SiteUserGroupTeamTag.getArrayTemplateVars(this.tags),
9791		'members': Mfe.Classes.SiteUserGroupTeamMember.getArrayTemplateVars(this.members)
9792	};
9793};
9794Mfe.Classes.SiteUserGroupTeam.prototype.getSimpleTemplateVars = function() {
9795	return {
9796		'id': this.teamObj.id,
9797		'title': this.teamObj.title
9798	};
9799};
9800
9801Mfe.Classes.SiteUserGroupTeam.name = 'SiteUserGroupTeam';
9802
9803Mfe.Classes.SiteUserGroupTeam.newArray = function(teamObjs) {
9804	var destinations = [];
9805	
9806	for (var i = 0; i < teamObjs.length; i++) {
9807		var teamObj = teamObjs[i];
9808		destinations.push(new Mfe.Classes.SiteUserGroupTeam(teamObj));
9809	}
9810	
9811	return destinations;
9812};
9813
9814Mfe.Classes.SiteUserGroupTeam.index = function(objs) {
9815	var index = {};
9816	
9817	for (var i = 0; i < objs.length; i++) {
9818		var obj = objs[i];
9819		index[obj.getId()] = obj;
9820	}
9821	
9822	return index;
9823}
9824
9825Mfe.Classes.SiteUserGroupTeam.getSimpleTemplateVars = function(groups) {
9826	var simpleTemplateVars = [];
9827	
9828	for (var i = 0; i < groups.length; i++) {
9829		var obj = groups[i];
9830		simpleTemplateVars.push(obj.getSimpleTemplateVars());
9831	}
9832	
9833	return simpleTemplateVars;
9834}
9835
9836Mfe.Classes.SiteUserGroupTeam.getArrayTemplateVars = function(postGroups) {
9837	var templateVars = [];
9838	for (var i = 0; i < postGroups.length; i++) {
9839		var postGroup = postGroups[i];
9840		templateVars.push(postGroup.getTemplateVars());
9841	}
9842	
9843	return templateVars;
9844};
9845Mfe.Classes.SiteUserGroupTeamMember = function(memberObj) {
9846	this.class = memberObj.class;
9847	
9848	this.name = 'SiteUserGroupTeamMember';
9849	this.memberObj = memberObj;
9850};
9851Mfe.Classes.SiteUserGroupTeamMember.prototype.getId = function() {
9852	return this.memberObj.id;
9853};
9854Mfe.Classes.SiteUserGroupTeamMember.prototype.getTitle = function() {
9855	return this.memberObj.title;
9856};
9857Mfe.Classes.SiteUserGroupTeamMember.prototype.getTemplateVars = function() {
9858	return {
9859		'id': this.memberObj.id,
9860		'name': this.memberObj.name,
9861		'title': this.memberObj.title
9862	};
9863};
9864Mfe.Classes.SiteUserGroupTeamMember.prototype.getSimpleTemplateVars = function() {
9865	return {
9866		'id': this.memberObj.id,
9867		'title': this.memberObj.title
9868	};
9869};
9870
9871Mfe.Classes.SiteUserGroupTeamMember.name = 'SiteUserGroupTeamMember';
9872
9873Mfe.Classes.SiteUserGroupTeamMember.newArray = function(memberObjs) {
9874	var destinations = [];
9875	
9876	for (var i = 0; i < memberObjs.length; i++) {
9877		var memberObj = memberObjs[i];
9878		destinations.push(new Mfe.Classes.SiteUserGroupTeamMember(memberObj));
9879	}
9880	
9881	return destinations;
9882};
9883
9884Mfe.Classes.SiteUserGroupTeamMember.index = function(objs) {
9885	var index = {};
9886	
9887	for (var i = 0; i < objs.length; i++) {
9888		var obj = objs[i];
9889		index[obj.getId()] = obj;
9890	}
9891	
9892	return index;
9893}
9894
9895Mfe.Classes.SiteUserGroupTeamMember.getSimpleTemplateVars = function(members) {
9896	var simpleTemplateVars = [];
9897	
9898	for (var i = 0; i < members.length; i++) {
9899		var obj = members[i];
9900		simpleTemplateVars.push(obj.getSimpleTemplateVars());
9901	}
9902	
9903	return simpleTemplateVars;
9904}
9905
9906Mfe.Classes.SiteUserGroupTeamMember.getArrayTemplateVars = function(members) {
9907	var templateVars = [];
9908	for (var i = 0; i < members.length; i++) {
9909		var postGroup = members[i];
9910		templateVars.push(postGroup.getTemplateVars());
9911	}
9912	
9913	return templateVars;
9914};
9915Mfe.Classes.SiteUserGroupTeamTag = function(tagObj) {
9916	this.class = tagObj.class;
9917	
9918	this.name = 'SiteUserGroupTeamTag';
9919	this.tagObj = tagObj;
9920};
9921Mfe.Classes.SiteUserGroupTeamTag.prototype.getId = function() {
9922	return this.tagObj.id;
9923};
9924Mfe.Classes.SiteUserGroupTeamTag.prototype.getTitle = function() {
9925	return this.tagObj.title;
9926};
9927Mfe.Classes.SiteUserGroupTeamTag.prototype.getTemplateVars = function() {
9928	return {
9929		'id': this.tagObj.id,
9930		'title': this.tagObj.title,
9931		
9932	};
9933};
9934Mfe.Classes.SiteUserGroupTeamTag.prototype.getSimpleTemplateVars = function() {
9935	return {
9936		'id': this.tagObj.id,
9937		'title': this.tagObj.title
9938	};
9939};
9940
9941Mfe.Classes.SiteUserGroupTeamTag.name = 'SiteUserGroupTeamTag';
9942
9943Mfe.Classes.SiteUserGroupTeamTag.newArray = function(tagObjs) {
9944	var destinations = [];
9945	
9946	for (var i = 0; i < tagObjs.length; i++) {
9947		var tagObj = tagObjs[i];
9948		destinations.push(new Mfe.Classes.SiteUserGroupTeamTag(tagObj));
9949	}
9950	
9951	return destinations;
9952};
9953
9954Mfe.Classes.SiteUserGroupTeamTag.index = function(objs) {
9955	var index = {};
9956	
9957	for (var i = 0; i < objs.length; i++) {
9958		var obj = objs[i];
9959		index[obj.getId()] = obj;
9960	}
9961	
9962	return index;
9963}
9964
9965Mfe.Classes.SiteUserGroupTeamTag.getSimpleTemplateVars = function(teamTags) {
9966	var simpleTemplateVars = [];
9967	
9968	for (var i = 0; i < teamTags.length; i++) {
9969		var obj = teamTags[i];
9970		simpleTemplateVars.push(obj.getSimpleTemplateVars());
9971	}
9972	
9973	return simpleTemplateVars;
9974}
9975
9976Mfe.Classes.SiteUserGroupTeamTag.getArrayTemplateVars = function(teamTags) {
9977	var templateVars = [];
9978	for (var i = 0; i < teamTags.length; i++) {
9979		var postGroup = teamTags[i];
9980		templateVars.push(postGroup.getTemplateVars());
9981	}
9982	
9983	return templateVars;
9984};
9985Mfe.Classes.ThemeHtmlBlock = function(blockObj) {
9986	this.class = 'Mfe.Classes.ThemeHtmlBlock';
9987	this.blockObj = blockObj;
9988
9989};
9990Mfe.Classes.ThemeHtmlBlock.prototype.getId = function() {
9991	return this.blockObj.id;
9992};
9993Mfe.Classes.ThemeHtmlBlock.prototype.getTitle = function() {
9994	return this.blockObj.title;
9995};
9996Mfe.Classes.ThemeHtmlBlock.prototype.getSettings = function() {
9997	return this.blockObj.settings;
9998};
9999Mfe.Classes.ThemeHtmlBlock.prototype.getHtml = function() {
10000	return this.blockObj.html;
10001};
10002Mfe.Classes.ThemeHtmlBlock.prototype.getHtmlTemplate = function(mfe) {
10003	if (isEmpty(this.blockObj.htmlCompiled) === false) {
10004		var templateSpec = mfe.parseTemplateSpec(this.blockObj.htmlCompiled);
10005		var template = Handlebars.template(templateSpec);
10006		return template;
10007	} else {
10008		var template = Handlebars.compile(this.blockObj.html);
10009		return template;
10010	}
10011	
10012};
10013Mfe.Classes.ThemeHtmlBlock.prototype.getTemplateVars = function() {
10014	var templateVars = {
10015		'id': this.getId(),
10016		'title': this.getTitle()
10017	};
10018	
10019	return templateVars;
10020};
10021Mfe.Classes.ThemeHtmlBody = function(bodyObj) {
10022	this.class = 'Mfe.Classes.ThemeHtmlBody';
10023	this.bodyObj = bodyObj;
10024
10025};
10026Mfe.Classes.ThemeHtmlBody.prototype.getId = function() {
10027	return this.bodyObj.id;
10028};
10029Mfe.Classes.ThemeHtmlBody.prototype.getTitle = function() {
10030	return this.bodyObj.title;
10031};
10032Mfe.Classes.ThemeHtmlBody.prototype.getSettings = function() {
10033	return this.bodyObj.revision.settings;
10034};
10035Mfe.Classes.ThemeHtmlBody.prototype.getHtml = function() {
10036	return this.bodyObj.revision.html;
10037};
10038Mfe.Classes.ThemeHtmlBody.prototype.getTemplateVars = function() {
10039	var templateVars = {
10040		'id': this.getId(),
10041		'title': this.getTitle()
10042	};
10043	
10044	return templateVars;
10045};
10046Mfe.Classes.ThemeHtmlBundle = function(themeBundleObj) {
10047	this.themeBundleObj = themeBundleObj;
10048	
10049	this.blocks = [];
10050	this.blocksIndexed = {};
10051	for (var i = 0; i < themeBundleObj.blocks.length; i++) {
10052		var blockObj = themeBundleObj.blocks[i];
10053		var block = new Mfe.Classes.ThemeHtmlEntity(blockObj);
10054		this.blocks.push(block);
10055		this.blocksIndexed[block.getId()] = block;
10056	}
10057	
10058	this.layouts = [];
10059	this.layoutsIndexed = {};
10060	for (var i = 0; i < themeBundleObj.layouts.length; i++) {
10061		var layoutObj = themeBundleObj.layouts[i];
10062		var layout = new Mfe.Classes.ThemeHtmlEntity(layoutObj);
10063		this.layouts.push(layout);
10064		this.layoutsIndexed[layout.getId()] = layout;
10065	}
10066	
10067	this.bodies = [];
10068	this.bodiesIndexed = {};
10069	for (var i = 0; i < themeBundleObj.bodies.length; i++) {
10070		var bodieObj = themeBundleObj.bodies[i];
10071		var bodie = new Mfe.Classes.ThemeHtmlEntity(bodieObj);
10072		this.bodies.push(bodie);
10073		this.bodiesIndexed[bodie.getId()] = bodie;
10074	}
10075};
10076Mfe.Classes.ThemeHtmlBundle.prototype.getId = function(){
10077	return this.themeBundleObj.id;
10078};
10079Mfe.Classes.ThemeHtmlBundle.prototype.getBlockById = function(id){
10080	return this.blocksIndexed[id];
10081};
10082Mfe.Classes.ThemeHtmlBundle.prototype.getLayoutById = function(id){
10083	return this.layoutsIndexed[id];
10084};
10085Mfe.Classes.ThemeHtmlBundle.prototype.getBodyById = function(id){
10086	return this.bodiesIndexed[id];
10087};
10088Mfe.Classes.ThemeHtmlEntity = function(entityObj) {
10089	this.class = 'Mfe.Classes.ThemeHtmlEntity';
10090	this.entityObj = entityObj;
10091
10092	this.settings;
10093	
10094	if (isEmpty(this.entityObj.revision.settings.sections) === false) {
10095		this.settings = [];
10096		var sections = this.entityObj.revision.settings.sections;
10097		for (var i = 0; i < sections.length; i++) {
10098			var section = sections[i];
10099			for (var j = 0; j < section.settings.length; j++) {
10100				var setting = section.settings[j];
10101				this.settings.push(setting);
10102			}
10103		}
10104	} else {
10105		this.settings = this.entityObj.revision.settings;
10106	}
10107	
10108};
10109Mfe.Classes.ThemeHtmlEntity.prototype.getId = function() {
10110	return this.entityObj.id;
10111};
10112Mfe.Classes.ThemeHtmlEntity.prototype.getType = function() {
10113	return this.entityObj.type;
10114};
10115Mfe.Classes.ThemeHtmlEntity.prototype.getTitle = function() {
10116	return this.entityObj.title;
10117};
10118Mfe.Classes.ThemeHtmlEntity.prototype.getSettings = function() {
10119	return this.settings;
10120};
10121Mfe.Classes.ThemeHtmlEntity.prototype.getHtml = function() {
10122	return this.entityObj.revision.html;
10123};
10124Mfe.Classes.ThemeHtmlEntity.prototype.getHtmlTemplate = function(mfe) {
10125	/*if (isEmpty(this.entityObj.revision.htmlCompiled) === false) {
10126		mfe.addTiming('Loading ' + this.getType() + ' entity template from compiled spec', 'getHtmlTemplate');
10127		var templateSpec = mfe.parseTemplateSpec(this.entityObj.revision.htmlCompiled);
10128		var template = Handlebars.template(templateSpec);
10129		return template;
10130	} else {*/
10131		mfe.addTiming('Loading ' + this.getType() + ' entity template from HTML ' + JSON.stringify(this.entityObj), 'getHtmlTemplate');
10132		var template = Handlebars.compile(this.entityObj.revision.html);
10133		return template;
10134	//}
10135	
10136};
10137Mfe.Classes.ThemeHtmlEntity.prototype.getTemplateVars = function() {
10138	var templateVars = {
10139		'id': this.getId(),
10140		'title': this.getTitle()
10141	};
10142	
10143	return templateVars;
10144};
10145Mfe.Classes.ThemeHtmlLayout = function(layoutObj) {
10146	this.class = 'Mfe.Classes.ThemeHtmlLayout';
10147	this.layoutObj = layoutObj;
10148
10149};
10150Mfe.Classes.ThemeHtmlLayout.prototype.getId = function() {
10151	return this.layoutObj.id;
10152};
10153Mfe.Classes.ThemeHtmlLayout.prototype.getTitle = function() {
10154	return this.layoutObj.title;
10155};
10156Mfe.Classes.ThemeHtmlLayout.prototype.getSettings = function() {
10157	return this.layoutObj.settings;
10158};
10159Mfe.Classes.ThemeHtmlLayout.prototype.getHtml = function() {
10160	return this.layoutObj.html;
10161};
10162Mfe.Classes.ThemeHtmlLayout.prototype.getTemplateVars = function() {
10163	var templateVars = {
10164		'id': this.getId(),
10165		'title': this.getTitle()
10166	};
10167	
10168	return templateVars;
10169};
10170Mfe.Classes.Upload = function(uploadObj) {
10171	this.uploadObj = uploadObj.upload;
10172	this.focusObj = uploadObj.focus;
10173	
10174	this.filesBySize = {};
10175
10176	for (var i = 0; i < this.uploadObj.media.files.length; i++) {
10177		var file = this.uploadObj.media.files[i];
10178		
10179		file.url = mfe.translateUrl(file.url);
10180		
10181		var fileKey = file.type + file.size;
10182		this.filesBySize[fileKey] = file;
10183	}
10184};
10185Mfe.Classes.Upload.prototype.getId = function() {
10186	return this.uploadObj.id;
10187};
10188Mfe.Classes.Upload.prototype.getSiteId = function() {
10189	return this.uploadObj.siteId;
10190};
10191Mfe.Classes.Upload.prototype.getGroupId = function() {
10192	return this.uploadObj.groupId;
10193};
10194Mfe.Classes.Upload.prototype.getMediaType = function() {
10195	return this.uploadObj.mediaType;
10196};
10197Mfe.Classes.Upload.prototype.getMimeType = function() {
10198	return this.uploadObj.mimeType;
10199};
10200Mfe.Classes.Upload.prototype.getFilename = function() {
10201	return this.uploadObj.filename;
10202};
10203Mfe.Classes.Upload.prototype.getCaption = function() {
10204	return this.uploadObj.caption;
10205};
10206Mfe.Classes.Upload.prototype.getMediaWidth = function() {
10207	return this.uploadObj.media.width;
10208};
10209Mfe.Classes.Upload.prototype.getMediaHeight = function() {
10210	return this.uploadObj.media.height;
10211};
10212Mfe.Classes.Upload.prototype.getMediaFiles = function() {
10213	return this.uploadObj.media.files;
10214};
10215Mfe.Classes.Upload.prototype.getMediaFileBySize = function(size) {
10216	return this.filesBySize[size];
10217};
10218Mfe.Classes.Upload.prototype.getImageSourceSet = function() {
10219	var sourceSet = [];
10220	for (var i = 0; i < this.uploadObj.media.files.length; i++) {
10221		var file = this.uploadObj.media.files[i];
10222		file.url = mfe.translateUrl(file.url);
10223		
10224		sourceSet.push(file.url + ' ' + file.size + 'w');
10225	}
10226	
10227	return sourceSet.join(', ');
10228};
10229;
10230Mfe.Classes.Upload.prototype.getTemplateVars = function() {
10231	
10232	var focusObj = {
10233		'x': '50%',
10234		'y': '50%'
10235	};
10236	
10237	if (typeof this.focusObj !== 'undefined' && this.focusObj !== null) {
10238		if (typeof this.focusObj.x !== 'undefined') {
10239			focusObj.x = this.focusObj.x;
10240		}
10241		if (typeof this.focusObj.y !== 'undefined') {
10242			focusObj.y = this.focusObj.y;
10243		}
10244	}
10245	
10246	var templateVars = {
10247		'id': this.getId(),
10248		'caption': this.getCaption(),
10249		'filesIndexed': this.filesBySize,
10250		'srcSet': this.getImageSourceSet(),
10251		'focusPoint': { 'x': focusObj.x, 'y': focusObj.y },
10252		'focusPointCssVars': '--focus-point-x: ' + focusObj.x + '; --focus-point-y: ' + focusObj.y + ';'
10253	};
10254	
10255	return templateVars;
10256};
10257Mfe.Classes.Upload.prototype.toOldUploadObj = function() {
10258	var uploadObj = {
10259		'class': 'cms\\media',
10260		'id': this.getId(),
10261		'files': this.uploadObj.media.files,
10262		'mediaSizeHeight': this.getMediaHeight(),
10263		'mediaSizeWidth': this.getMediaWidth(),
10264		'mediaType': this.getMediaType(),
10265		'title': ''
10266	};
10267	
10268	/*var files = this.getMediaFiles();
10269	for (var i = 0; i < files.length; i++) {
10270		var file = files[i];
10271	}*/
10272	
10273	return uploadObj;
10274};
10275
10276Mfe.Classes.Upload.newArray = function(uploadObjs) {
10277	var uploads = [];
10278	
10279	for (var i = 0; i < uploadObjs.length; i++) {
10280		var uploadObj = uploadObjs[i];
10281		uploads.push(new Mfe.Classes.Site(uploadObj));
10282	}
10283	
10284	return uploads;
10285};
10286
10287Mfe.Classes.Upload.fromOldUpload = function(oldUploadObj) {
10288	var uploadObj = {
10289		'upload': {
10290			'id': oldUploadObj.id,
10291			'siteId': null,
10292			'groupId': null,
10293			'mediaType': oldUploadObj.mediaType,
10294			'mimeType': null,
10295			'filename': null,
10296			'caption': oldUploadObj.title,
10297			'media': {
10298				'width': oldUploadObj.mediaSizeWidth,
10299				'height': oldUploadObj.mediaSizeHeight,
10300				'files': oldUploadObj.files
10301			}
10302		}
10303	};
10304
10305	return new Mfe.Classes.Upload(uploadObj);
10306};
10307Mfe.Renderer.ThemeHtml = function(mfe) {
10308	this.mfe = mfe;
10309	this.paths = {};
10310	this.pathRegexes = [];
10311	this.indexPaths();
10312	
10313	this.editOverlays = {};
10314	
10315	this.mfe.editMode = false;
10316	this.selectMode = false;
10317	
10318	this.$mfeOverlayHoverEl = null;
10319	this.$hoverSourceEl = null;
10320	this.$selectedEl = null;
10321};
10322
10323Mfe.Renderer.ThemeHtml.prototype.renderComponent = function(templateConfig, contextSettings) {
10324	this.renderTemplate(templateConfig, contextSettings, 'component');
10325}
10326
10327Mfe.Renderer.ThemeHtml.prototype.renderTemplate = function(templateConfig, contextSettings, type) {
10328	this.mfe.lastWidgetId = 0;
10329	this.mfe.lastLayoutId = 0;
10330	this.mfe.activeWidgets = {};
10331	this.mfe.wfLoader = new Mfe.Utils.WebfontLoader({'autoLoad': false});
10332	 
10333	this.mfeIncludeEditContainers = true;
10334	
10335	var htmlResult = this.generatePageHtml(templateConfig, type);
10336	this.mfe.setPageHtml(htmlResult);
10337        
10338        //$('body').attr('data-template-id', processResult.pageVersion.template.id);
10339        
10340	this.mfe.attachWidgets();
10341	this.mfe.processFontsConfig();
10342 
10343	this.selectMode = true;
10344	
10345	var $widgetContainerEls = $('.mfe-edit-container[data-setting-type="widgets"]');
10346	for (var i = 0; i < $widgetContainerEls.length; i++) {
10347		var $widgetContainerEl = $($widgetContainerEls[i]);
10348		
10349		if ($widgetContainerEl.find('.widget').length == 0) {
10350			$widgetContainerEl.addClass('empty');
10351			$widgetContainerEl.parents('.layout-item-container').addClass('empty');
10352		}	
10353	}
10354	
10355        this.attachEditHandlers();
10356	
10357	this.mfe.loadAos();
10358        
10359	//var fullPath = this.mfe.getFullPath(path, queryParams);
10360	//this.mfe.fullPath = fullPath;
10361
10362	//$('body').attr('data-page', processResult.page.name + (processResult.page.name.length > 0 ? '-' + processResult.matchResult.type : ''));
10363	//$('body').attr('data-template-id', processResult.pageVersion.template.id);
10364	
10365	//this.mfe.onPageView(200, path, queryParams);
10366};
10367
10368Mfe.Renderer.ThemeHtml.prototype.updateTemplateConfig = function(type, action, path, settingName, settingConfig) {
10369	if (type == 'block') {
10370		if (action == 'update') {
10371			
10372			var newBlockHtml = this.renderThemeBlock(settingConfig.id, settingConfig.config);
10373			
10374			var replacedHtml = this.mfe.replaceWidgetElements(newBlockHtml, false);
10375			
10376			var $blockContainerEl = $(this.mfe.outputElSelector).find('.mfe-edit-container[data-setting-name="'+settingName+'"]');
10377			$blockContainerEl.html(replacedHtml);
10378			
10379			this.mfe.attachWidgets();
10380
10381			this.mfe.processFontsConfig();
10382		}
10383	}
10384};
10385
10386Mfe.Renderer.ThemeHtml.prototype.getHtmlElementByPath = function(path) {
10387	if (path.type == 'block') {
10388		return $('.mfe-edit-container[data-setting="block"][data-setting-name="'+path.settingName+'"]');
10389	} else if (path.type == 'layout') {
10390		return $('.mfe-edit-container[data-setting-name="'+path.settingName+'"] > .layout-container:nth-child(' + (path.layoutIndex + 1) + ')');
10391	} else if (path.type == 'widget') {
10392		var $layoutEl = $('.mfe-edit-container[data-setting-name="'+path.settingName+'"] > .layout-container:nth-child(' + (path.layoutIndex + 1) + ')');
10393		var $widgetEl = $layoutEl.find('.mfe-edit-container[data-setting-type="widgets"][data-setting-name="'+path.layoutSettingName+'"] .widget:nth-child(' + (path.widgetIndex + 1) + ')');
10394                
10395		return $widgetEl;
10396	}
10397	
10398	return false;
10399};
10400
10401Mfe.Renderer.ThemeHtml.prototype.updateTemplateConfigNew = function(path, settingName, settingValue) {
10402	var $pathEl = this.getHtmlElementByPath(path);
10403	
10404	if ($pathEl === false) {
10405		return;
10406	}
10407	
10408	// Update this value in the config object
10409	
10410	// Update this value in the preview
10411	if (path.type == 'widget') {
10412		var $widgetEl = $pathEl;
10413		var widgetId = $widgetEl.attr('data-widget-id');
10414		var widget = this.mfe.activeWidgets[widgetId];
10415		
10416		widget.options[settingName] = settingValue;
10417		
10418		if (widget.onSettingChanged) {
10419			widget.onSettingChanged(settingName, settingValue);
10420		} else {
10421			widget.render();
10422		}
10423	}
10424	
10425	
10426	
10427	/*if (type == 'block') {
10428		if (action == 'update') {
10429			
10430			var newBlockHtml = this.renderThemeBlock(settingConfig.id, settingConfig.config);
10431			
10432			var replacedHtml = this.mfe.replaceWidgetElements(newBlockHtml, false);
10433			
10434			var $blockContainerEl = $(this.mfe.outputElSelector).find('.mfe-edit-container[data-setting-name="'+settingName+'"]');
10435			$blockContainerEl.html(replacedHtml);
10436			
10437			this.mfe.attachWidgets();
10438
10439			this.mfe.processFontsConfig();
10440		}
10441	}*/
10442};
10443
10444Mfe.Renderer.ThemeHtml.prototype.indexPaths = function() {
10445	var siteThemeConfig = this.mfe.siteThemeConfig;
10446	
10447	var configPages = siteThemeConfig.pages;
10448	
10449	var languageFrontPagePaths = {};
10450	var languageErrorPages = {};
10451	var pagePathBlogs = {};
10452	var pagePathPages = {};
10453	var pagePathCalendars = {};
10454	var pagePathMedia = {};
10455	
10456	var pagePathExcludes = [];
10457	
10458	for (var i = 0; i < configPages.length; i++) {
10459		var configPage = configPages[i];
10460                
10461		// Alternative indexing
10462		if (configPage.type == 'frontpage' && configPage.path.length > 0) {
10463			languageFrontPagePaths[configPage.language] = configPage.path;
10464		} else if (configPage.type == 'error') {
10465			if (isEmpty(languageErrorPages[configPage.typeId]) === true) {
10466				languageErrorPages[configPage.typeId] = {};
10467			}
10468			if (isEmpty(languageErrorPages[configPage.typeId][configPage.language]) === true) {
10469				languageErrorPages[configPage.typeId][configPage.language] = [];
10470			}
10471			
10472			languageErrorPages[configPage.typeId][configPage.language].push(configPage);
10473		} else if (configPage.type == 'exclude-path') {
10474			pagePathExcludes.push(configPage.path);
10475			continue;
10476		}
10477		
10478		if (configPage.path.length == 0) {
10479			continue;
10480		}
10481		
10482		this.paths[configPage.path] = {
10483			'type': configPage.type,
10484			'page': configPage
10485		};
10486		
10487		if (configPage.type == 'blog') {
10488			var blogId = configPage.typeId;
10489			
10490			if (isEmpty(pagePathBlogs[blogId]) === true) {
10491				pagePathBlogs[blogId] = {};
10492			}
10493			
10494			pagePathBlogs[blogId][configPage.language] = configPage.path;
10495			
10496			// Blog overview
10497			this.pathRegexes.push({
10498				'regEx': '^'+Mfe.Utils.RegExp.escapeVal(configPage.path)+'$',
10499				'path': configPage.path,
10500				'type': 'blog-overview',
10501				'page': configPage
10502			});
10503			
10504			// Blog itempage
10505			this.pathRegexes.push({
10506				'regEx': '^'+Mfe.Utils.RegExp.escapeVal(configPage.path)+'\/([a-zA-Z0-9\-\_]+)$',
10507				'path': configPage.path,
10508				'type': 'blog-item',
10509				'page': configPage
10510			});
10511		} else if (configPage.type == 'cms-page') {
10512			var cmsPagePath = configPage.typeId;
10513			
10514			if (isEmpty(pagePathPages[cmsPagePath]) === true) {
10515				pagePathPages[cmsPagePath] = {};
10516			}
10517			
10518			pagePathPages[cmsPagePath][configPage.language] = configPage.path;
10519		} else if (configPage.type == 'cms-page-fallback') {
10520			// CMS page itempage
10521			this.pathRegexes.push({
10522				'regEx': '^'+Mfe.Utils.RegExp.escapeVal(configPage.path)+'\/([a-zA-Z0-9\-\_]+)$',
10523				'path': configPage.path,
10524				'type': 'cms-page-fallback',
10525				'page': configPage
10526			});
10527		} else if (configPage.type == 'dataset-table') {
10528                    
10529                        if (configPage.versions.length === 1) {
10530                            // Blog itempage
10531                            this.pathRegexes.push({
10532                                    'regEx': '^'+Mfe.Utils.RegExp.escapeVal(configPage.path)+'\/([a-zA-Z0-9\-\_]+)$',
10533                                    'path': configPage.path,
10534                                    'type': 'dataset-table',
10535                                    'page': configPage
10536                            });
10537                        }
10537 else if (configPage.versions.length === 2) {
10538                        
10539                            // Dataset overview
10540                            this.pathRegexes.push({
10541                                    'regEx': '^'+Mfe.Utils.RegExp.escapeVal(configPage.path)+'$',
10542                                    'path': configPage.path,
10543                                    'type': 'dataset-table-overview',
10544                                    'page': configPage
10545                            });
10546
10547                            // Dataset itempage
10548                            this.pathRegexes.push({
10549                                    'regEx': '^'+Mfe.Utils.RegExp.escapeVal(configPage.path)+'\/([a-zA-Z0-9\-\_]+)$',
10550                                    'path': configPage.path,
10551                                    'type': 'dataset-table-item',
10552                                    'page': configPage
10553                            });
10554
10555                            delete this.paths[configPage.path];
10556                        }
10557
10558		} else if (configPage.type == 'calendar') {
10559			
10560			// Event itempage
10561			var calendarId = configPage.typeId;
10562
10563			if (isEmpty(pagePathCalendars[calendarId]) === true) {
10564				pagePathCalendars[calendarId] = {};
10565			}
10566			
10567			pagePathCalendars[calendarId][configPage.language] = configPage.path;
10568			
10569			this.pathRegexes.push({
10570				'regEx': '^'+Mfe.Utils.RegExp.escapeVal(configPage.path)+'\/([a-zA-Z0-9\-\_]+)$',
10571				'path': configPage.path,
10572				'type': 'calendar-item',
10573				'page': configPage
10574			});
10575			
10576		} else if (configPage.type == 'donation-result') {
10577			
10578			this.pathRegexes.push({
10579				'regEx': '^'+Mfe.Utils.RegExp.escapeVal(configPage.path)+'$',
10580				'path': configPage.path,
10581				'type': 'donation-result',
10582				'page': configPage
10583			});
10584			
10585		} else if (configPage.type == 'media') {
10586			
10587			// Event itempage
10588			var mediaId = configPage.typeId;
10589
10590			if (isEmpty(pagePathMedia[mediaId]) === true) {
10591				pagePathMedia[mediaId] = {};
10592			}
10593			
10594			pagePathMedia[mediaId][configPage.language] = configPage.path;
10595				
10596			this.pathRegexes.push({
10597				'regEx': '^'+Mfe.Utils.RegExp.escapeVal(configPage.path)+'$',
10598				'path': configPage.path,
10599				'type': 'stream-item',
10600				'page': configPage
10601			});
10602			
10603		} else {
10604                    let regExPath = Mfe.Utils.RegExp.escapeVal(configPage.path);
10605
10606                    // Parse {var} sections
10607                    var pathVariables = [];
10608                    var contextMatches = regExPath.match(new RegExp('\\\\{([a-zA-Z0-9]*)\\\\}', 'g'));
10609                    if (contextMatches !== null) {
10610                        for (var contextMatch of contextMatches) {
10611                            contextMatch = contextMatch.substring(2, contextMatch.length - 2);
10612                            var replaceValue = '([a-zA-Z0-9\-\_\.\$\%\~]*)';
10613                            pathVariables.push(contextMatch);
10614                            regExPath = regExPath.replace('\\\{' + contextMatch + '\\\}', replaceValue);
10615                        }
10616                    }
10617                    
10618                    //var regEx = '^'+Mfe.Utils.RegExp.escapeVal(configPage.path)+'$';
10619                    var regEx = '^'+regExPath+'$';
10620
10621                    this.pathRegexes.push({
10622                        'regEx': regEx,
10623                        'path': configPage.path,
10624                        'type': configPage.type,
10625                        'page': configPage,
10626                        'pathVariables': pathVariables
10627                    });
10628		}
10629	}
10630	
10631	this.mfe.pathLanguageFrontPages = languageFrontPagePaths;
10632	this.mfe.languageErrorPages = languageErrorPages;
10633	this.mfe.pagePathMedia = pagePathMedia;
10634	this.mfe.pagePathPages = pagePathPages;
10635	this.mfe.pagePathBlogs = pagePathBlogs;
10636	this.mfe.pagePathCalendars = pagePathCalendars;
10637	this.mfe.pagePathExcludes = pagePathExcludes;
10638};
10639
10640Mfe.Renderer.ThemeHtml.prototype.render = function(path, queryParams, deviceType) {
10641	var fullPath = this.mfe.getFullPath(path, queryParams);
10642	this.mfe.fullPath = fullPath;
10643	this.mfe.queryParams = queryParams;
10644	
10645	this.mfe.lastWidgetId = 0;
10646	this.mfe.lastLayoutId = 0;
10647	this.mfe.activeWidgets = {};
10648	this.mfe.wfLoader = new Mfe.Utils.WebfontLoader({'autoLoad': false});
10649	
10650	var processResult = this.processPath(path, queryParams);
10651	
10652	if (isEmpty(processResult) === true || processResult === false) {
10653		return {
10654			'result': false,
10655			'error': { 'httpCode': 500, code: 'unknown', message: 'Unknown error' }
10656		};
10657	};
10658	
10659	if (processResult.result !== true) {
10660		if (isEmpty(processResult.error) === false && isEmpty(processResult.error.httpCode) === false) {
10661			return this.renderError(processResult.error);
10662		}
10663		return processResult;
10664	}
10665	
10666	if (isEmpty(processResult.redirect) === false) {
10667		return processResult;
10668	}
10669	
10670	mfeTimings.push({
10671		'ts': Date.now(),
10672		'message': 'Loading context'
10673	});
10674
10675	var contextResult = this.mfe.loadContext(processResult.context, processResult.contextId, processResult.contextParams);
10676	if (contextResult === false) {
10677		mfeTimings.push({
10678			'ts': Date.now(),
10679			'message': 'Context is not available. Requesting API response'
10680		});
10681		return {
10682			'contextResult': contextResult,
10683			'result': true,
10684			'apiResponseRequired': true,
10685			'apiResponseRequests': this.mfe.apiResponseRequests
10686		};
10687	} else if (contextResult === null) {
10688		mfeTimings.push({
10689			'ts': Date.now(),
10690			'message': 'Could not route path'
10691		});
10692		var errorObj = { 'httpCode': 404, code: 'routing_failed', message: 'Could not route path' };
10693		return this.renderError(errorObj);
10694	}
10695
10696	logTime('Finished loading context');
10697	
10698	if (processResult.context == 'donation-result') {
10699		if (contextResult == 'cancelled') {
10700			return {
10701				'redirect': '/donation'
10702			}
10703		} else {
10704			return {
10705				'redirect': '/donation/thanks'
10706			}
10707		}
10708	}
10709	
10710	if (isEmpty(processResult.redirect) === false) {
10711		logTime('Redirecting');
10712		return processResult;
10713	}
10714	// 
10715	
10716	// Generate page meta data
10717	logTime('Processing page metadata');
10718	this.mfe.pageMetaData = this.processPageMetaData(processResult);
10719	
10720	this.mfe.pageTitle = processResult.pageTitle;
10721	this.mfe.pagePath = processResult.matchResult.page.path;
10722	this.mfe.pageLanguage = processResult.pageLanguage;
10723        this.mfe.pathVars = processResult.matchResult.pathVars;
10724	
10725	logTime('Switching Moment locale to ' + this.mfe.pageLanguage);
10726	moment.locale(this.mfe.pageLanguage);
10727
10728	// Generate HTML
10729	logTime('Generating page HTML');
10730	var htmlResult = this.generatePageHtml(processResult.pageConfig);
10731	if (typeof htmlResult !== 'string') {
10732		logTime('Could not generate HTML');
10733		return htmlResult;
10734	}
10735	
10736	if (this.mfe.apiResponseRequests !== null) {
10737		logTime('Need more API responses to render');
10738		return {
10739			'result': true,
10740			'apiResponseRequired': true,
10741			'this.apiResponseBundle': this.mfe.apiResponseBundle,
10742			'apiResponseRequests': this.mfe.apiResponseRequests
10743		};
10744	}
10745	
10746	logTime('Process font config');
10747	this.mfe.processFontsConfig();
10748
10749	var pageInfo = {
10750		'metaData': this.mfe.pageMetaData,
10751		'bodyClasses': this.mfe.getBodyClasses(),
10752		'pageName': processResult.page.name + (processResult.page.name.length > 0 ? '-' + processResult.matchResult.type : ''),
10753		'pageTemplateId': processResult.pageVersion.template.id,
10754		'pageLanguage': processResult.page.language,
10755		'googleFontsUrl': this.mfe.wfLoader.generateGoogleFontsUrl(),
10756		'googleFontsFamilies': this.mfe.wfLoader.getGoogleFontsFamilies()
10757	};
10758	
10759	return {
10760		'result': true,
10761		'apiResponseRequired': false,
10762		'page': pageInfo,
10763                'context': this.mfe.context,
10764                'contextId': this.mfe.contextId,
10765		'widgetBundle': this.mfe.generateWidgetBundle(),
10766		'processResult': processResult,
10767		'html': htmlResult
10768	};
10769	
10770	//var context = pathResult.matchResult.context;
10771	//var contextId = pathResult.matchResult.contextId;
10772	//html
10773	/*return {
10774		'result': true,
10775		'
10776	};*/
10777};
10778Mfe.Renderer.ThemeHtml.prototype.navigate = function(path, queryParams, updateHistory, hash) {
10779	var self = this;
10780	
10781	$('html').trigger('mfeRenderPage');
10782	
10783	var processResult = this.processPath(path, queryParams);
10784	
10785	if (isEmpty(processResult) === true || processResult === false) {
10786		alert('Error has occured');
10787		return;
10788	};
10789	
10790	this.mfe.lastWidgetId = 0;
10791	this.mfe.lastLayoutId = 0;
10792	this.mfe.activeWidgets = {};
10793	this.mfe.bodyClasses = {};
10794	this.mfe.wfLoader = new Mfe.Utils.WebfontLoader({'autoLoad': false});
10795	
10796	if (processResult.result !== true) {
10797		if (isEmpty(processResult.error) === false && isEmpty(processResult.error.httpCode) === false) {
10798			this.navigateError(path, queryParams, processResult.error);
10799			this.mfe.onPageView(processResult.error.httpCode, path, queryParams);
10800			return;
10801		}
10802		
10803		return;
10804	}
10805	
10806	if (isEmpty(processResult.redirect) === false) {
10807		this.navigate(processResult.redirect, {}, 'replace');
10808		return;
10809	}
10810	
10811	var fullPath = this.mfe.getFullPath(path, queryParams);
10812	this.mfe.fullPath = fullPath;
10813	this.mfe.queryParams = queryParams;
10814        
10815	this.mfe.pageTitle = processResult.pageTitle;
10816	this.mfe.pageLanguage = processResult.pageLanguage;
10817	this.mfe.pagePathVars = processResult.matchResult.pathVars;
10818	this.mfe.pagePath;
10819	this.mfe.pageHash = hash;
10820	
10821	$('html').attr('lang', this.mfe.pageLanguage);
10822	
10823
10824	if (processResult.matchResult.page) {
10825		this.mfe.currentPage = processResult.matchResult.page;
10826	} else {
10827		this.mfe.currentPage = null;
10828	}
10829	
10830	if (processResult.matchResult.path) {
10831		this.mfe.pagePath = processResult.matchResult.path;
10832	} else if (processResult.matchResult.page.path) {
10833		this.mfe.pagePath = processResult.matchResult.page.path;
10834	}
10835	
10836	moment.locale(this.mfe.pageLanguage);
10837	
10838	var contextResult = this.mfe.loadContext(processResult.context, processResult.contextId, processResult.contextParams, function(result, response) {
10839		
10840		if (result === false) {
10841			var errorObj = { 'httpCode': 404, code: 'routing_failed', message: 'Could not route path' };
10842			self.navigateError(path, queryParams, errorObj);
10843			return;
10844		}
10845		
10846		if (processResult.context == 'donation-result') {
10847			if (response == 'cancelled') {
10848				self.navigate('/donation', {}, 'replace');
10849				return;
10850			} else if (response == 'paid') {
10851				self.navigate('/donation/thanks', {}, 'replace');
10852				return;
10853			}
10854		}
10855
10856		self.continueNavigation(path, queryParams, updateHistory, processResult);
10857	});
10858	if (contextResult === false) {
10859		return;
10860	} else if (contextResult === null) {
10861		var errorObj = { 'httpCode': 404, code: 'routing_failed', message: 'Could not route path' };
10862		self.navigateError(path, queryParams, errorObj);
10863		return;
10864	}
10865	
10866	this.continueNavigation(path, queryParams, updateHistory, processResult);
10867};
10868
10869Mfe.Renderer.ThemeHtml.prototype.continueNavigation = function(path, queryParams, updateHistory, processResult) {
10870	this.mfe.pageMetaData = this.processPageMetaData(processResult);
10871	
10872	window.scroll(0, 0);
10873	
10874	var htmlResult = this.generatePageHtml(processResult.pageConfig);
10875	
10876	this.mfe.setPageHtml(htmlResult);
10877	//this.mfe.setPageLanguage(htmlResult);
10878	this.mfe.attachWidgets();
10879	
10880	if (this.mfe.viewMode == 'edit') {
10881		//this.attachEditHandlers();
10882	}
10883	
10884	this.mfe.processFontsConfig();
10885	
10886	var fullPath = this.mfe.getFullPath(path, queryParams);
10887	
10888	this.mfe.fullPath = fullPath;
10889
10890	if (isEmpty(updateHistory) || updateHistory === true) {
10891	    history.pushState({}, 'Site', fullPath);
10892	} else if (updateHistory === 'replace') {
10893		history.replaceState({}, 'Site', fullPath);
10894	}
10895	
10896	document.title = this.mfe.pageMetaData.html.title;
10897	
10898	$('body').attr('data-page', processResult.page.name + (processResult.page.name.length > 0 ? '-' + processResult.matchResult.type : ''));
10899	$('body').attr('data-template-id', processResult.pageVersion.template.id);
10900        
10901        this.mfe.currentPage.pageName = processResult.page.name + (processResult.page.name.length > 0 ? '-' + processResult.matchResult.type : '');
10902        this.mfe.currentPage.pageTemplateId = processResult.pageVersion.template.id;
10903        
10904	/*var pageInfo = {
10905		'metaData': this.mfe.pageMetaData,
10906		'bodyClasses': this.mfe.getBodyClasses(),
10907		'pageName': processResult.page.name + (processResult.page.name.length > 0 ? '-' + processResult.matchResult.type : ''),
10908		'pageTemplateId': processResult.pageVersion.template.id,
10909		'pageLanguage': processResult.page.language,
10910		'googleFontsUrl': this.mfe.wfLoader.generateGoogleFontsUrl(),
10911		'googleFontsFamilies': this.mfe.wfLoader.getGoogleFontsFamilies()
10912	};*/
10913	
10914	if (this.mfe.supportsCssVars !== true) {
10915		cssVars();
10916	}
10917	
10918	this.mfe.onPageView(200, path, queryParams);
10919};
10920
10921Mfe.Renderer.ThemeHtml.prototype.renderError = function(error) {
10922	this.mfe.processFontsConfig();
10923	
10924	var pageInfo = {
10925		'metaData': this.mfe.pageMetaData,
10926		'bodyClasses': this.mfe.getBodyClasses(),
10927		'googleFontsUrl': this.mfe.wfLoader.generateGoogleFontsUrl(),
10928		'googleFontsFamilies': this.mfe.wfLoader.getGoogleFontsFamilies()
10929	};
10930	
10931	return {
10932		'result': false,
10933		'apiResponseRequired': false,
10934		'error': error,
10935		'widgetBundle': this.mfe.generateWidgetBundle(),
10936		'html': this.generateErrorPageHtml(error),
10937		'page': pageInfo
10938	};
10939};
10940
10941Mfe.Renderer.ThemeHtml.prototype.navigateError = function(path, queryParams, error) {
10942	
10943	this.mfe.pagePath = path;
10944	
10945	var errorHtml = this.generateErrorPageHtml(error);
10946	
10947	this.mfe.setPageHtml(errorHtml);
10948	this.mfe.attachWidgets();
10949	this.mfe.processFontsConfig();
10950	
10951	var fullPath = this.mfe.getFullPath(path, queryParams);
10952	this.mfe.fullPath = fullPath;
10953	
10954	if (this.mfe.viewMode == 'edit') {
10955		//this.attachEditHandlers();
10956	}
10957
10958	history.pushState({}, 'Site', fullPath);
10959};
10960
10961Mfe.Renderer.ThemeHtml.prototype.processLanguageRedirect = function() {
10962	var availableFrontPageLanguages = this.mfe.pathLanguageFrontPages;
10963	var availableFrontPageLanguageKeys = Object.keys(availableFrontPageLanguages);
10964	
10965	var language = null;
10966	if (typeof this.mfe.options.ipCountry !== 'undefined') {
10967		for (var i = 0; i < availableFrontPageLanguageKeys.length; i++) {
10968			var langKey = availableFrontPageLanguageKeys[i];
10969			var langKeyParts = langKey.split('-');
10970			
10971			if (langKeyParts[1] == this.mfe.options.ipCountry) {
10972				language = langKey;
10973				break;
10974			}
10975		}
10976	}
10977	
10978	if (language === null) {
10979		language = this.mfe.determineLanguage();
10980	}
10981	
10982	var frontPagePath = availableFrontPageLanguages[language];
10983	
10984	return {
10985		'result': true,
10986		'redirect': frontPagePath
10987	};
10988};
10989
10990Mfe.Renderer.ThemeHtml.prototype.processPath = function(path, queryParams) {
10991	var matchResult = this.matchPath(path, queryParams);
10992        
10993	if (isEmpty(matchResult) === true || matchResult === false) {
10994            return {
10995                'result': false,
10996                'matchResult': matchResult,
10997                'pathRegexes': this.pathRegexes,
10998                'error': { 'httpCode': 404, code: 'routing_failed', message: 'Could not route path' }
10999            };
11000	}
11001	
11002	for (var excludePath of this.mfe.pagePathExcludes) {
11003            if (path.substring(0, excludePath.length) === excludePath) {
11004                return {
11005                    'result': false,
11006                    'matchResult': matchResult,
11007                    'pathRegexes': this.pathRegexes,
11008                    'error': { 'httpCode': 404, code: 'routing_failed', message: 'Could not route path' }
11009                };
11010            }
11011	}
11012	
11013	var matchType = matchResult.type;
11014
11015	if (matchResult.page.type == 'language-redirect') {
11016		return this.processLanguageRedirect();
11017		
11018	} else if (matchResult.page.type == 'redirect') {
11019		return {
11020			'result': true,
11021			'redirect': matchResult.page.typeId,
11022			'redirectStatusCode': 301
11023		};
11024	}
11025	
11026	// Determine which version of this page to use
11027	var pageConfig = {};
11028	var pageVersion;
11029	
11030	var processResult;
11031	
11032	if (matchResult.page.type == 'donation-result') {
11033		
11034		processResult = {
11035			'result': true,
11036			'context': matchType,
11037			'contextId': null,
11038			'contextParams': {},
11039			'matchResult': matchResult,
11040			'pageConfig': pageConfig
11041		};
11042		
11043	} else if (matchResult.page.versions.length == 0) {
11044		return {
11045			'result': false,
11046			'matchResult': matchResult,
11047			'pathRegexes': this.pathRegexes,
11048			'error': { 'httpCode': 501, code: 'page_version_missing', message: 'Could not find version for page' }
11049		};
11050	} else {
11051		
11052		pageVersion = matchResult.page.versions[0];
11053		pageConfig = pageVersion.template.revision.config;
11054		
11055		processResult = {
11056			'result': true,
11057			'context': matchType,
11058			'contextId': null,
11059			'contextParams': {},
11060			'pageConfig': pageConfig,
11061			'pageLanguage': matchResult.page.language,
11062			'page': matchResult.page
11063		};
11064	}
11065        
11066	if (matchType == 'static') {
11067		
11068	} else if (matchType == 'cms-page') {
11069		processResult.context = matchType;
11070		processResult.contextId = matchResult.page.typeId;
11071	} else if (matchType == 'cms-page-fallback') {
11072		//console.log('this is a fallback');
11073		processResult.context = 'cms-page';
11074		processResult.contextId = '/' + matchResult.matchVars[0];
11075	} else if (matchType == 'blog-overview') {
11076		
11077		processResult.context = matchType;
11078		processResult.contextId = matchResult.matchVars[0];
11079		
11080		// We need to find the item page version of this page
11081		var availablePageVersions = [];
11082		var blogPageVersions = matchResult.page.versions;
11083		for (var i = 0; i < blogPageVersions.length; i++) {
11084			var blogPageVersion = blogPageVersions[i];
11085			if (blogPageVersion.type == 'default') {
11086				availablePageVersions.push(blogPageVersion);
11087			}
11088		}
11089
11090		if (availablePageVersions.length == 0) {
11091			return {
11092				'result': false,
11093				'matchResult': matchResult,
11094				'pathRegexes': this.pathRegexes,
11095				'error': { 'httpCode': 501, code: 'page_version_missing', message: 'Could not find version for page' }
11096			};
11097		}
11098		
11099		var availablePageVersion;
11100		if (availablePageVersions.length > 1) {
11101			var chosenPageVersion = null;
11102			var fallbackPageVersion = null;
11103			
11104			fallbackPageVersion = availablePageVersions[0];
11105			for (var i = 0; i < availablePageVersions.length; i++) {
11106				var pageVersion = availablePageVersions[i];
11107				if (fallbackPageVersion === null && pageVersion.condition === null) {
11108					fallbackPageVersion = pageVersion;
11109					continue;
11110				}
11111				
11112				if (pageVersion.condition !== null) {
11113					
11114				}
11115			}
11116			
11117			if (chosenPageVersion === null) {
11118				
11119				availablePageVersion = fallbackPageVersion;
11120			}
11121			
11122		} else {
11123			availablePageVersion = availablePageVersions[0];
11124		}
11125		
11126		pageVersion = availablePageVersion;
11127		
11128		processResult.pageConfig = pageVersion.template.revision.config;
11129		
11130		processResult.context = matchType;
11131		processResult.contextId = matchResult.page.typeId;
11132	} else if (matchType == 'dataset-table' || matchType == 'dataset-table-item') {
11133              
11134		processResult.context = 'dataset-table';
11135		processResult.contextId = matchResult.page.typeId;
11136		processResult.contextParams = { 'lookupId': matchResult.matchVars[0] };
11137		//processResult.pageConfig = matchResult.page.itemPageRevision.config;
11138                
11139		// We need to find the item page version of this page
11140                if (matchType == 'dataset-table-item') {
11141                    var availablePageVersion;
11142                    var availablePageVersions = [];
11143                    var blogPageVersions = matchResult.page.versions;
11144                    for (var i = 0; i < blogPageVersions.length; i++) {
11145                            var blogPageVersion = blogPageVersions[i];
11146                            if (blogPageVersion.type == 'item') {
11147                                    availablePageVersions.push(blogPageVersion);
11148                            }
11149                    }
11150                    
11151                    availablePageVersion = availablePageVersions[0];
11152                    pageVersion = availablePageVersion;
11153                }
11154                
11155	} else if (matchType == 'dataset-table-overview') {
11156		processResult.context = matchType;
11157		processResult.contextId = null;
11158		processResult.contextParams = {  };
11159
11160                var availablePageVersion;
11161                var availablePageVersions = [];
11162                var blogPageVersions = matchResult.page.versions;
11163                for (var i = 0; i < blogPageVersions.length; i++) {
11164                        var blogPageVersion = blogPageVersions[i];
11165                        if (blogPageVersion.type == 'default') {
11166                                availablePageVersions.push(blogPageVersion);
11167                        }
11168                }
11169
11170                availablePageVersion = availablePageVersions[0];
11171                pageVersion = availablePageVersion;
11172                
11173		//processResult.pageConfig = matchResult.page.itemPageRevision.config;
11174	} else if (matchType == 'calendar-item') {
11175		processResult.context = matchType;
11176		processResult.contextId = matchResult.matchVars[0];
11177	} else if (matchType == 'legacy-news-redirect') {
11178		processResult.context = matchType;
11179		processResult.contextId = matchResult.matchVars[0];
11180	} else if (matchType == 'blog-item') {
11181		processResult.context = matchType;
11182		processResult.contextId = matchResult.matchVars[0];
11183		
11184		// We need to find the item page version of this page
11185		var availablePageVersions = [];
11186		var blogPageVersions = matchResult.page.versions;
11187		for (var i = 0; i < blogPageVersions.length; i++) {
11188			var blogPageVersion = blogPageVersions[i];
11189			if (blogPageVersion.type == 'item') {
11190				availablePageVersions.push(blogPageVersion);
11191			}
11192		}
11193		
11194		if (availablePageVersions.length == 0) {
11195			return {
11196				'result': false,
11197				'matchResult': matchResult,
11198				'pathRegexes': this.pathRegexes,
11199				'error': { 'httpCode': 501, code: 'page_version_missing', message: 'Could not find version for page' }
11200			};
11201		}
11202		
11203		var availablePageVersion;
11204		if (availablePageVersions.length > 1) {
11205			var chosenPageVersion = null;
11206			var fallbackPageVersion = null;
11207			
11208			fallbackPageVersion = availablePageVersions[0];
11209			for (var i = 0; i < availablePageVersions.length; i++) {
11210				var pageVersion = availablePageVersions[i];
11211				if (fallbackPageVersion === null && pageVersion.condition === null) {
11212					fallbackPageVersion = pageVersion;
11213					continue;
11214				}
11215				
11216				if (pageVersion.condition !== null) {
11217					
11218				}
11219				
11220			}
11221			
11222			if (chosenPageVersion === null) {
11223				
11224				availablePageVersion = fallbackPageVersion;
11225			}
11226			
11227		} else {
11228			availablePageVersion = availablePageVersions[0];
11229		}
11230		
11231		pageVersion = availablePageVersion;
11232		
11233		processResult.pageConfig = pageVersion.template.revision.config;
11234		
11235	} else if (matchType == 'stream-item') {
11236		if (isEmpty(queryParams.mediaId) === true) {
11237			return {
11238				'result': false,
11239				'queryParams': queryParams,
11240				'pathRegexes': this.pathRegexes,
11241				'error': { 'httpCode': 404, code: 'routing_failed', message: 'Could not route path' }
11242			};
11243		}
11244
11245		processResult.context = 'stream-item';
11246		processResult.queryParams = 'stream-item';
11247		processResult.contextId = queryParams.mediaId;
11248		
11249	} else if (matchType == 'media') {
11250		if (isEmpty(queryParams.mediaId) === true) {
11251			return {
11252				'result': false,
11253				'queryParams': queryParams,
11254				'pathRegexes': this.pathRegexes,
11255				'error': { 'httpCode': 404, code: 'routing_failed', message: 'Could not route path' }
11256			};
11257		}
11258
11259		processResult.context = 'stream-item';
11260		processResult.queryParams = 'stream-item';
11261		processResult.contextId = queryParams.mediaId;
11262		
11263	} else if (matchType == 'donation-result') {
11264		if (isEmpty(queryParams.ref) === true) {
11265			return {
11266				'result': false,
11267				'queryParams': queryParams,
11268				'pathRegexes': this.pathRegexes,
11269				'error': { 'httpCode': 404, code: 'routing_failed', message: 'Could not route path' }
11270			};
11271		}
11272
11273		processResult.context = 'donation-result';
11274		processResult.queryParams = 'donation-result';
11275		processResult.contextId = queryParams.ref;
11276		
11277		return processResult;
11278	} else if (matchType == 'search') {
11279		var searchQuery = '';
11280		var searchAuthors = '';
11281		var searchTags = '';
11282		var searchStorylines = '';
11283		var searchPage = '1';
11284		
11285		if (isEmpty(queryParams.q) === false) { searchQuery = queryParams.q; }
11286		if (isEmpty(queryParams.a) === false) { searchAuthors = queryParams.a; }
11287		if (isEmpty(queryParams.t) === false) { searchTags = queryParams.t; }
11288		if (isEmpty(queryParams.s) === false) { searchStorylines = queryParams.s; }
11289		if (isEmpty(queryParams.p) === false) { searchPage = queryParams.p; }
11290		
11291		/*
11292		if (isEmpty(queryParams.mediaId) === true) {
11293			return {
11294				'result': false,
11295				'queryParams': queryParams,
11296				'pathRegexes': this.pathRegexes,
11297				'error': { 'httpCode': 404, code: 'routing_failed', message: 'Could not route path' }
11298			};
11299		}*/
11300		
11301		processResult.context = 'search';
11302		processResult.contextParams = {
11303			'query': searchQuery,
11304			'authors': searchAuthors,
11305			'tags': searchTags,
11306			'storylines': searchStorylines,
11307			'page': searchPage
11308		}
11309	}
11310        
11311        if (typeof pageVersion === 'undefined' || pageVersion === null || pageVersion === false) {
11312            pageVersion = matchResult.page.versions[0];
11313        }
11314	
11315	processResult.matchResult = matchResult;
11316	processResult.pageVersion = pageVersion;
11317	
11318	return processResult;
11319};
11320
11321Mfe.Renderer.ThemeHtml.prototype.generateErrorPageHtml = function(error) {
11322	var preferredLanguage = this.mfe.pageLanguage;
11323	
11324	var errorPages = this.getErrorPage(error.httpCode, preferredLanguage);
11325	if (isEmpty(errorPages) === true || errorPages.length == 0) {
11326		return 'An error has occured.';
11327	}
11328	
11329	var errorPageVersions = errorPages[0].versions;
11330	var errorPageVersion = errorPageVersions[0];
11331	
11332	this.mfe.lastWidgetId = 0;
11333	this.mfe.lastLayoutId = 0;
11334	this.mfe.activeWidgets = {};
11335	this.mfe.bodyClasses = {};
11336	
11337	var htmlResult = this.generatePageHtml(errorPageVersion.template.revision.config);
11338	
11339	return htmlResult;
11340};
11341
11342Mfe.Renderer.ThemeHtml.prototype.getErrorPage = function(code, language) {
11343	if (isEmpty(this.mfe.languageErrorPages) === true) {
11344		return null;
11345	}
11346	
11347	if (isEmpty(this.mfe.languageErrorPages[code]) === true) {
11348		return null;
11349	}
11350	
11351	if (isEmpty(this.mfe.languageErrorPages[code][language]) === false) {
11352		return this.mfe.languageErrorPages[code][language];
11353	}
11354	
11355	var availableLanguages = Object.keys(this.mfe.languageErrorPages[code]);
11356	return this.mfe.languageErrorPages[code][availableLanguages[0]];
11357};
11358
11359Mfe.Renderer.ThemeHtml.prototype.processPageMetaData = function(processResult) {
11360	var page = processResult.page;
11361	var pageType = processResult.page.type;
11362	
11363	var pageDomain = '';
11364	var pageTitleShort = '';
11365	var pageTitleFull = '';
11366	var pageDescription = isEmpty(this.mfe.siteConfig.siteDescription) === false ? this.mfe.siteConfig.siteDescription : '';
11367	
11368	pageDescription = pageDescription.replace(/\n/g, " ").trim();
11369	
11370	var metaData = {
11371		'html': {},
11372		'og': {},
11373		'twitter': {}
11374	};
11375
11376	metaData.og.title = pageTitleShort;
11377	metaData.og.type = 'website';
11378        
11379	metaData.og.articleAuthor = '';
11380	metaData.og.articlePublicationDate = '';
11381	
11382	metaData.og.description = pageDescription;
11383	metaData.og.url = '';
11384	metaData.og.image = this.mfe.siteConfig.defaultOgImageUrl;
11385	metaData.og.imageWidth = '';
11386	metaData.og.imageHeight = '';
11387	
11388	var contextTitle = '';
11389	
11390	if (this.mfe.context == 'blog-item' || this.mfe.context == 'cms-page' || this.mfe.context == 'cms-page-fallback') {
11391		
11392		var blogItem = this.mfe.contextObject;
11393		
11394		metaData.excludeIndexing = blogItem.getVisibilityExcludeIndexing();
11395
11396		var revision = blogItem.getRevisionByLanguage(this.mfe.pageLanguage);
11397		
11398		if (isEmpty(revision) === false) {
11399			contextTitle = revision.getTitle();
11400			pageTitleShort = revision.getTitle();
11401			pageTitleFull = revision.getTitle() + ' - ' + this.mfe.siteThemeConfig.site.title;
11402			
11403			var summary = revision.getSummary();
11404			if (summary.replace) {
11405				metaData.og.description = revision.getSummary().replace(/\n/g, " ").trim();
11406			}
11407			
11408			var ogImage = revision.getOgImage();
11409			
11410			if (ogImage.url.length > 0) {
11411				metaData.og.image = ogImage.url;
11412				metaData.og.imageWidth = ogImage.width;
11413				metaData.og.imageHeight = ogImage.height;
11414			}
11415
11416			if (this.mfe.context == 'cms-page' && page.type != 'cms-page-fallback') {
11417				if (page.title.length > 0) {
11418					contextTitle = page.title;
11419				}
11420			}
11421                        
11422                        if (this.mfe.context == 'blog-item') {
11423			    if (revision.author !== null && revision.author.getFullName) {
11424				metaData.og.articleAuthor = revision.author.getFullName();
11425			    }
11426			    
11427			    if (blogItem.getPublicationDateIso8601) {
11428				metaData.og.articlePublicationDate = blogItem.getPublicationDateIso8601();
11429			    }
11430			    
11431                            
11432                        }
11433		}
11434		
11435		metaData.og.type = 'article';
11436	} else if (this.mfe.context == 'dataset-table' || this.mfe.context == 'dataset-table-item') {
11437            
11438            let datasetRecordLookup = this.mfe.contextObject;
11439            let recordTemplateData = datasetRecordLookup.getTemplateVars(this.mfe);
11440            
11441            if (recordTemplateData._meta && typeof recordTemplateData._meta['ogPageTitle'] !== 'undefined') {
11442		contextTitle = recordTemplateData._meta['ogPageTitle'];
11443		pageTitleShort = recordTemplateData._meta['ogPageTitle'];
11444		pageTitleFull = recordTemplateData._meta['ogPageTitle'] + ' - ' + this.mfe.siteThemeConfig.site.title;
11445            }
11446            
11447            if (recordTemplateData._meta && typeof recordTemplateData._meta['ogPageDescription'] !== 'undefined') {
11448		metaData.og.description = recordTemplateData._meta['ogPageDescription'];
11449            }
11450            
11451            if (recordTemplateData._meta && typeof recordTemplateData._meta['ogImageUrl'] !== 'undefined') {
11452		metaData.og.image = recordTemplateData._meta['ogImageUrl'];
11453            }
11454
11455	} else if (pageType == 'media') {
11456	
11457		var media = this.mfe.contextObject;
11458		
11459		contextTitle = media.getTitle();
11460		pageTitleShort = media.getTitle();
11461		pageTitleFull = media.getTitle() + ' - ' + this.mfe.siteThemeConfig.site.title;
11462		
11463		metaData.og.image = media.getImageUrl();
11464		metaData.og.description = media.getDescription();
11465		
11466	} else if (pageType == 'frontpage') {
11467		pageTitleShort = this.mfe.siteThemeConfig.site.title;
11468		pageTitleFull = this.mfe.siteThemeConfig.site.title;
11469		
11470		metaData.og.type = 'website';
11471		metaData.og.image = this.mfe.siteConfig.defaultOgImageUrl;
11472	} else if (pageType == 'static') {
11473		pageTitleShort = page.title;
11474		pageTitleFull = page.title + ' - ' + this.mfe.siteThemeConfig.site.title;
11475		metaData.og.type = 'website';
11476		metaData.og.image = this.mfe.siteConfig.defaultOgImageUrl;
11477	} else {
11478		// Temporary
11479		pageTitleShort = page.title + ' - ' + this.mfe.siteThemeConfig.site.title;
11480		pageTitleFull = page.title + ' - ' + this.mfe.siteThemeConfig.site.title;
11481		metaData.og.type = 'website';
11482		metaData.og.image = this.mfe.siteConfig.defaultOgImageUrl;
11483	}
11484	
11485	if (pageType != 'frontpage') {
11486		if (contextTitle === null || contextTitle.length == 0) {
11487			contextTitle = page.title;
11488		}
11489
11490		if (contextTitle !== null && contextTitle.length > 0) {
11491			pageTitleFull = contextTitle + ' - ' + this.mfe.siteThemeConfig.site.title;
11492		} else {
11493			pageTitleFull = this.mfe.siteThemeConfig.site.title;
11494		}
11495	}
11496	
11497	metaData.og.title = pageTitleShort;
11498	metaData.og.url = '';
11499	
11500	metaData.html.title = pageTitleFull;
11501	metaData.html.description = pageDescription;
11502
11503	metaData.twitter.card = 'summary_large_image';
11504	metaData.twitter.title = pageTitleShort;
11505	metaData.twitter.description = pageDescription;
11506	metaData.twitter.textDescription = pageDescription;
11507	metaData.twitter.domain = pageDomain;
11508        
11509        if (page.metaTitle && page.metaTitle.length > 0) {
11510            metaData.html.title = page.metaTitle;
11511            metaData.twitter.title = page.metaTitle;
11512            metaData.og.title = page.metaTitle;
11513        }
11514        
11515        if (page.metaDescription && page.metaDescription.length > 0) {
11516            metaData.html.description = page.metaDescription;
11517            metaData.twitter.description = page.metaDescription;
11518            metaData.og.description = page.metaDescription;
11519        }
11520        
11521        if (page.metaImageUrl && page.metaImageUrl.length > 0) {
11522            //metaData.html.description = page.metaImageUrl;
11523            //metaData.twitter.description = page.metaImageUrl;
11524            metaData.og.image = page.metaImageUrl;
11525        }
11526        
11527        if (page.metaType && page.metaType.length > 0) {
11528            metaData.og.type = page.metaType;
11529        }
11530        
11531	return metaData;
11532};
11533
11534Mfe.Renderer.ThemeHtml.prototype.matchPath = function(path, queryParams) {
11535	
11536	var fixedPath;
11537	if (path == '/') {
11538		fixedPath = '/';
11539	} else {
11540		if (path.substring(path.length - 1, path.length) == '/') {
11541			fixedPath = path.substring(0, path.length - 1);
11542		} else {
11543			fixedPath = path;
11544		}
11545	}
11546	
11547	if (this.pathRegexes.length == 0) {
11548		return false;
11549	}
11550	
11551	if (typeof this.paths[fixedPath] !== 'undefined') {
11552            
11553		return this.paths[fixedPath];
11554	}
11555
11556	for (var i = 0; i < this.pathRegexes.length; i++) {
11557		var pathRegExObj = this.pathRegexes[i];
11558		var pathRe = new RegExp(pathRegExObj.regEx, 'g');
11559                
11560		var matchResult = pathRe.test(fixedPath);
11561		if (matchResult === true) {
11562			var pathRe = new RegExp(pathRegExObj.regEx, 'g');
11563			var matchVars = [];
11564			var matchVar;
11565			do {
11566                            matchVar = pathRe.exec(path);
11567                            if (matchVar) {
11568                                    matchVars.push(matchVar[1]);
11569                            }
11570			} while (matchVar);
11571                        
11572                        let pathVars = {};
11573                        if (pathRegExObj.pathVariables) {
11574                            for (let j = 0; j < pathRegExObj.pathVariables.length; j++) {
11575                                let varKey = pathRegExObj.pathVariables[j];
11576                                let varValue = matchVars[j];
11577                                
11578                                pathVars[varKey] = varValue;
11579                            }
11580                        }
11581                        
11582			var matchCustomPathRegEx = Object.assign({ 'matchVars': matchVars, 'pathVars': pathVars }, pathRegExObj);
11583			return matchCustomPathRegEx;
11584		}
11585	}
11586	
11587	if (isEmpty(this.paths[fixedPath]) === true) {
11588		return false;
11589	}
11590	
11591	return this.paths[fixedPath];
11592};
11593
11594Mfe.Renderer.ThemeHtml.prototype.generatePageHtml = function(pageConfig, type) {
11595	//console.log('generatePageHtml');
11596	//console.log(type);
11597	//console.log(pageConfig);
11598	
11599	if (isEmpty(type) === true) {
11600		type = 'template';
11601	}
11602	
11603	if (type === 'template') {
11604
11605		if (isEmpty(pageConfig) === true) {
11606			return { 'result': false, 'error': { 'httpCode': 500, 'code': 'template_config_missing', 'message': 'Missing template configuration for page' } };
11607		}
11608
11609		if (isEmpty(pageConfig.body) === true || isEmpty(pageConfig.body.id) === true) {
11610			return { 'result': false, 'error': { 'httpCode': 500, 'code': 'template_body_missing', 'message': 'Missing body template' } };
11611		}
11612
11613		// Get page body
11614		logTime('Loading template body from bundle');
11615		var themeBody = this.mfe.themeHtmlBundle.getBodyById(pageConfig.body.id);
11616		if (isEmpty(themeBody) === true) {
11617			return false;
11618		}
11619
11620		var bodySettings = themeBody.getSettings();
11621
11622		logTime('Parsing body variables');
11623		var bodyVars = this.renderSettingVars(bodySettings, pageConfig.body.config);
11624                
11625		if (isEmpty(this.mfeIncludeEditContainers) === false && this.mfeIncludeEditContainers === true || this.mfe.viewMode == 'edit') {
11626
11627		}
11628
11629		bodyVars.mfeIncludeEditContainers = this.mfeIncludeEditContainers;
11630
11631		/*for (var i = 0; i < bodySettings.length; i++) {
11632			var bodySetting = bodySettings[i];
11633			var bodyConfig = pageConfig.body.config[bodySetting.name];
11634
11635			if (bodySetting.type == 'block') {
11636				bodyVars[bodySetting.name] = this.renderThemeBlock(bodyConfig.id, bodyConfig.config);
11637			} else if (bodySetting.type == 'layouts') {
11638				bodyVars[bodySetting.name] = this.renderThemeLayouts(bodyConfig);
11639			}
11640		}*/
11641
11642		logTime('Compiling theme body HTML');
11643		var htmlTemplate = Handlebars.compile(themeBody.getHtml());
11644		logTime('Rendering HTML from template');
11645		var html = htmlTemplate(bodyVars);
11646
11647	} else {
11648		
11649		let componentSettings = [
11650			{ "type": "layouts", "name": "layouts", "description": "Content layouts" }
11651		];
11652		let componentVars = this.renderSettingVars(componentSettings, pageConfig);
11653		
11654		let componentHtml = '{{{layouts}}}';
11655		var htmlTemplate = Handlebars.compile(componentHtml);
11656		var html = htmlTemplate(componentVars);
11657	}
11658        
11659	logTime('Replacing widget elements in HTML');
11660	var replacedHtml = this.mfe.replaceWidgetElements(html, false);
11661
11662	return replacedHtml;
11663};
11664
11665Mfe.Renderer.ThemeHtml.prototype.renderSettingVars = function(settings, config, configPresetId, componentConfig) {
11666
11667	var vars = {};
11668	for (var i = 0; i < settings.length; i++) {
11669		var setting = settings[i];
11670		var settingConfig;
11671		
11672		let hasVariableMapping = false;
11673		
11674		if (typeof componentConfig !== 'undefined' && 
11675				typeof config.variableMapping !== 'undefined' && 
11676				config.variableMapping !== null) {
11677			if (typeof config.variableMapping[setting.name] !== 'undefined') {
11678				if (typeof componentConfig[config.variableMapping[setting.name]] !== 'undefined') {
11679					settingConfig = componentConfig[config.variableMapping[setting.name]];
11680					hasVariableMapping = true;
11681				}
11682			}
11683		}
11684		
11685		if (hasVariableMapping === false) {
11686			if (typeof configPresetId !== 'undefined' && configPresetId !== null) {
11687				var configPreset = this.mfe.siteBundle.getPresetById(configPresetId);
11688				settingConfig = configPreset.getConfig();
11689			} else if (typeof config !== 'undefined' && typeof config[setting.name] !== 'undefined') {
11690				settingConfig = config[setting.name];
11691			} else {
11692				settingConfig = null;
11693			}
11694
11695			if (isEmpty(settingConfig) === true) {
11696				if (isEmpty(setting.default) === true) {
11697					continue;
11698				}
11699
11700				settingConfig = setting.default;
11701			}
11702		}
11703		
11704		var newSettingConfig = null;
11705		
11706		if (setting.type == 'block') {
11707			newSettingConfig = this.renderThemeBlock(settingConfig.id, settingConfig.config, settingConfig.configPresetId, componentConfig);
11708		} else if (setting.type == 'layouts') {
11709			newSettingConfig = this.renderThemeLayouts(settingConfig, settingConfig.config);
11710		} else if (setting.type == 'widgets') {
11711			newSettingConfig = this.renderThemeWidgets(settingConfig, componentConfig);
11712		} else if (setting.type == 'text') {
11713			if (typeof settingConfig == 'object') {
11714				newSettingConfig = this.mfe.resolveTextVariable(settingConfig);
11715			} else {
11716				newSettingConfig = settingConfig;
11717			}
11718		} else if (setting.type == 'dimension') {
11719			newSettingConfig = settingConfig;
11720		} else if (setting.type == 'html') {
11721			newSettingConfig = settingConfig;
11722		} else if (setting.type == 'imageUrl') {
11723			newSettingConfig = settingConfig;
11724		} else if (setting.type == 'background') {
11725			
11726			var backgroundCssItems = [];
11727			var backgroundRepeat = 'no-repeat';
11728			var backgroundSize = 'cover';
11729			
11730			if (isEmpty(settingConfig.backgroundRepeat) === false) {
11731				backgroundRepeat = settingConfig.backgroundRepeat;
11732			}
11733
11734			if (isEmpty(settingConfig.backgroundSize) === false) {
11735				backgroundSize = settingConfig.backgroundSize;
11736			}
11737			
11738			if (setting.asCssVars && setting.asCssVars === true) {
11739				
11740				var prefix = '';
11741				if (setting.prefix) {
11742					prefix = setting.prefix + '-';
11743				}
11744				
11745				if (isEmpty(settingConfig.color) === false) {
11746					backgroundCssItems.push('--' + prefix + 'background-color: ' + settingConfig.color);
11747				}
11748
11749				if (isEmpty(settingConfig.image) === false) {
11750					backgroundCssItems.push('--' + prefix + 'background-image: url(' + settingConfig.image + ')');
11751				}
11752
11753				if (isEmpty(settingConfig.attachment) === false) {
11754					backgroundCssItems.push('--' + prefix + 'background-attachment: ' + settingConfig.attachment);
11755				}
11756
11757				backgroundCssItems.push('--' + prefix + 'background-size: ' + backgroundSize);
11758				backgroundCssItems.push('--' + prefix + 'background-repeat: ' + backgroundRepeat);
11759
11760			} else {
11761
11762				if (isEmpty(settingConfig.color) === false) {
11763					backgroundCssItems.push('background-color: ' + settingConfig.color);
11764				}
11765
11766				if (isEmpty(settingConfig.image) === false) {
11767					backgroundCssItems.push('background-image: url(' + settingConfig.image + ')');
11768				}
11769
11770				backgroundCssItems.push('background-size: ' + backgroundSize);
11771				backgroundCssItems.push('background-repeat: ' + backgroundRepeat);
11772			}
11773
11774			if (backgroundCssItems.length > 0) {
11775				newSettingConfig = backgroundCssItems.join('; ');
11776			}
11777		} else if (setting.type == 'backgroundCssVars') {
11778			var backgroundCssItems = [];
11779			if (isEmpty(settingConfig.color) === false) {
11780				backgroundCssItems.push('--background-color: ' + settingConfig.color);
11781			}
11782			
11783			if (isEmpty(settingConfig.image) === false) {
11784				backgroundCssItems.push('--background-image: url(' + settingConfig.image + ')');
11785			}
11786			
11787			if (isEmpty(settingConfig.attachment) === false) {
11788				backgroundCssItems.push('--background-attachment: ' + settingConfig.attachment);
11789			}
11790
11791			
11792			
11793			if (backgroundCssItems.length > 0) {
11794				newSettingConfig = backgroundCssItems.join('; ');
11795			}
11796			
11797		}
11797 else if (setting.type == 'cssBackgroundColor') {
11798			newSettingConfig = 'background-color: ' + settingConfig;
11799		} else if (setting.type == 'cssVarBackgroundColor') {
11800			newSettingConfig = '--' + setting.varName + ': ' + settingConfig;
11801		} else if (setting.type == 'options') {
11802			newSettingConfig = settingConfig;
11803		} else if (setting.type == 'font') {
11804			
11805			if (setting.asCssVars) {
11806				var prefix = '';
11807				if (setting.prefix) {
11808					prefix = setting.prefix;
11809				}
11810				
11811				var fontCssVars = Mfe.Fonts.generateFontConfigCssVars(prefix, settingConfig, this.mfe);
11812				newSettingConfig = fontCssVars;
11813			} else {
11814				newSettingConfig = JSON.stringify(settingConfig);
11815			}
11816			
11817		} else if (setting.type == 'menu') {
11818			
11819			
11820			if (isEmpty(setting.asTemplateVars) === false && setting.asTemplateVars === true) {
11821				var menu = this.mfe.siteBundle.getMenuById(settingConfig);
11822				if (isEmpty(menu) === false) {
11823					newSettingConfig = menu.getTemplateVars();
11824				}
11825
11826			} else {
11827				newSettingConfig = JSON.stringify(settingConfig);
11828			}
11829			
11830			
11831		} else if (setting.type == 'boolean') {
11832			newSettingConfig = settingConfig;
11833		}
11834		
11835		
11836		if (isEmpty(setting.isWidgetAttribute) === false && setting.isWidgetAttribute === true) {
11837			vars[setting.name] = JSON.stringify(newSettingConfig);
11838		} else {
11839			vars[setting.name] = newSettingConfig;
11840		}
11841	}
11842	
11843	return vars;
11844};
11845
11846Mfe.Renderer.ThemeHtml.prototype.renderThemeBlock = function(id, config, configPresetId) {
11847	
11848	logTime('Rendering theme block');
11849        
11850	// Get page body
11851	var themeBlock = this.mfe.themeHtmlBundle.getBlockById(id);
11852	if (isEmpty(themeBlock) === true) {
11853		return '';
11854	}
11855	
11856	var blockConfig = {};
11857	if (typeof configPresetId !== 'undefined' && configPresetId !== null) {
11858		var configPreset = this.mfe.siteBundle.getPresetById(configPresetId);
11859		blockConfig = configPreset.getConfig();
11860	} else if (isEmpty(this.mfe.siteThemeConfig.global.blocks) === false && isEmpty(this.mfe.siteThemeConfig.global.blocks[id]) === false) {
11861		blockConfig = Object.assign({}, this.mfe.siteThemeConfig.global.blocks[id], config);
11862	} else {
11863		blockConfig = config;
11864	}
11865	
11866	// Gather variables for body settings
11867	var blockVars = {};
11868	var blockSettings = themeBlock.getSettings();
11869	
11870	var blockVars = this.renderSettingVars(blockSettings, blockConfig);
11871	
11872	
11873	blockVars.mfeIncludeEditContainers = this.mfeIncludeEditContainers;
11874	/*for (var i = 0; i < blockSettings.length; i++) {
11875		var blockSetting = blockSettings[i];
11876		var blockConfig = config[blockSetting.name];
11877		
11878		if (isEmpty(blockConfig) === true) {
11879			continue;
11880		}
11881		
11882		if (blockSetting.type == 'text') {
11883			blockVars[blockSetting.name] = blockConfig;
11884		} else if (blockSetting.type == 'imageUrl') {
11885			blockVars[blockSetting.name] = blockConfig;
11886		} else if (blockSetting.type == 'cssBackgroundColor') {
11887			blockVars[blockSetting.name] = 'background-color: ' + blockConfig;
11888		} else {
11889			blockVars[blockSetting.name] = blockConfig;
11890		}
11891	}*/
11892    
11893        blockVars.mfe = {
11894            'Session': mfe.Session
11895        };
11896        
11897	logTime('Compiling theme block HTML');
11898	var htmlTemplate = Handlebars.compile(themeBlock.getHtml());
11899	var html = htmlTemplate(blockVars);
11900	
11901	logTime('Finished generating theme block HTML');
11902	
11903	return html;
11904};
11905
11906Mfe.Renderer.ThemeHtml.prototype.renderThemeLayouts = function(layouts, componentConfig) {
11907	logTime('Rendering theme layouts');
11908
11909	var layoutsHtml = [];
11910	for (var i = 0; i < layouts.length; i++) {
11911		var layout = layouts[i];
11912		
11913		if (typeof layout.type !== 'undefined' && layout.type == 'static') {
11914			layoutsHtml.push(this.renderThemeLayout(layout.name, layout.config, 'static', componentConfig));
11915		} else if (typeof layout.type !== 'undefined' && layout.type == 'component') {
11916			//console.log('hello');
11917			//console.log(layout);
11918			//console.log(componentConfig);
11919			layoutsHtml.push(this.renderThemeLayout(layout.id, layout.config, 'component', componentConfig, layout.presetId));
11920		} else {
11921			layoutsHtml.push(this.renderThemeLayout(layout.id, layout.config, 'default', componentConfig));
11922		}
11923		
11924	}
11925	
11926	return layoutsHtml.join("\r\n");
11927}; 
11928
11929Mfe.Renderer.ThemeHtml.prototype.renderThemeLayout = function(id, config, type, componentConfiguration, configPresetId) {
11930	//console.log('Rendering theme layout');
11931	//console.log(config);
11932	//console.log(type);
11933	//console.log(componentConfiguration);
11934
11935	if (typeof type === 'undefined' || type === null) {
11936		type = 'default';
11937	}
11938	
11939	if (type == 'default') {
11940		// Get page body
11941		var themeLayout = this.mfe.themeHtmlBundle.getLayoutById(id);
11942		if (isEmpty(themeLayout) === true) {
11943			return false;
11944		}
11945		
11946		
11947		// Gather variables for body settings
11948		var layoutSettings = themeLayout.getSettings();
11949		
11950		
11951		var layoutVars = this.renderSettingVars(layoutSettings, config, config.presetId, componentConfiguration);
11952		layoutVars.mfeIncludeEditContainers = this.mfeIncludeEditContainers;
11953
11954		logTime('Compiling theme layout HTML');
11955		var htmlTemplate = Handlebars.compile(themeLayout.getHtml());
11956		var html = htmlTemplate(layoutVars);
11957		logTime('Finished generating theme layout HTML');
11958	} else if (type == 'component') {
11959		//let component = this.mfe.siteBundle.ge
11960		
11961		//console.log('rendering theme component');
11962		//console.log(config);
11963		
11964		let component = this.mfe.siteBundle.getComponentById(id);
11965		let componentConfig = component.getConfig();
11966		
11967		let useConfig = null;
11968		
11969		if (typeof configPresetId !== 'undefined' && configPresetId !== null) {
11970			//console.log(configPresetId);
11971			let configPreset = this.mfe.siteBundle.getPresetById(configPresetId);
11972			//console.log(configPreset);
11973			useConfig = configPreset.getConfig();
11974		}
11975		
11976		if (useConfig === null) {
11977			useConfig = config;
11978		}
11979		
11980		let componentHtml = '';
11981		for (let componentLayoutConfig of componentConfig.layouts) {
11982			componentHtml += this.renderThemeLayout(componentLayoutConfig.id, componentLayoutConfig.config, null, useConfig);
11983		}
11984		
11985		var html = componentHtml;
11986	} else {
11987		var layoutId = this.mfe.getNextLayoutId();
11988		var layout = new Mfe.Layouts[id](this.mfe, this, layoutId, config);
11989		var html = layout.render();
11990	}
11991	
11992	/*for (var i = 0; i < layoutSettings.length; i++) {
11993		var layoutSetting = layoutSettings[i];
11994		var layoutConfig = config[layoutSetting.name];
11995
11996		if (isEmpty(layoutConfig) === true) {
11997			continue;
11998		}
11999		
12000		if (layoutSetting.type == 'widgets') {
12001			layoutVars[layoutSetting.name] = this.renderThemeWidgets(layoutConfig);
12002		} else if (layoutSetting.type == 'text') {
12003			layoutVars[layoutSetting.name] = layoutConfig;
12004		}
12005	}*/
12006
12007	return html;
12008};
12009
12010Mfe.Renderer.ThemeHtml.prototype.renderThemeWidgets = function(widgets, componentConfig) {
12011	logTime('Rendering theme widgets');
12012	
12013	var widgetsHtml = [];
12014	for (var i = 0; i < widgets.length; i++) {
12015		var widget = widgets[i];
12016		
12017		widgetsHtml.push(this.renderThemeWidget(widget, componentConfig));
12018	}
12019	
12020	return widgetsHtml.join("\r\n");
12021};
12022
12023Mfe.Renderer.ThemeHtml.prototype.renderThemeWidget = function(config, componentConfig) {
12024	var configKeys = Object.keys(config);
12025	var widgetAttrs = [];
12026	for (var i = 0; i < configKeys.length; i++) {
12027		if (configKey === 'variableMapping') {
12028			continue;
12029		}
12030		
12031		var configKey = configKeys[i];
12032		var configVal = null;
12033		
12034		if (isEmpty(componentConfig) === false && typeof config.variableMapping !== 'undefined') {
12035			if (typeof config.variableMapping[configKey] !== 'undefined') {
12036
12037				configVal = componentConfig[config.variableMapping[configKey]];
12038			}
12039		}
12040		
12041		if (typeof configVal === 'undefined' || configVal === null) {
12042			configVal = config[configKey];
12043		}
12044		
12045		widgetAttrs.push(configKey + '="' + Mfe.Utils.Text.escapeHtml(JSON.stringify(configVal)) + '"');
12046	}
12047	
12048	return '<widget ' + widgetAttrs.join(' ') + '></widget>';
12049};
12050
12051Mfe.Renderer.ThemeHtml.prototype.exitEditMode = function() {
12052	this.mfe.editMode = false;
12053};
12054
12055Mfe.Renderer.ThemeHtml.prototype.attachEditHandlers = function() {
12056	var self = this;
12057	
12058	var $stageEl = $('body');
12059	
12060	$stageEl.find('#mfe-edit-overlay-hover').remove();
12061	$stageEl.find('#mfe-edit-ruler-vertical').remove();
12062	$stageEl.find('#mfe-edit-ruler-horizontal').remove();
12063	$stageEl.find('#mfe-edit-ruler-info').remove();
12064	$stageEl.find('#mfe-edit-overlay-hover-container').remove();
12065	$stageEl.find('#mfe-edit-overlay-hover-measure-container').remove();
12066	
12067	var editButtonHtml = [
12068		'<div id="mfe-edit-floating"><button>
12068<div><i class="fas fa-pencil"></i>Edit page</div></button></div>',
12069		'<div id="mfe-edit-bg"></div>'
12070	].join('');
12071	
12072	var $overlayHoverEl = $('<div id="mfe-edit-overlay-hover-container" class="mfe-edit-overlay"><div id="mfe-edit-overlay-hover"></div></div>');
12073	var $overlayHoverMeasureEl = $('<div id="mfe-edit-overlay-hover-measure-container" class="mfe-edit-measure-overlay"><div id="mfe-edit-measure-overlay-hover"></div></div>');
12074	
12075	var $rulerVerticalEl = $('<div id="mfe-edit-ruler-vertical" class="mfe-edit-ruler"></div>');
12076	var $rulerHorizontalEl = $('<div id="mfe-edit-ruler-horizontal" class="mfe-edit-ruler"></div>');
12077	var $rulerInfoEl = $('<div id="mfe-edit-ruler-info"><div class="type"><span>Layout</span></div><div class="dimensions"><span class="width">100px</span> x <span class="height">56px</span></div></div>');
12078	
12079	$stageEl.append($overlayHoverEl);
12080	$stageEl.append($overlayHoverMeasureEl);
12081	$stageEl.append($rulerVerticalEl);
12082	$stageEl.append($rulerHorizontalEl);
12083	$stageEl.append($rulerInfoEl);
12084	
12085	this.$mfeOverlayHoverEl = $overlayHoverEl;
12086
12087	$('#root-preview .widget').on('mouseenter', function(e) {
12088		if ($(this).parents('.content-area').length == 0) {
12089			return;
12090		}
12091		
12092		if (self.mfe.editMode === true || self.selectMode === false) {
12093			return;
12094		}
12095		
12096		self.positionHoverOverlay('widget', $(this));
12097	});
12098
12099	$('#mfe-edit-overlay-hover').on('mouseleave', function(e) {
12100		if (self.$selectedEl === self.$hoverSourceEl) {
12101			return;
12102		}
12103		
12104		//console.log('check if this overlay is the currently selected one');
12105		self.hideHoverOverlay();
12106		
12107	});
12108
12109	$('#mfe-edit-overlay-hover').on('mousedown', function(e) {
12110		self.mouseDownOnOverlay = true;
12111	});
12112
12113	$('#mfe-edit-overlay-hover').on('mouseup', function(e) {
12114		if (e.button === 2) {
12115			return;
12116		}
12117		
12118		if (typeof self.mouseDownOnOverlay == 'undefined' || self.mouseDownOnOverlay === false) {
12119			return;
12120		}
12121		
12122		if (typeof mfeBodyMoving == 'undefined') {
12123			return;
12124		}
12125		
12126		if (mfeBodyMoving !== false) {
12127			return;
12128		}
12129		
12130		self.mouseDownOnOverlay = false;
12131		if (self.$hoverSourceEl.hasClass('widget') === true) {
12132			var $widgetEl = self.$hoverSourceEl;
12133			var $layoutEl = $widgetEl.parents('.layout-container');
12134			var $settingEl = $layoutEl.parents('.mfe-edit-container[data-setting-name]');
12135			var settingName = $settingEl.attr('data-setting-name');
12136			var layoutIndex = $layoutEl.prevAll('.layout-container').length;
12137
12138			var $layoutSettingEl = $widgetEl.parents('.mfe-edit-container[data-setting-type="widgets"]');
12139			var layoutSettingName = $layoutSettingEl.attr('data-setting-name');
12140
12141			var widgetIndex = $widgetEl.prevAll('.widget').length;
12142
12143			var elementPath = {
12144				'type': 'widget',
12145				'settingName': settingName,
12146				'layoutIndex': layoutIndex,
12147				'layoutSettingName': layoutSettingName,
12148				'widgetIndex': widgetIndex
12149			};
12150		} else {
12151			var $blockEl = self.$hoverSourceEl;
12152
12153			if ($blockEl.hasClass('mfe-edit-container') === false) {
12154				return;
12155			}
12156
12157			var $settingEl = $blockEl;
12158
12159			if ($settingEl.attr('data-setting-type') != 'block') {
12160				return;
12161			}
12162			
12163			var settingName = $settingEl.attr('data-setting-name');
12164			var elementPath = {
12165				'type': 'block',
12166				'settingName': settingName
12167			};
12168		}
12169		
12170		self.$selectedEl = self.$hoverSourceEl;
12171
12172		if (!parent.Create || !parent.Create.CP.runtime.pageInstance) {
12173			window.parent.Create.CP.Pages['site-website-profile-template'].onWidgetClick(elementPath);
12174		} else {
12175			window.parent.Create.CP.runtime.pageInstance.onElementSelect(elementPath);
12176		}
12177	});
12178
12179	$('#root-preview').on('click', '.mfe-edit-layout-info > .handle', function(e) {
12180		if (!parent.Create || !parent.Create.CP.runtime.pageInstance) {
12181			//console.log('no page instance');
12182			return;
12183		}
12184
12185		if (self.$hoverSourceEl.hasClass('layout-container') !== true) {
12186			//console.log('no layout container');
12187			return;
12188		}
12189
12190		// Figure out this path
12191		var $layoutEl = self.$hoverSourceEl;
12192		var $settingEl = $layoutEl.parents('.mfe-edit-container[data-setting-name]');
12193		if ($settingEl.length == 0) {
12194			//console.log('no data setting name on edit container');
12195			return;
12196		}
12197
12198		var settingName = $settingEl.attr('data-setting-name');
12199		var layoutIndex = $layoutEl.prevAll('.layout-container').length;
12200
12201		var elementPath = {
12202			'type': 'layout',
12203			'settingName': settingName,
12204			'layoutIndex': layoutIndex
12205		};
12206		
12207		window.parent.Create.CP.runtime.pageInstance.onElementSelect(elementPath);
12208	});
12209	
12210	$('#root-preview').on('mouseenter', '.mfe-edit-layout-info > .handle', function(e) {
12211		if (self.mfe.editMode === true || self.selectMode === false) {
12212			return;
12213		}
12214				
12215		var $handleEl = $(this);
12216		var $layoutEl = $handleEl.parents('.layout-container');
12217		if ($layoutEl.length == 0) {
12218			return;
12219		}
12220		
12221		if (self.$selectedEl !== null) {
12222			// position distance overlay
12223			//self.positionHoverOverlay('layout', $layoutEl);
12224		} else {
12225			self.positionHoverOverlay('layout', $layoutEl);
12226		}
12227	});
12228	
12229	$('#root-preview').on('mouseleave', '.mfe-edit-layout-info > .handle', function(e) {
12230		//console.log('layout handle mouse leaving');
12231		self.hideHoverOverlay();
12232	});
12233
12234	$('#root-preview').on('mouseenter', '.mfe-edit-container[data-setting-type="block"]', function(e) {
12235		if (self.$selectedEl !== null) {
12236			// position distance overlay
12237			//self.positionHoverOverlay('block', $(this));
12238		} else {
12239			self.positionHoverOverlay('block', $(this));
12240		}
12241	});
12242
12243	$('#root-preview').on('click', '.mfe-edit-container[data-setting-type="layouts"].empty',  function(e) {
12244		var $editContainerEl = $(this);
12245		window.parent.Create.CP.runtime.pageInstance.onAddLayoutRequest($editContainerEl.attr('data-setting-name'));
12246	});
12247
12248	$('#root-preview').on('click', '.mfe-edit-layout-add-widget',  function(e) {
12249		
12250	});
12251
12252	$('#root-preview').on('click', '.mfe-edit-container[data-setting-type="widgets"].empty', function(e) {
12253		var $editContainerEl = $(this);
12254		
12255		var settingName = $editContainerEl.parents('.mfe-edit-container').attr('data-setting-name');
12256		
12257		var $layoutContainerEl = $editContainerEl.parents('.layout-container');
12258		var layoutIndex = $layoutContainerEl.prevAll('.layout-container').length;
12259		
12260		var layoutSettingName = $editContainerEl.attr('data-setting-name');
12261		
12262		var elementPath = {
12263			'type': 'widget',
12264			'settingName': settingName,
12265			'layoutIndex': layoutIndex,
12266			'layoutSettingName': layoutSettingName
12267		};
12268
12269		window.parent.Create.CP.runtime.pageInstance.onAddWidgetRequest(elementPath);
12270	});
12271	
12272	$(window).on('scroll', function(e) {
12273		self.updateOverlays();
12274	});
12275};
12276
12277Mfe.Renderer.ThemeHtml.prototype.selectElement = function($selectEl) {
12278
12279};
12280
12281Mfe.Renderer.ThemeHtml.prototype.enterLayoutEditableEditMode = function($editableEl) {
12282	//console.log('we are gonna be able to edit this layout editable element');
12283	this.mfe.editMode = true;
12284	
12285	$editableEl.attr('contenteditable', true);
12286	
12287	$('#mfe-edit-overlay-editable').addClass('no-pointer-events');
12288	$editableEl.addClass('mfe-editable-editing');
12289	
12290	this.mfe.editModeEditableEl = $editableEl;
12291	
12292	//console.log('onblurrrrrr attached');
12293	$editableEl.on('blur', this.onLayoutEditableBlur.bind(this));
12294};
12295
12296Mfe.Renderer.ThemeHtml.prototype.onLayoutEditableBlur = function(arg1, arg2) {
12297	var $editableEl = $('.mfe-editable-editing');
12298	if ($editableEl.length == 0) {
12299		return;
12300	}
12301	
12302	//console.log('mfe editable blur');
12303
12304	this.exitLayoutEditableEditMode();
12305};
12306
12307Mfe.Renderer.ThemeHtml.prototype.exitLayoutEditableEditMode = function($editableEl) {
12308	this.mfe.editModeEditableEl.off('blur');
12309	
12310	this.mfe.editModeEditableEl.attr('contenteditable', false);
12311	this.mfe.editModeEditableEl.removeClass('mfe-editable-editing');
12312	$('#mfe-edit-overlay-editable').removeClass('no-pointer-events');
12313	
12314	this.hideEditOverlay('editable', null);
12315	this.mfe.editMode = false;
12316	
12317	window.getSelection().removeAllRanges();
12318};
12319
12320Mfe.Renderer.ThemeHtml.prototype.updateOverlays = function() {
12321	
12322	
12323	this.positionHoverOverlay(this.hoverSourceType, this.$hoverSourceEl, true);
12324	
12325	/*var activeOverlays = Object.keys(this.editOverlays);
12326	
12327	for (var i = 0; i < activeOverlays.length; i++) {
12328		var activeOverlayType = activeOverlays[i];
12329		this.positionEditOverlay(activeOverlayType, this.editOverlays[activeOverlayType]);
12330	}*/
12331};
12332
12333Mfe.Renderer.ThemeHtml.prototype.positionEditOverlay = function(type, $element) {
12334	
12335	var friendlyType;
12336	
12337	if (type == 'widget') {
12338		
12339		var realChildNodes = [];
12340		for (var i = 0; i < $element[0].childNodes.length; i++) {
12341			var childNode = $element[0].childNodes[i];
12342			if (childNode.nodeType == 1) {
12343				realChildNodes.push(childNode);
12344			}
12345		}
12346		
12347		if (realChildNodes.length == 1 && $(realChildNodes[0]).hasClass('mfe-editable') === true) {
12348			return;
12349		}
12350		
12351		friendlyType = type;
12352	} else if (type == 'template') {
12353		friendlyType = $element.attr('data-setting-sub-type');
12354	} else {
12355		friendlyType = type;
12356	}
12357	
12358	var $overlayEl = $('#mfe-edit-overlay-' + type);
12359	
12360	$overlayEl.addClass('show');
12361	
12362	var scrollTop = document.scrollingElement.scrollTop;
12363	var scrollLeft = document.scrollingElement.scrollLeft;
12364	var elRect = $element[0].getBoundingClientRect();
12365	
12366	$overlayEl.css('left', (elRect.left + scrollLeft) + 'px');
12367	$overlayEl.css('top', (elRect.top + scrollTop) + 'px');
12368	$overlayEl.css('width', elRect.width + 'px');
12369	$overlayEl.css('height', elRect.height + 'px');	
12370	
12371	var $rulerVerticalEl = $('#mfe-edit-ruler-vertical');
12372	var $rulerHorizontalEl = $('#mfe-edit-ruler-horizontal');
12373	var $rulerInfoEl = $('#mfe-edit-ruler-info');
12374	
12375	$rulerVerticalEl.css('left', elRect.left);
12376	$rulerVerticalEl.css('width', elRect.width);
12377	
12378	$rulerHorizontalEl.css('top', elRect.top);
12379	$rulerHorizontalEl.css('height', elRect.height);
12380	
12381	$rulerInfoEl.css('left', elRect.left);
12382	$rulerInfoEl.css('width', elRect.width);
12383	$rulerInfoEl.css('top', elRect.top);
12384	
12385	var transformScaleVal = currentZoomPerc / 100;
12386	
12387	$rulerInfoEl.find('.type span').text(friendlyType);
12388	$rulerInfoEl.find('.dimensions .width').text(Mfe.Utils.Math.round((elRect.width / transformScaleVal), 1));
12389	$rulerInfoEl.find('.dimensions .height').text(Mfe.Utils.Math.round((elRect.height / transformScaleVal), 1));
12390	
12391	this.editOverlays[type] = $element;
12392};
12393
12394Mfe.Renderer.ThemeHtml.prototype.positionHoverOverlay = function(type, $element, onlyReposition) {
12395	if ($element === null) {
12396		return;
12397	}
12398	
12399	if (type == 'block' && $element.hasClass('empty') === true) {
12400		return;
12401	}
12402	
12403	if (typeof onlyReposition == 'undefined') {
12404		onlyReposition = false;
12405	}
12406	
12407	this.hoverSourceType = type;
12408	this.$hoverSourceEl = $element;
12409	
12410	if (onlyReposition === false) {
12411		this.$mfeOverlayHoverEl.addClass('show');
12412
12413		if (type == 'layout') {
12414			this.$mfeOverlayHoverEl.addClass('no-pointer-events');
12415		} else {
12416			this.$mfeOverlayHoverEl.removeClass('no-pointer-events');
12417		}
12418	}
12419	
12420	var $rootContainerEl = $('#root-container');
12421	
12422	var scrollTop = document.scrollingElement.scrollTop;
12423	var scrollLeft = document.scrollingElement.scrollLeft;
12424	
12425	var elRect = $element[0].getBoundingClientRect();
12426	if (type == 'block') {
12427		if ($element.attr('data-setting-sub-type') == 'header') {
12428			var $headerEl = $element.find(' > header');
12429			
12430			if ($headerEl.length > 0) {
12431				var headerElRect = $element.find(' > header')[0].getBoundingClientRect();
12432				elRect.height = headerElRect.height;
12433			}
12434		}
12435	}
12436	
12437	this.$mfeOverlayHoverEl.css('left', (elRect.left + scrollLeft) + 'px');
12438	this.$mfeOverlayHoverEl.css('top', (elRect.top + scrollTop) + 'px');
12439	this.$mfeOverlayHoverEl.css('width', elRect.width + 'px');
12440	this.$mfeOverlayHoverEl.css('height', elRect.height + 'px');	
12441
12442	var $rulerVerticalEl = $('#mfe-edit-ruler-vertical');
12443	var $rulerHorizontalEl = $('#mfe-edit-ruler-horizontal');
12444	var $rulerInfoEl = $('#mfe-edit-ruler-info');
12445	
12446	if (onlyReposition === false) {
12447		$rulerVerticalEl.addClass('show');
12448		$rulerHorizontalEl.addClass('show');
12449		$rulerInfoEl.addClass('show');
12450	}
12451	
12452	$rulerVerticalEl.css('left', (elRect.left + scrollLeft));
12453	$rulerVerticalEl.css('width', elRect.width);
12454	
12455	$rulerHorizontalEl.css('top', (elRect.top + scrollTop));
12456	$rulerHorizontalEl.css('height', elRect.height);
12457	$rulerHorizontalEl.css('width', $rootContainerEl.outerWidth().toString() + 'px');
12458	
12459	$rulerInfoEl.css('left', elRect.left + scrollLeft);
12460	$rulerInfoEl.css('width', elRect.width);
12461	$rulerInfoEl.css('top', (elRect.top + scrollTop));
12462	
12463	var transformScaleVal = currentZoomPerc / 100;
12464	
12465	$rulerInfoEl.find('.type span').text(type);
12466	$rulerInfoEl.find('.dimensions .width').text(Mfe.Utils.Math.round((elRect.width / transformScaleVal), 1));
12467	$rulerInfoEl.find('.dimensions .height').text(Mfe.Utils.Math.round((elRect.height / transformScaleVal), 1));
12468};
12469
12470Mfe.Renderer.ThemeHtml.prototype.hideHoverOverlay = function() {
12471	this.$mfeOverlayHoverEl.removeClass('show');
12472
12473	var $rulerVerticalEl = $('#mfe-edit-ruler-vertical');
12474	var $rulerHorizontalEl = $('#mfe-edit-ruler-horizontal');
12475	var $rulerInfoEl = $('#mfe-edit-ruler-info');
12476	
12477	$rulerVerticalEl.removeClass('show');
12478	$rulerHorizontalEl.removeClass('show');
12479	$rulerInfoEl.removeClass('show');
12480	
12481};
12482
12483Mfe.Renderer.ThemeHtml.prototype.hideEditOverlay = function(type, $element) {
12484	if (typeof this.editOverlays[type] !== 'undefined' && $element !== null) {
12485		
12486		if (this.editOverlays[type][0] != $element[0]) {
12487			return;
12488		}
12489	}
12490	
12491	var $overlayEl = $('#mfe-edit-overlay-' + type);
12492	$overlayEl.removeClass('show');
12493	delete this.editOverlays[type];
12494};
12495
12496Mfe.Plugins['newsletter-popup'] = function(mfe, options) {
12497	this.mfe = mfe;
12498	this.name = 'newsletter-popup';
12499	Mfe.Plugin.apply(this, arguments);
12500	
12501	this.contextMenuShown = 0;
12502	
12503	this.initialize();
12504};
12505Mfe.Plugins['newsletter-popup'].inherits(Mfe.Plugin);
12506Mfe.Plugins['newsletter-popup'].title = 'Newsletter popup';
12507Mfe.Plugins['newsletter-popup'].prototype.initialize = function () {
12508	var self = this;
12509	
12510	$(document).on('mouseout', function(e){
12511		var event = e.originalEvent;
12512		if (event.toElement == null && event.relatedTarget == null) {
12513			if (Date.now() - self.contextMenuShown > 5000) {
12514				self.displayPopup();
12515			}
12516		}
12517	});
12518	
12519	$(document).on('contextmenu', function(e){
12520		self.contextMenuShown = Date.now();
12521	});
12522};
12523
12524Mfe.Plugins['newsletter-popup'].prototype.onPageView = function () {
12525	
12526};
12527
12528Mfe.Plugins['newsletter-popup'].prototype.displayPopup = function () {
12529	var template = this.mfe.getTemplate('plugins', 'newsletter-popup', 'popup');
12530	var templateVars = {};
12531	var templateHtml = template(templateVars);
12532	
12533	//console.log(templateHtml);
12534};
12535Mfe.Widgets['cms-cover'] = function(mfe, widgetId, options) {
12536	this.mfe = mfe;
12537	this.name = 'cms-cover';
12538	this.baseTemplate = 'base-default';
12539	Mfe.Widget.apply(this, arguments);
12540};
12541Mfe.Widgets['cms-cover'].inherits(Mfe.Widget);
12542Mfe.Widgets['cms-cover'].title = 'CMS cover';
12543Mfe.Widgets['cms-cover'].getSettings = function() {
12544	var settings = {
12545		'sections': [
12546			{ 
12547				'name': 'general', 
12548				'title': 'General', 
12549				'settings': [
12550					{ "type": "options", "name": "style", "default": "default", "description": "Style", "options": [ { "value": "default", "label": "Default" },  { "value": "height-auto", "label": "Auto height" } ] },
12551					{ "type": "boolean", "name": "link-enabled", "default": false, "description": "Add link to content" },
12552					{ "type": "boolean", "name": "show-cover-image", "default": true, "description": "Show cover image" },
12553					{ "type": "boolean", "name": "show-title", "default": true, "description": "Show title" },
12554					{ "type": "boolean", "name": "show-category", "default": true, "description": "Show category" },
12555					{ "type": "boolean", "name": "show-date", "default": true, "description": "Show date" },
12556					{ "type": "background", "name": "overlay-background", "default": false, "description": "Overlay background" },
12557					{ "type": "options", "name": "base-template", "default": "default", "description": "Template", "options": [ { "value": "default", "label": "Default" },  { "value": "rustic", "label": "Rustic" } ] },
12558					{ "type": "text", "name": "title", "default": "", "description": "Title" },
12559					{ "type": "options", "name": "title-text-align", "default": "auto", "description": "Title text align", "options": [ 
12560						{ "value": "auto", "label": "Auto" },
12561						{ "value": "left", "label": "Left" },
12562						{ "value": "center", "label": "Center" },
12563						{ "value": "right", "label": "Right" } 
12564					] 
12565					}
12566				]
12567			},
12568			{ 	
12569			'name': 'data', 
12570				'title': 'Data', 
12571				'settings': [
12572					{ "type": "options", "name": "data-source", "default": "context", "description": "Data source", "options": [ { "value": "context", "label": "Context" },  { "value": "snippet", "label": "Snippet" }, { "value": "blogs", "label": "Blogs" },  { "value": "streams", "label": "Streams" },  { "value": "calendars", "label": "Calendars" } ] },
12573					{ "type": "blogGroups", "name": "data-blog-ids", "default": [], "dependency": { "key": "data-source", "value": "blogs" }, "description": "Data source blogs" },
12574					{ "type": "streams", "name": "data-stream-ids", "default": [], "dependency": { "key": "data-source", "value": "streams" }, "description": "Data source streams" },
12575					{ "type": "calendars", "name": "data-calendar-ids", "default": [], "dependency": { "key": "data-source", "value": "calendars" }, "description": "Data source calendars" },
12576					{ "type": "text", "name": "data-snippet-id", "default": [], "dependency": { "key": "data-source", "value": "snippet" }, "description": "Data source snippet" }
12577				]
12578			}
12579		]
12580	};
12581	
12582	return settings;
12583};
12584Mfe.Widgets['cms-cover'].prototype.onRender = function() {
12585	this.baseTemplate = 'base-' + this.getOption('base-template', 'default');
12586	
12587	var fetchResult = this.fetch();
12588	if (isEmpty(fetchResult) === false) {
12589		return this.renderCover(fetchResult);
12590	}
12591	
12592	// Return empty template with loading state
12593	
12594	var baseTemplate = this.mfe.getTemplate('widgets', 'cms-cover', this.baseTemplate);
12595	var templateVars = {
12596		'showCoverImage': this.getOptionBoolean('show-cover-image', true)
12597	};
12598	
12599	var baseTemplateHtml = baseTemplate(templateVars);
12600	return baseTemplateHtml;
12601};
12602
12603Mfe.Widgets['cms-cover'].prototype.onAttach = function() {
12604	this.baseTemplate = 'base-' + this.getOption('base-template', 'default');
12605};
12606
12607Mfe.Widgets['cms-cover'].prototype.fetch = function() {
12608	var self = this;
12609	
12610	return Mfe.Widget.Content.fetchContent(this.mfe, this.options, null, 'single', function(response) {
12611		var cmsPost = response;
12612		self.display(self.renderCover(cmsPost));
12613	}); 
12614};
12615
12616Mfe.Widgets['cms-cover'].prototype.display = function(html) {
12617	this.setElementHtml(html);
12618};
12619
12620Mfe.Widgets['cms-cover'].prototype.renderCover = function(cmsItemSource) {
12621
12622	var cmsItem;
12623	if (cmsItemSource.class == 'queryresult') {
12624		var cmsItems = cmsItemSource.getResults();
12625		cmsItem = cmsItems[0];
12626	} else {
12627		cmsItem = cmsItemSource;
12628	}
12629
12630	/*var revisionLanguages = cmsPost.getRevisionLanguages();
12631	var revisionLanguage = revisionLanguages[0];
12632	var revision = cmsPost.getRevisionByLanguage(revisionLanguages[0]);*/
12633	
12634	var itemType = Mfe.getContentType(cmsItem);
12635	
12636	if (itemType == 'blogpost') {
12637		
12638	} else if (itemType == 'media') {
12639		
12640	} else if (itemType == 'event') {
12641		
12642	}
12643	
12644	var showLink = this.getOption('link-enabled', 'false');
12645	if (showLink === false || showLink == 'false') {
12646		showLink = false;
12647	} else {
12648		showLink = true;
12649	}
12650	
12651	var title = this.getOption('title', '');
12652	
12653	var titleTextAlign = this.getOption('title-text-align', 'left');
12654	if (titleTextAlign != 'auto' && titleTextAlign != 'left' && titleTextAlign != 'center' && titleTextAlign != 'right') {
12655		titleTextAlign = 'left';
12656	}
12657	
12658	var templateVars = cmsItem.getTemplateVars(this.mfe);
12659	templateVars.itemType = itemType;
12660	templateVars.linkEnabled = showLink;
12661	templateVars.title = title;
12662	templateVars.showCoverImage = this.getOptionBoolean('show-cover-image', true);
12663	templateVars.showTitle = this.getSettingConfig('show-title');
12664	templateVars.showDate = this.getSettingConfig('show-date');
12665	templateVars.showCategory = this.getSettingConfig('show-category');
12666	templateVars.titleTextAlign = titleTextAlign;
12667	
12668	var baseTemplate = this.mfe.getTemplate('widgets', 'cms-cover', this.baseTemplate + '-' + itemType);
12669	var baseTemplateHtml = baseTemplate(templateVars);
12670	
12671	return baseTemplateHtml;
12672};
12673
12674Mfe.Widgets['cms-fragments'] = function(mfe, widgetId, options) {
12675	this.mfe = mfe;
12676	this.name = 'cms-fragments';
12677	this.baseTemplate = 'base-default';
12678	this.itemFragmentTemplate = 'item-fragment';
12679	Mfe.Widget.apply(this, arguments);
12680	
12681	this.language = null;
12682	this.post = null;
12683};
12684Mfe.Widgets['cms-fragments'].inherits(Mfe.Widget);
12685Mfe.Widgets['cms-fragments'].title = 'CMS fragments';
12686Mfe.Widgets['cms-fragments'].getSettings = function() {
12687	return [
12688		{ "type": "options", "name": "data-source", "default": "blogs", "description": "Data source", "options": [ 
12689				{ "value": "context", "label": "From context" }, 
12690				{ "value": "snippet", "label": "Snippet" } 
12691		] },
12692		{ "type": "text", "name": "data-snippet-id", "default": [], "description": "Data source snippet" },
12693		{ "type": "text", "name": "dataset-lookup-key", "default": [], "description": "Dataset record key" },
12694		{ "type": "text", "name": "width", "default": "100%", "description": "Widget max width" },
12695		{ "type": "boolean", "name": "text-image-text-wrap", "default": true, "description": "Text+Image: Enable text wrap around" },
12696		{ "type": "boolean", "name": "add-article-tag", "default": false, "description": "Add article HTML tag" },
12697		{ "type": "boolean", "name": "show-language-picker", "default": false, "description": "Show language picker" },
12698		{ "type": "text", "name": "fragments-json", "default": false, "description": "Fragments JSON" }
12699	];
12700};
12701Mfe.Widgets['cms-fragments'].prototype.onRender = function() {
12702	let fragmentsJson = this.getOption('fragments-json', '');
12703	
12704	if (typeof mfe.queryParams !== 'undefined' && typeof mfe.queryParams['lang'] !== 'undefined') {
12705	    this.language = mfe.queryParams['lang'];
12706	} else if (typeof mfe.currentPage !== 'undefined' && typeof mfe.currentPage.language !== 'undefined' && mfe.currentPage.language.length > 0) {
12707	    this.language = mfe.currentPage.language;
12708	}
12709	
12710	if (fragmentsJson.length > 0) {	
12711
12712		let fragmentObjs = JSON.parse(fragmentsJson);
12713		let fragments = [];
12714		
12715		for (let fragmentObj of fragmentObjs) {
12716			fragments.push(new Mfe.Classes.ContentFragment(fragmentObj));
12717		}
12718		
12719		return this.renderOnlyFragments(fragments);
12720	}
12721
12722	var fetchResult = this.fetch();
12723	
12724	if (isEmpty(fetchResult) === false) {
12725		return this.renderWidget(fetchResult);
12726	}
12727	
12728	var settingTextImageWrap = this.getOption('text-image-text-wrap', true);
12729	if (settingTextImageWrap == 'false') {
12730		settingTextImageWrap = false;
12731	} else if (settingTextImageWrap == 'true') {
12732		settingTextImageWrap = true;
12733	}
12734	
12735	let showLanguagePicker = this.getOption('show-language-picker', false);
12736	if (showLanguagePicker == 'false') {
12737		settingTextImageWrap = false;
12738	} else if (showLanguagePicker == 'true') {
12739		showLanguagePicker = true;
12740	}
12741	
12742	// Return empty template with loading state
12743	var baseTemplate = this.mfe.getTemplate('widgets', 'cms-fragments', this.baseTemplate);
12744	var templateVars = {
12745	    'isLoading': true,
12746	    'allowTextWrap': settingTextImageWrap,
12747	    'fragmentsHtml': '',
12748	    'currentLanguage': this.language,
12749	    'showLanguagePicker': showLanguagePicker
12750	};
12751	
12752	var baseTemplateHtml = baseTemplate(templateVars);
12753	return baseTemplateHtml;
12754};
12755
12756Mfe.Widgets['cms-fragments'].prototype.saveWidgetState = function() {
12757    
12758    let state = {
12759	'language': this.language,
12760    };
12761    if (typeof this.post !== 'undefined' && this.post !== null) {
12762	state.postObj = this.post.postObj;
12763	state.postClass = this.post.class;
12764    }
12765    
12766    return state;
12767    /*
12768    return {
12769	'language': this.language,
12770	'postObj': this.post.postObj
12771    };*/
12772};
12773
12774Mfe.Widgets['cms-fragments'].prototype.restoreWidgetState = function(state) {
12775    this.language = state.language;
12776    
12777    if (typeof state.postObj !== 'undefined') {
12778	if (state.postClass === 'content\\posts\\blog') {
12779	    this.post = new Mfe.Classes.ContentPostBlog(state.postObj);
12780	} else {
12781	    this.post = new Mfe.Classes.ContentPostPage(state.postObj);
12782	}
12783    }    
12784};
12785
12786Mfe.Widgets['cms-fragments'].prototype.onAttach = function(obj) {
12787	var self = this;
12788	
12789	var $embedLoadingEls = this.$el.find('.fragment.cms-embed.loading');
12790	for (var i = 0; i < $embedLoadingEls.length; i++) {
12791		var $embedLoadingEl = $($embedLoadingEls[i]);
12792		
12793		var oembedUrl = $embedLoadingEl.attr('data-oembed-url');
12794		var oembedVendor = $embedLoadingEl.attr('data-oembed-vendor');
12795		
12796		let dataType = 'json';
12797		if (typeof oembedVendor !== 'undefined' && oembedVendor === 'twitter') {
12798		    dataType = 'jsonp';
12799		}
12800		
12801		$.ajax({
12802			dataType: dataType, 
12803			url: oembedUrl, 
12804			crossDomain: true,
12805			extras: { 'url': JSON.parse(JSON.stringify(oembedUrl)) }
12806		}).always(function(data) {
12807			
12808			if (data.html) {
12809				var $embedEl = self.$el.find('.fragment.cms-embed.loading[data-oembed-url="'+this.extras.url+'"]');
12810				let $embedHtmlEl = $embedEl.find('.fragment-content > div > div');
12811				if ($embedHtmlEl.length === 0) {
12812					$embedHtmlEl = $embedEl.find('.fragment-content > div');
12813				}
12814				if ($embedHtmlEl.length === 0) {
12815					$embedHtmlEl = $embedEl.find('.fragment-content');
12816				}
12817				
12818				$embedHtmlEl.html(data.html);
12819				$embedEl.removeClass('loading');
12820			}
12821		});
12822	}
12823	
12824	if (isEmpty(this.mfe.siteConfig.featureSelectionShare) === false && this.mfe.siteConfig.featureSelectionShare === true) {
12825		this.$el.find('.fragment.cms-quote .fragment-content').on('mouseenter', function(e){
12826			
12827			var $fragmentContentEl = $(this);
12828			
12829			var positionQuote = $fragmentContentEl.offset();
12830			var quoteContent = $fragmentContentEl.text();
12831
12832			$('.share-selected-text-main-container:last').addClass('active').css({
12833				'left': ((0 - positionQuote.left) / 2) - 22,
12834				'top': (positionQuote.top - 42)
12835			});
12836
12837			var $twitterShareEl = $('.share-selected-text-main-container:last .share-selected-text-btn-twitter'),
12838			   $linkedinShareEl = $('.share-selected-text-main-container:last .share-selected-text-btn-linkedin'),
12839			   $facebookShareEl = $('.share-selected-text-main-container:last .share-selected-text-btn-facebook');
12840
12841			$twitterShareEl.attr('href', "https://twitter.com/intent/tweet?url="+encodeURIComponent(window.location)+"&text="+encodeURIComponent(quoteContent));
12842			$linkedinShareEl.attr('href', "https://www.linkedin.com/shareArticle?url="+encodeURIComponent(window.location)+"&title="+encodeURIComponent(quoteContent));
12843			$facebookShareEl.attr('href', "https://facebook.com/dialog/share?display=popup&href="+encodeURIComponent(window.location)+"&quote="+encodeURIComponent(quoteContent));
12844		});
12845	}
12846	
12847	this.$el.find('.language-picker .button').on('click', function(e){
12848	    let $buttonEl = $(this);
12849	    let language = $buttonEl.attr('data-language');
12850	    
12851	    self.switchLanguage(language);
12852	});
12853};
12854
12855Mfe.Widgets['cms-fragments'].prototype.fetch = function() {
12856	var self = this;
12857	
12858	var fetchResult = Mfe.Widget.Content.fetchContent(this.mfe, this.options, null, 'single', function(response) {
12859		self.displayFragments(self.renderFragments(response));
12860	}); 
12861	
12862	return fetchResult;
12863};
12864
12865Mfe.Widgets['cms-fragments'].prototype.display = function(html) {
12866	this.setElementHtml(html);
12867};
12868
12869Mfe.Widgets['cms-fragments'].prototype.displayFragments = function(itemsHtml) {
12870	this.$el.find('.content').html(itemsHtml);
12871};
12872
12873Mfe.Widgets['cms-fragments'].prototype.renderFragments = function(cmsItem) {
12874	var fragments;
12875	if (isEmpty(cmsItem) === false) {
12876		var itemType = Mfe.getContentType(cmsItem);
12877		if (itemType == 'blogpost' || itemType == 'page') {
12878			if (isEmpty(cmsItem) === true) {
12879				return false;
12880			}
12881
12882			if (isEmpty(cmsItem.getRevisionLanguages) === true) {
12883				return false;
12884			}
12885			
12886			let revision;
12887			
12888			if (typeof this.language !== 'undefined' && this.language !== null) {
12889			    revision = cmsItem.getRevisionByLanguage(this.language);
12890			    
12891			} else {
12892			    let revisionLanguages = cmsItem.getRevisionLanguages();
12893			    let revisionLanguage = revisionLanguages[0];
12894			    revision = cmsItem.getRevisionByLanguage(revisionLanguages[0]);
12895			}
12896
12897			fragments = revision.getFragments();
12898		} else if (itemType == 'event') {
12899			var revision = cmsItem.getRevision();
12900			fragments = revision.getFragments();
12901		} else if (itemType == 'datasetlookupresult') {
12902			fragments = [];
12903		} else {
12904			fragments = [];
12905		}
12906	} else {
12907		fragments = [];
12908	}
12909
12910	var fragmentsHtmlArr = [];
12911	var itemTemplate = this.mfe.getTemplate('widgets', 'cms-fragments', this.itemFragmentTemplate);
12912	for (var i = 0; i < fragments.length; i++) {
12913		var fragment = fragments[i];
12914		fragmentsHtmlArr.push(itemTemplate(fragment.getTemplateVars())
12914);
12915	};
12916	
12917	return fragmentsHtmlArr.join('');
12918};
12919
12920Mfe.Widgets['cms-fragments'].prototype.renderOnlyFragments = function(fragments) {
12921	var fragmentsHtmlArr = [];
12922	var itemTemplate = this.mfe.getTemplate('widgets', 'cms-fragments', this.itemFragmentTemplate);
12923	for (var i = 0; i < fragments.length; i++) {
12924		var fragment = fragments[i];
12925		fragmentsHtmlArr.push(itemTemplate(fragment.getTemplateVars()));
12926	};
12927	
12928	return fragmentsHtmlArr.join('');
12929};
12930
12931Mfe.Widgets['cms-fragments'].prototype.renderWidget = function(queryResult) {
12932	if (this.post === null) {
12933	    this.post = queryResult;
12934	}
12935    
12936	let availableLanguages = [];
12937	if (typeof this.post !== 'undefined' && typeof this.post.getRevisionLanguages !== 'undefined') {
12938	    availableLanguages = this.post.getRevisionLanguages();
12939	}
12940    
12941	if (isEmpty(this.post) === true) {
12942	    var fragmentsHtml = '';
12943	} else {
12944	    var fragmentsHtml = this.renderFragments(this.post);
12945	}
12946	
12947	var settingTextImageWrap = this.getOption('text-image-text-wrap', true);
12948	if (settingTextImageWrap == 'false') {
12949		settingTextImageWrap = false;
12950	} else if (settingTextImageWrap == 'true') {
12951		settingTextImageWrap = true;
12952	}
12953	
12954
12955	let showLanguagePicker = this.getOption('show-language-picker', false);
12956	if (showLanguagePicker == 'false') {
12957		settingTextImageWrap = false;
12958	} else if (showLanguagePicker == 'true') {
12959		showLanguagePicker = true;
12960	}
12961	
12962	
12963	let currentLanguage = '';
12964	
12965	if (typeof this.language !== 'undefined' && this.language !== null) {
12966	    currentLanguage = this.language;
12967	}
12968	
12969	var baseTemplate = this.mfe.getTemplate('widgets', 'cms-fragments', this.baseTemplate);
12970	var templateVars = {
12971		'isLoading': false,
12972		'allowTextWrap': settingTextImageWrap,
12973		'fragmentsHtml': fragmentsHtml,
12974		'addArticleTag': this.getSettingConfig('add-article-tag', false),
12975		'availableLanguages': availableLanguages,
12976		'hasMultipleLanguages': availableLanguages.length > 0,
12977		'currentLanguage': currentLanguage,
12978		'showLanguagePicker': showLanguagePicker
12979	};
12980	
12981	var baseTemplateHtml = baseTemplate(templateVars);
12982	return baseTemplateHtml;
12983};
12984
12985Mfe.Widgets['cms-fragments'].prototype.switchLanguage = function(language) {
12986	this.language = language;
12987	
12988	this.display(this.renderWidget(this.post));
12989	this.onAttach();
12990	
12991	// Update current URL
12992	let newPath = window.location.pathname;
12993	if (language.length > 0) {
12994	    newPath = '?lang=' + language;
12995	}
12996	
12997	window.history.replaceState({}, '', newPath);
12998};
12999
13000Mfe.Widgets['cms-metadata'] = function(mfe, widgetId, options) {
13001	this.mfe = mfe;
13002	this.name = 'cms-metadata';
13003	this.baseTemplate = 'base-default';
13004	options['data-source'] = 'context';
13005	Mfe.Widget.apply(this, arguments);
13006};
13007Mfe.Widgets['cms-metadata'].inherits(Mfe.Widget);
13008Mfe.Widgets['cms-metadata'].title = 'CMS Metadata';
13009Mfe.Widgets['cms-metadata'].getSettings = function() {
13010	var settings = {
13011		'sections': [
13012			{ 
13013				'name': 'general', 
13014				'title': 'General', 
13015				'settings': [
13016					{ "type": "boolean", "name": "show-text", "default": true, "description": "Show text" },
13017					{ "type": "boolean", "name": "show-category", "default": false, "description": "Show category" },
13018					{ "type": "boolean", "name": "show-author-avatar", "default": true, "description": "Show author avatar" },
13019					{ "type": "boolean", "name": "show-author", "default": true, "description": "Show author" },
13020					{ "type": "boolean", "name": "link-author-to-search", "default": true, "description": "Link author to search" },
13021				]
13022			}
13023		]
13024	};
13025	
13026	return settings;
13027};
13028Mfe.Widgets['cms-metadata'].prototype.onRender = function() {
13029	var fetchResult = this.fetch();
13030	if (isEmpty(fetchResult) === false) {
13031		return this.renderItem(fetchResult);
13032	}
13033	
13034	return '';
13035
13036	// Return empty template with loading state
13037	/*var baseTemplate = this.mfe.getTemplate('widgets', 'cms-metadata', this.baseTemplate);
13038	var templateVars = {};
13039	
13040	var baseTemplateHtml = baseTemplate(templateVars);
13041	return baseTemplateHtml;*/
13042};
13043
13044Mfe.Widgets['cms-metadata'].prototype.onAttach = function() {
13045
13046};
13047
13048Mfe.Widgets['cms-metadata'].prototype.fetch = function() {
13049	var self = this;
13050	
13051	return Mfe.Widget.Content.fetchContent(this.mfe, this.options, null, 'single', function(response) {
13052		var cmsItem = response;
13053		self.display(self.renderItem(cmsItem));
13054	}); 
13055};
13056
13057Mfe.Widgets['cms-metadata'].prototype.display = function(html) {
13058	this.setElementHtml(html);
13059};
13060
13061Mfe.Widgets['cms-metadata'].prototype.renderItem = function(cmsItem) {
13062	
13063	var itemType = Mfe.getContentType(cmsItem);
13064	
13065	
13066	/*var revisionLanguages = cmsPost.getRevisionLanguages();
13067	var revisionLanguage = revisionLanguages[0];
13068	var revision = cmsPost.getRevisionByLanguage(revisionLanguages[0]);*/
13069	
13070	var templateVars = cmsItem.getTemplateVars(this.mfe, null, true);
13071	
13072	templateVars.showText = this.getOptionBoolean('show-text', true);
13073	templateVars.showAuthorAvatar = this.getOptionBoolean('show-author-avatar', true);
13074	templateVars.showAuthor = this.getOptionBoolean('show-author', true);
13075	templateVars.showCategory = this.getOptionBoolean('show-category', false);
13076	templateVars.linkAuthorToSearch = this.getOptionBoolean('link-author-to-search', true);
13077	
13078	var baseTemplate = this.mfe.getTemplate('widgets', 'cms-metadata', this.baseTemplate + '-' + itemType);
13079	var baseTemplateHtml = baseTemplate(templateVars);
13080	
13081	return baseTemplateHtml;
13082};
13083
13084Mfe.Widgets['cms-storyline'] = function(mfe, widgetId, options) {
13085	this.mfe = mfe;
13086	this.name = 'cms-storyline';
13087	this.baseTemplate = 'base-default';
13088	this.itemBlogpostTemplate = 'item-blogpost';
13089	Mfe.Widget.apply(this, arguments);
13090};
13091Mfe.Widgets['cms-storyline'].inherits(Mfe.Widget);
13092Mfe.Widgets['cms-storyline'].title = 'CMS storyline';
13093Mfe.Widgets['cms-storyline'].getSettings = function() {
13094	return [
13095		{ "type": "options", "name": "data-source", "default": "blogs", "description": "Data source", "options": [ 
13096				{ "value": "context", "label": "From context" }
13097		]},
13098		{ "type": "text", "name": "width", "default": "100%", "description": "Widget max width" }
13099	];
13100};
13101Mfe.Widgets['cms-storyline'].prototype.onRender = function() {
13102	
13103	
13104	var contextObj = this.mfe.contextObject;
13105	var contextType = Mfe.getContentType(contextObj);
13106	if (contextType != 'blogpost') {
13107		return '';
13108	}
13109	
13110	var storylines = contextObj.getStorylines();
13111	if (storylines.length == 0) {
13112		return '';
13113	}
13114	
13115	this.storylineId = storylines[0].getId();
13116	this.contextContentId = contextObj.getId();
13117	
13118	var fetchResult = this.fetch();
13119	if (isEmpty(fetchResult) === false) {
13120		return this.renderWidget(fetchResult);
13121	}
13122
13123	// Return empty template with loading state
13124	var baseTemplate = this.mfe.getTemplate('widgets', 'cms-storyline', this.baseTemplate);
13125	var templateVars = {
13126		'isLoading': true,
13127		'title': '',
13128		'itemsHtml': ''
13129	};
13130	
13131	var baseTemplateHtml = baseTemplate(templateVars);
13132	return baseTemplateHtml;
13133};
13134
13135Mfe.Widgets['cms-storyline'].prototype.onAttach = function() {
13136
13137};
13138
13139Mfe.Widgets['cms-storyline'].prototype.fetch = function() {
13140	var self = this;
13141
13142	var storyline = Mfe.Api.Storyline.get(this.mfe.siteBundle.getName(), this.storylineId, function(result, response) {
13143		self.display(self.renderWidget(response));
13144	});
13145
13146	if (storyline !== null) {
13147		return storyline;
13148	}
13149};
13150
13151Mfe.Widgets['cms-storyline'].prototype.display = function(html) {
13152	this.setElementHtml(html);
13153};
13154
13155Mfe.Widgets['cms-storyline'].prototype.renderItems = function(storyline) {
13156	var items = storyline.getContents();
13157	
13158	var itemsHtmlArr = [];
13159	var itemTemplate = this.mfe.getTemplate('widgets', 'cms-storyline', this.itemBlogpostTemplate);
13160	for (var i = 0; i < items.length; i++) {
13161		var item = items[i];
13162		
13163		var itemTemplateVars = item.getTemplateVars(this.mfe);
13164		itemTemplateVars.contextContentId = this.contextContentId;
13165		
13166		itemsHtmlArr.push(itemTemplate(itemTemplateVars));
13167	};
13168	
13169	return itemsHtmlArr.join('');
13170};
13171
13172Mfe.Widgets['cms-storyline'].prototype.renderWidget = function(storyline) {
13173	var itemsHtml = '';
13174	if (isEmpty(storyline) === false) {
13175		itemsHtml = this.renderItems(storyline);
13176	}
13177	
13178	var baseTemplate = this.mfe.getTemplate('widgets', 'cms-storyline', this.baseTemplate);
13179	var templateVars = {
13180		'isLoading': false,
13181		'title': storyline.getTitle(),
13182		'description': storyline.getDescription(),
13183		'itemsHtml': itemsHtml
13184	};
13185	
13186	var baseTemplateHtml = baseTemplate(templateVars);
13187	return baseTemplateHtml;
13188};
13189
13190Mfe.Widgets['cms-summary'] = function(mfe, widgetId, options) {
13191	this.mfe = mfe;
13192	this.name = 'cms-summary';
13193	this.baseTemplate = 'base-default';
13194	options['data-source'] = 'context';
13195	Mfe.Widget.apply(this, arguments);
13196};
13197Mfe.Widgets['cms-summary'].inherits(Mfe.Widget);
13198Mfe.Widgets['cms-summary'].title = 'CMS Summary';
13199Mfe.Widgets['cms-summary'].getSettings = function() {
13200	return [
13201
13202	];
13203};
13204Mfe.Widgets['cms-summary'].prototype.onRender = function() {
13205	var fetchResult = this.fetch();
13206	if (isEmpty(fetchResult) === false) {
13207		return this.renderItem(fetchResult);
13208	}
13209	
13210	return '';
13211};
13212
13213Mfe.Widgets['cms-summary'].prototype.onAttach = function() {
13214
13215};
13216
13217Mfe.Widgets['cms-summary'].prototype.fetch = function() {
13218	var self = this;
13219	
13220	return Mfe.Widget.Content.fetchContent(this.mfe, this.options, null, 'single', function(response) {
13221		var cmsItem = response;
13222		self.display(self.renderItem(cmsItem));
13223	}); 
13224};
13225
13226Mfe.Widgets['cms-summary'].prototype.display = function(html) {
13227	this.setElementHtml(html);
13228};
13229
13230Mfe.Widgets['cms-summary'].prototype.renderItem = function(cmsItem) {
13231	
13232	var itemType = Mfe.getContentType(cmsItem);
13233	
13234	
13235	/*var revisionLanguages = cmsPost.getRevisionLanguages();
13236	var revisionLanguage = revisionLanguages[0];
13237	var revision = cmsPost.getRevisionByLanguage(revisionLanguages[0]);*/
13238	
13239	var templateVars = cmsItem.getTemplateVars(this.mfe, null, true);
13240	
13241	var baseTemplate = this.mfe.getTemplate('widgets', 'cms-summary', this.baseTemplate + '-' + itemType);
13242	var baseTemplateHtml = baseTemplate(templateVars);
13243	
13244	return baseTemplateHtml;
13245};
13246
13247Mfe.Widgets['cms-tags'] = function(mfe, widgetId, options) {
13248	this.mfe = mfe;
13249	this.name = 'cms-tags';
13250	this.baseTemplate = 'base-default';
13251	options['data-source'] = 'context';
13252	Mfe.Widget.apply(this, arguments);
13253};
13254Mfe.Widgets['cms-tags'].inherits(Mfe.Widget);
13255Mfe.Widgets['cms-tags'].title = 'CMS Tags';
13256Mfe.Widgets['cms-tags'].getSettings = function() {
13257	return [
13258
13259	];
13260};
13261Mfe.Widgets['cms-tags'].prototype.onRender = function() {
13262	var fetchResult = this.fetch();
13263	if (isEmpty(fetchResult) === false) {
13264		return this.renderItem(fetchResult);
13265	}
13266	
13267	return '';
13268};
13269
13270Mfe.Widgets['cms-tags'].prototype.onAttach = function() {
13271
13272};
13273
13274Mfe.Widgets['cms-tags'].prototype.fetch = function() {
13275	var self = this;
13276	
13277	return Mfe.Widget.Content.fetchContent(this.mfe, this.options, null, 'single', function(response) {
13278		var cmsItem = response;
13279		self.display(self.renderItem(cmsItem));
13280	}); 
13281};
13282
13283Mfe.Widgets['cms-tags'].prototype.display = function(html) {
13284	this.setElementHtml(html);
13285};
13286
13287Mfe.Widgets['cms-tags'].prototype.renderItem = function(cmsItem) {
13288	
13289	var itemType = Mfe.getContentType(cmsItem);
13290	
13291	/*var revisionLanguages = cmsPost.getRevisionLanguages();
13292	var revisionLanguage = revisionLanguages[0];
13293	var revision = cmsPost.getRevisionByLanguage(revisionLanguages[0]);*/
13294	
13295	var templateVars = cmsItem.getTemplateVars(this.mfe, null, true);
13296	
13297	var baseTemplate = this.mfe.getTemplate('widgets', 'cms-tags', this.baseTemplate + '-' + itemType);
13298	var baseTemplateHtml = baseTemplate(templateVars);
13299	
13300	return baseTemplateHtml;
13301};
13302
13303Mfe.Widgets['comments'] = function(mfe, widgetId, options) {
13304	this.mfe = mfe;
13305	this.name = 'comments';
13306	this.baseTemplate = 'base-default';
13307	Mfe.Widget.apply(this, arguments);
13308};
13309Mfe.Widgets['comments'].inherits(Mfe.Widget);
13310Mfe.Widgets['comments'].title = 'Comments';
13311Mfe.Widgets['comments'].getSettings = function() {
13312	return [
13313		{ "type": "boolean", "name": "show-comments-immediately", "default": false, "description": "Show comments without clicking" }
13314	];
13315};
13316Mfe.Widgets['comments'].prototype.onRender = function() {
13317	var baseTemplate = this.mfe.getTemplate('widgets', 'comments', this.baseTemplate);
13318	
13319	var templateVars = {
13320		'commentUrl': this.getCommentUrl(),
13321		'showCommentsImmediately': this.getOptionBoolean('show-comments-immediately', false)
13322	};
13323	
13324	var baseTemplateHtml = baseTemplate(templateVars);
13325	return baseTemplateHtml;
13326};
13327
13328Mfe.Widgets['comments'].prototype.getCommentUrl = function() {
13329	return 'https://' + this.mfe.options.domain + this.mfe.fullPath;
13330};
13331
13332Mfe.Widgets['comments'].prototype.onAttach = function() {
13333	
13334	var self = this;
13335	this.$el.find('.platforms button').on('click', function(e){
13336		var $buttonEl = $(this);
13337		var action = $buttonEl.attr('data-action');
13338		
13339		if (action == 'show-facebook-comments') {
13340			self.showFacebookComments();
13341		}
13342	});
13343	
13344	if (typeof FB !== 'undefined') {
13345		FB.XFBML.parse(this.$el[0]);
13346	}
13347	
13348	var showCommentsImmediately = this.getOptionBoolean('show-comments-immediately', false);
13349	
13350	if (showCommentsImmediately === true) {
13351		self.showFacebookComments();
13352	}
13353};
13354
13355Mfe.Widgets['comments'].prototype.showFacebookComments = function() {
13356	var commentsTemplate = this.mfe.getTemplate('widgets', 'comments', 'comments-facebook');
13357	
13358	var randomId = Mfe.Utils.Math.rand(10000000, 999999999);
13359	var templateVars = {
13360		'commentUrl': this.getCommentUrl(),
13361		'showCommentsImmediately': this.getOptionBoolean('show-comments-immediately', false)
13362	};
13363	var commentsHtml = commentsTemplate(templateVars);
13364	
13365	this.$el.find('.comments').html('');
13366	var $commentsEl = $(commentsHtml);
13367	
13368	this.$el.find('.comments').append($commentsEl);
13369	if (FB) {
13370		FB.XFBML.parse(this.$el[0]);
13371	}
13372};
13373
13374Mfe.Widgets['content-grid'] = function(mfe, widgetId, options) {
13375	this.mfe = mfe;
13376	this.name = 'content-grid';
13377	this.baseTemplate = 'base-default';
13378	this.itemTemplates = {
13379		'blogpost': 'item-blogpost-default',
13380		'page': 'item-page-default',
13381		'event': 'item-event-default',
13382		'media': 'item-media-default',
13383		'menuitem': 'item-menu-default'
13384	};
13385	this.itemStyles = {
13386		'blogpost': 'default',
13387		'page': 'menu',
13388		'media': 'default',
13389		'event': 'default',
13390		'menuitem': 'default'
13391	};
13392	
13393	Mfe.Widget.apply(this, arguments);
13394	
13395	this.itemStyles['menuitem'] = this.getSettingConfig('item-style-menuitem');
13396};
13397Mfe.Widgets['content-grid'].inherits(Mfe.Widget);
13398Mfe.Widgets['content-grid'].title = 'Content grid';
13399Mfe.Widgets['content-grid'].getSettings = function() {
13400	var settings = {
13401		'sections': [
13402			{ 
13403				'name': 'general', 
13404				'title': 'General', 
13405				'settings': [
13406					{ "type": "options", "name": "style", "default": "default", "description": "Style", "options": [ 
13407							{ "value": "default", "label": "Default" },  
13408							{ "value": "menu", "label": "menu" },  
13409							{ "value": "pattern-1-2-2-1", "label": "Pattern (1-2,2-1)" } ,
13410							{ "value": "pattern-1-2-2-1", "label": "Pattern (1-2,2-1)" } ,
13411							{ "value": "first-large", "label": "First large" } ,
13412							{ "value": "logos", "label": "Logos" },
13413							{ "value": "features", "label": "Features" }
13414						]
13415					},
13416					{ "type": "boolean", "name": "show-load-more", "default": true, "description": "Show load-more button" },
13417					{ "type": "text", "name": "load-more-classes", "default": true, "description": "Load-more button classes" },
13418					{ "type": "boolean", "name": "enable-lazy-load", "default": false, "description": "Enable lazy loading of images" },
13419					{ "type": "boolean", "name": "disable-timezones", "default": false, "description": "Disable timezones" },
13420					{ "type": "text", "name": "load-more-text", "default": null, "description": "Load-more text" },
13421					{ "type": "text", "name": "blog-category-mapping-json", "default": null, "description": "Blog category name mapping JSON" },
13422					{ "type": "options", "name": "item-template-blogpost", "default": "item-blogpost-default", "description": "Blogpost template", "options": [ { "value": "item-blogpost-default", "label": "Default" },  { "value": "item-blogpost-fulllink", "label": "Fully clickable" },  { "value": "item-blogpost-team", "label": "Team" }  ] },
13423					{ "type": "options", "name": "item-template-page", "default": "item-page-default", "description": "Page template", "options": [ { "value": "item-page-default", "label": "Default" },  { "value": "item-page-menu", "label": "Menu" } ] },
13424					{ "type": "options", "name": "item-template-menuitem", "default": "item-menu-default", "description": "Menu template", "options": [ { "value": "item-menu-default", "label": "Default" },  { "value": "item-menu-logos", "label": "Logos" },  { "value": "item-menu-features", "label": "Features" },  { "value": "item-menu-vertical", "label": "Vertical" } ] },
13425					{ "type": "options", "name": "item-style-menuitem", "default": "icon-left", "description": "Menu style", "options": [ { "value": "icon-left", "label": "Icon left" },  { "value": "icon-top", "label": "Icon top" } ] },
13426					{ "type": "boolean", "name": "show-category", "default": true, "description": "Show category" },
13427					{ "type": "boolean", "name": "show-date", "default": true, "description": "Show date" },
13428					{ "type": "boolean", "name": "show-summary", "default": false, "description": "Show summary" },
13429					{ "type": "text", "name": "items-per-row", "default": "3", "description": "Items per row" },
13430					{ "type": "text", "name": "gutter-y", "default": "16px", "description": "Vertical spacing" },
13431					{ "type": "text", "name": "gutter-x", "default": "16px", "description": "Horizontal spacing" }
13432				]
13433			},
13434			{
13435				'name': 'data', 
13436				'title': 'Data', 
13437				'settings': [
13438					{ "type": "text", "name": "data-site-name", "default": null, "description": "Data site name" },
13439					{ "type": "options", "name": "data-source", "default": "blogs", "description": "Data source", "options": [ { "value": "context", "label": "Context" }, { "value": "blogs", "label": "Blogs" }, { "value": "blogs-tags", "label": "Blogs using tags" }, { "value": "streams", "label": "Streams" },  { "value": "calendars", "label": "Calendars" },  { "value": "contentset", "label": "Contentset" },  { "value": "menu", "label": "Menu" },  { "value": "userGroupTeamMembers", "label": "Team Members" } ] },
13440					{ "type": "boolean", "name": "enable-tabs", "default": false, "description": "Enable tabs" },
13441					{ "type": "text", "name": "data-tabs-config-json", "default": '{}', "description": "Data tab config (JSON)" },
13442					{ "type": "blogGroups", "name": "data-blog-ids", "default": [], "dependency": { "key": "data-source", "value": "blogs" }, "description": "Data source blogs" },
13443					{ "type": "text", "name": "data-blog-tags", "default": [], "dependency": { "key": "data-source", "value": "blogs-tags" }, "description": "Blog tags (comma separated)" },
13444					{ "type": "streams", "name": "data-stream-ids", "default": [], "dependency": { "key": "data-source", "value": "streams" }, "description": "Data source streams" },
13445					{ "type": "calendars", "name": "data-calendar-ids", "default": [], "dependency": { "key": "data-source", "value": "calendars" }, "description": "Data source calendars" },
13446					{ "type": "contentset", "name": "data-contentset-id", "default": [], "dependency": { "key": "data-source", "value": "contentset" }, "description": "Data source contentset" },
13447					{ "type": "userGroupsTeam", "name": "data-usergroupteam-id", "default": [], "dependency": { "key": "data-source", "value": "userGroupTeamMembers" }, "description": "Data source usergroup team" },
13448					{ "type": "menu", "name": "data-menu-id", "default": [], "dependency": { "key": "data-source", "value": "menu" }, "description": "Data source menu" },
13449					{ "type": "text", "name": "data-amount", "default": 6, "description": "Amount of items" },
13450					{ "type": "text", "name": "data-offset", "default": 0, "description": "Skip items" }
13451				]
13452			}
13453		]
13454	};
13455	
13456	return settings;
13457};
13458
13459Mfe.Widgets['content-grid'].prototype.onRender = function() {
13460	var enableTabs = this.getSettingConfig('enable-tabs', false);
13461	if (enableTabs === true) {
13462		var tabsConfig = JSON.parse(this.getSettingConfig('data-tabs-config-json', '[]'));
13463		var tabConfig = tabsConfig[0];
13464		
13465		var tabConfigKeys = Object.keys(tabConfig.config);
13466		for (var i = 0; i < tabConfigKeys.length; i++) {
13467			var tabConfigKey = tabConfigKeys[i];
13468			this.options[tabConfigKey] = tabConfig.config[tabConfigKey];
13469		}
13470	}
13471	
13472	
13473	var fetchResult = this.fetch();
13474	if (isEmpty(fetchResult) === false) {
13475		return this.renderWidget(fetchResult);
13476	}
13477	
13478	var optionStyle = this.getOption('style', 'default');
13479
13480	// Return empty template with loading state
13481	
13482	var showLoadMore = this.getOptionBoolean('show-load-more', true);
13483	var loadMoreClasses = this.getOption('load-more-classes', 'load-more');
13484	var showCategory = this.getOptionBoolean('show-category', true);
13485	var showDate = this.getOptionBoolean('show-date', true);
13486	var showSummary = this.getOptionBoolean('show-summary', true);
13487	var disableTimezones = this.getOptionBoolean('disable-timezones', false);
13488	
13489	var itemsPerRow = this.getOption('items-per-row', '3');
13490	var itemsPerRowPerc = 'calc(' + (100 / (parseInt(itemsPerRow) + 1)) + '% - var(--gutter-x) + 2px)';
13491	var loadMoreText = this.getOption('load-more-text', this.mfe.getTranslation('button.load-more'));
13492	var baseTemplate = this.mfe.getTemplate('widgets', 'content-grid', this.baseTemplate);
13493	
13494	var gutterX = this.getSettingConfig('gutter-x');
13495	var gutterY = this.getSettingConfig('gutter-y');
13496	
13497	
13498	var blogCategoryMapping = {};
13499	var blogCategoryMappingJson = this.getSettingConfig('blog-category-mapping-json', '');
13500	if (blogCategoryMappingJson !== null && blogCategoryMappingJson.length && blogCategoryMappingJson.length > 0) {
13501		blogCategoryMapping = JSON.parse(blogCategoryMappingJson);
13502	}
13503
13504	var templateVars = {
13505		'itemsPerRow': itemsPerRow,
13506		'itemsPerRowPerc': itemsPerRowPerc,
13507		'style': optionStyle,
13508		'showLoadMore': showLoadMore,
13509		'loadMoreClasses': loadMoreClasses,
13510		'showCategory': showCategory,
13511		'showDate': showDate,
13512		'showSummary': showSummary,
13513		'loadMoreText': loadMoreText,
13514		'isLoading': true,
13515		'placeholderItems': [],
13516		'gutterX': gutterX,
13517		'gutterY': gutterY,
13518		'blogCategoryMapping': blogCategoryMapping,
13519		'disableTimezones': disableTimezones,
13520		'tabs': null
13521	};
13522	
13523	var enableTabs = this.getSettingConfig('enable-tabs', false);
13524	if (enableTabs === true) {
13525		var tabsConfig = JSON.parse(this.getSettingConfig('data-tabs-config-json', '[]'));
13526		templateVars.tabs = tabsConfig;
13527	}
13528
13529	var amount = parseInt(this.getOption('data-amount', 3));
13530	for (var i = 0; i < amount; i++) { 
13531		templateVars.placeholderItems.push({});
13532	}
13533	
13534	var baseTemplateHtml = baseTemplate(templateVars);
13535	return baseTemplateHtml;
13536};
13537
13538Mfe.Widgets['content-grid'].prototype.onAttach = function() {
13539	// Show content if it hasnt yet
13540	/*if (this.hasContent !== true) {
13541		var fetchResult = this.fetch();
13542		if (isEmpty(fetchResult) === false) {
13543			this.displayItems(this.renderItems(fetchResult));
13544		}
13545	}*/
13546	 
13547	this.attachHandlers();
13548};
13549
13550Mfe.Widgets['content-grid'].prototype.fetch = function(lastItemId, beforeDisplayCb) {
13551	var self = this;
13552	
13553	if (isEmpty(lastItemId) === true) {
13554		lastItemId = null;
13555	}
13556	
13557	var optionAmount = parseInt(this.getOption('data-amount', 3));
13558	
13559	return Mfe.Widget.Content.fetchContent(this.mfe, this.options, lastItemId, 'multi', function(response) {
13560		if (lastItemId !== null) {
13561			if (response.getResults().length < optionAmount) {
13562				self.$el.find('button.load-more').hide();
13563			}
13564		}
13565		
13566		if (typeof beforeDisplayCb !== 'undefined') {
13567			beforeDisplayCb();
13568		}
13569		
13570		self.displayItems(self.renderItems(response));
13571	}); 
13572};
13573
13574Mfe.Widgets['content-grid'].prototype.loadItemTemplates = function() {
13575	var objectNames = Object.keys(this.itemTemplates);
13576	for (var i = 0; i < objectNames.length; i++) {
13577		var objectName = objectNames[i];
13578		var optionObjectTemplate = this.getOption('item-template-' + objectName, 'item-' + objectName + '-default');
13579		this.itemTemplates[objectName] = optionObjectTemplate;
13580	}
13581};
13582
13583Mfe.Widgets['content-grid'].prototype.fetchMore = function() {
13584	var $liEls = this.$el.find('li:not(.filler)');
13585	var $liLastEl = $($liEls[$liEls.length - 1]);
13586	
13587	var lastItemId = $liLastEl.attr('data-item-query-id');
13588	var optionAmount = parseInt(this.getOption('data-amount', 3));
13589	
13590	var result = this.fetch(lastItemId);
13591	if (isEmpty(result) === false) {
13592		if (result.getResults().length < optionAmount) {
13593			this.$el.find('button.load-more').hide();
13594		}
13595		this.displayItems(this.renderItems(result), lastItemId);
13596	}
13597};
13598
13599Mfe.Widgets['content-grid'].prototype.display = function(html) {
13600	this.setElementHtml(html);
13601};
13602
13603Mfe.Widgets['content-grid'].prototype.displayItems = function(itemsHtml) {
13604	this.$el.find('ul li.placeholder').remove();
13605
13606	var $fillerEls = this.$el.find('ul li.filler');
13607	$(itemsHtml).insertBefore($($fillerEls[0]));
13608		
13609	if (window.lazyLoad) {
13610		window.lazyLoad.update();
13611	}
13612};
13613
13614Mfe.Widgets['content-grid'].prototype.renderItems = function(queryResult) {
13615	var contentItems;
13616	
13617	if (typeof queryResult.getResults !== 'undefined') {
13618		contentItems = queryResult.getResults();
13619	} else {
13620		contentItems = queryResult;
13621	}
13622	
13623	this.loadItemTemplates();
13624	
13625	var itemTemplatesCompiled = {};
13626	
13627	var itemsHtmlArr = [];
13628	
13629	var blogCategoryMapping = {};
13630	var blogCategoryMappingJson = this.getSettingConfig('blog-category-mapping-json', '');
13631	if (blogCategoryMappingJson !== null && blogCategoryMappingJson.length && blogCategoryMappingJson.length > 0) {
13632		blogCategoryMapping = JSON.parse(blogCategoryMappingJson);
13633	}
13634	
13635	//var optionDataAmount = parseInt(this.getOption('data-amount', 0)) || 0;
13636
13637	for (var i = 0; i < contentItems.length; i++) {
13638		var contentItem = contentItems[i];
13639		if (isEmpty(contentItem) === true) {
13640			continue;
13641		}
13642		
13643		var itemType = Mfe.getContentType(contentItem);
13644		
13645		if (isEmpty(itemTemplatesCompiled[itemType]) === true) {
13646			var itemTemplateName = this.itemTemplates[itemType];
13647			itemTemplatesCompiled[itemType] = this.mfe.getTemplate('widgets', 'content-grid', itemTemplateName);
13648		}
13649		
13650		var templateVars = contentItem.getTemplateVars(this.mfe);
13651		templateVars.itemStyle = this.itemStyles[itemType];
13652		
13653		templateVars.showLoadMore = this.getOptionBoolean('show-load-more', true);
13654		templateVars.loadMoreClasses = this.getOption('load-more-classes', 'load-more');
13655		templateVars.showCategory = this.getOptionBoolean('show-category', true);
13656		templateVars.showDate = this.getOptionBoolean('show-date', true);
13657		templateVars.showSummary = this.getOptionBoolean('show-summary', true);
13658		templateVars.enableLazyLoad = this.getSettingConfig('enable-lazy-load', false);
13659		templateVars.disableTimezones = this.getSettingConfig('disable-timezones', false);
13660		templateVars.style = this.getSettingConfig('style', false);
13661		templateVars.blogCategoryMapping = blogCategoryMapping;
13662
13663		
13664		var itemTemplateHtml = itemTemplatesCompiled[itemType](templateVars);
13665		itemsHtmlArr.push(itemTemplateHtml);
13666	}
13667	
13668	var html = itemsHtmlArr.join('');
13669	return html;
13670};
13671
13672Mfe.Widgets['content-grid'].prototype.renderWidget = function(queryResult) {
13673	var itemsHtml = this.renderItems(queryResult);
13674	
13675	var optionStyle = this.getOption('style', 'default');
13676	
13677	var optionAmount = parseInt(this.getOption('data-amount', 3));
13678	if (queryResult.getResults().length < optionAmount) {
13679		showLoadMore = false;
13680	}
13681	
13682	var showLoadMore = this.getOptionBoolean('show-load-more', true);
13683	
13684	var disableTimezones = this.getOptionBoolean('disable-timezones', false);
13685	var loadMoreClasses = this.getOption('load-more-classes', 'load-more');
13686	var showCategory = this.getOptionBoolean('show-category', true);
13687	var showDate = this.getOptionBoolean('show-date', true);
13688	var showSummary = this.getOptionBoolean('show-summary', true);
13689	
13690	var itemsPerRow = this.getOption('items-per-row', '3');
13691	var itemsPerRowPerc = (100 / (parseInt(itemsPerRow) + 1)) + 1;
13692	
13693	var loadMoreText = this.getOption('load-more-text', this.mfe.getTranslation('button.load-more'));
13694	
13695	var gutterX = this.getSettingConfig('gutter-x');
13696	var gutterY = this.getSettingConfig('gutter-y');
13697	
13698	var blogCategoryMapping = {};
13699	var blogCategoryMappingJson = this.getSettingConfig('blog-category-mapping-json', '');
13700	if (blogCategoryMappingJson !== null && blogCategoryMappingJson.length && blogCategoryMappingJson.length > 0) {
13701		blogCategoryMapping = JSON.parse(blogCategoryMappingJson);
13702	}
13703	
13704	var baseTemplate = this.mfe.getTemplate('widgets', 'content-grid', this.baseTemplate);
13705	var templateVars = {
13706		'itemsPerRow': itemsPerRow,
13707		'itemsPerRowPerc': itemsPerRowPerc + '%',
13708		'itemsPerPage': optionAmount,
13709		'style': optionStyle,
13710		'showLoadMore': showLoadMore,
13711		'disableTimezones': disableTimezones,
13712		'loadMoreClasses': loadMoreClasses,
13713		'showCategory': showCategory,
13714		'showDate': showDate,
13715		'showSummary': showSummary,
13716		'enableLazyLoad': this.getSettingConfig('enable-lazy-load', false),
13717		'loadMoreText': loadMoreText,
13718		'isLoading': false,
13719		'itemsHtml': itemsHtml,
13720		'gutterX': gutterX,
13721		'gutterY': gutterY,
13722		'blogCategoryMapping': blogCategoryMapping,
13723		'tabs': null
13724	};
13725	
13726	var enableTabs = this.getSettingConfig('enable-tabs', false);
13727	if (enableTabs === true) {
13728		var tabsConfig = JSON.parse(this.getSettingConfig('data-tabs-config-json', '[]'));
13729		templateVars.tabs = tabsConfig;
13730	}
13731	
13732	var baseTemplateHtml = baseTemplate(templateVars);
13733	return baseTemplateHtml;
13734};
13735
13736Mfe.Widgets['content-grid'].prototype.onSettingChanged = function(settingName, settingValue) {
13737	this.options[settingName] = settingValue;
13738	
13739	if (settingName == 'items-') {
13740
13741	} else {
13742		var html = this.onRender();
13743		this.$el.html(html);
13744	}
13745};
13746
13747Mfe.Widgets['content-grid'].prototype.switchTab = function(tabIndex) {
13748	this.$el.find('nav.tabs button').removeClass('selected');
13749	this.$el.find('nav.tabs button:nth-child(' + (tabIndex + 1) + ')').addClass('selected');
13750	
13751	var self = this;
13752	
13753	var tabsConfig = JSON.parse(this.getSettingConfig('data-tabs-config-json', '[]'));
13754	var tabConfig = tabsConfig[tabIndex];
13755
13756	var tabConfigKeys = Object.keys(tabConfig.config);
13757	for (var i = 0; i < tabConfigKeys.length; i++) {
13758		var tabConfigKey = tabConfigKeys[i];
13759		this.options[tabConfigKey] = tabConfig.config[tabConfigKey];
13760	}
13761	
13762	var response = this.fetch(null, function(){
13763		self.$el.find('li:not(.filler)').remove();
13764	});
13765	if (typeof response === 'undefined' || response === null) {
13766		return;
13767	}
13768
13769	self.$el.find('li:not(.filler)').remove();
13770	this.displayItems(self.renderItems(response));
13771};
13772
13773Mfe.Widgets['content-grid'].prototype.attachHandlers = function() {
13774	var self = this;
13775	this.$el.find('button[data-action="load-more"]').on('click', function(event){
13776		
13777		self.fetchMore();
13778
13779		event.preventDefault();
13780		return false;
13781	});
13782	
13783	this.$el.find('nav.tabs button').on('click', function(event) {
13784		var $buttonEl = $(this);
13785		var tabIndex = $buttonEl.prevAll().length;
13786		
13787		self.switchTab(tabIndex);
13788		
13789		return false;
13790	});
13791};
13792
13793Mfe.Widgets['content-list'] = function(mfe, widgetId, options) {
13794	this.mfe = mfe;
13795	this.name = 'content-list';
13796	this.baseTemplate = 'base-default';
13797	this.itemTemplates = {
13798		'blogpost': 'item-blogpost-default',
13799		'media': 'item-media-default'
13800	};
13801	this.itemStyles = {
13802		'blogpost': 'default',
13803		'media': 'default'
13804	};
13805	Mfe.Widget.apply(this, arguments);
13806};
13807Mfe.Widgets['content-list'].inherits(Mfe.Widget);
13808Mfe.Widgets['content-list'].title = 'Content list';
13809Mfe.Widgets['content-list'].getSettings = function() {
13810	return [
13811		{ "type": "options", "name": "style", "default": "default", "description": "Style", "options": [ 
13812				{ "value": "default", "label": "Default" }
13813			]
13814		},
13815		{ "type": "text", "name": "data-site-name", "default": null, "description": "Data site name" },
13816		{ "type": "options", "name": "data-source", "default": "blogs", "description": "Data source", "options": [ 
13817			{ "value": "blogs", "label": "Blogs" },  
13818			{ "value": "streams", "label": "Streams" },  
13819			{ "value": "calendars", "label": "Calendars" },  
13820			{ "value": "contentset", "label": "Contentset" },
13821			{ "value": "storyline", "label": "Storyline" }
13822		] },
13823		{ "type": "contentset", "name": "data-contentset-id", "default": [], "dependency": { "ke
13823y": "data-source", "value": "contentset" }, "description": "Data source contentset" },
13824		{ "type": "blogGroups", "name": "data-blog-ids", "default": [], "description": "Data source blogs" },
13825		{ "type": "streams", "name": "data-stream-ids", "default": [], "description": "Data source streams" },
13826		{ "type": "calendars", "name": "data-calendar-ids", "default": [], "description": "Data source calendars" },
13827		{ "type": "text", "name": "data-amount", "default": 6, "description": "Amount of items" },
13828		{ "type": "boolean", "name": "show-load-more", "default": true, "description": "Show load-more button" },
13829		{ "type": "boolean", "name": "show-item-numbers", "default": false, "description": "Add item numbers" },
13830		{ "type": "boolean", "name": "skip-context", "default": true, "description": "Skip context item" },
13831		{ "type": "text", "name": "load-more-text", "default": null, "description": "Load-more text" },
13832		{ "type": "boolean", "name": "render-fragments", "default": false, "description": "Render fragments" },
13833		{ "type": "options", "name": "item-template-blogpost", "default": "default", "description": "Template for blogpost", 
13834			"options": [
13835				{ "value": "item-blogpost-default", "label": "Default" },  
13836				{ "value": "item-blogpost-line", "label": "Line" },
13837				{ "value": "item-blogpost-popular", "label": "Popular" },
13838				{ "value": "item-blogpost-modern", "label": "Modern" },
13839				{ "value": "item-blogpost-faux", "label": "Faux page" },
13840			] 
13841		},
13842		{ "type": "boolean", "name": "add-nav-tag", "default": false, "description": "Add nav HTML tag" }
13843	];
13844};
13845Mfe.Widgets['content-list'].prototype.onRender = function() {
13846	var fetchResult = this.fetch();
13847	if (isEmpty(fetchResult) === false) {
13848		return this.renderWidget(fetchResult);
13849	}
13850	
13851	// Return empty template with loading state
13852	var showLoadMore = this.getOption('show-load-more', 'true');
13853	if (showLoadMore === false || showLoadMore == 'false') {
13854		showLoadMore = false;
13855	} else {
13856		showLoadMore = true;
13857	}
13858	
13859	var loadMoreText = this.getOption('load-more-text', this.mfe.getTranslation('button.load-more'));
13860	var baseTemplate = this.mfe.getTemplate('widgets', 'content-list', this.baseTemplate);
13861	var templateVars = {
13862		'showLoadMore': showLoadMore,
13863		'loadMoreText': loadMoreText,
13864		'isLoading': true,
13865		'placeholderItems': []
13866	};
13867	
13868	var amount = parseInt(this.getOption('amount', 3));
13869	for (var i = 0; i < amount; i++) { 
13870		templateVars.placeholderItems.push({});
13871	}
13872	
13873	var baseTemplateHtml = baseTemplate(templateVars);
13874	return baseTemplateHtml;
13875};
13876
13877Mfe.Widgets['content-list'].prototype.onAttach = function() {
13878	// Show content if it hasnt yet
13879	/*if (this.hasContent !== true) {
13880		var fetchResult = this.fetch();
13881		if (isEmpty(fetchResult) === false) {
13882			this.displayItems(this.renderItems(fetchResult));
13883		}
13884	}*/
13885	
13886	this.attachHandlers();
13887};
13888
13889Mfe.Widgets['content-list'].prototype.fetch = function(lastItemId) {
13890	var self = this;
13891	
13892	if (isEmpty(lastItemId) === true) {
13893		lastItemId = null;
13894	}
13895	
13896	return Mfe.Widget.Content.fetchContent(this.mfe, this.options, lastItemId, 'multi', function(response) {
13897		self.displayItems(self.renderItems(response));
13898	}); 
13899};
13900
13901Mfe.Widgets['content-list'].prototype.fetchMore = function() {
13902	var $liEls = this.$el.find('li:not(.filler)');
13903	var $liLastEl = $($liEls[$liEls.length - 1]);
13904	
13905	var lastItemId = $liLastEl.attr('data-item-id');
13906	
13907	var result = this.fetch(lastItemId);
13908	if (isEmpty(result) === false) {
13909		this.displayItems(this.renderItems(result), lastItemId);
13910	}
13911};
13912
13913Mfe.Widgets['content-list'].prototype.display = function(html) {
13914	this.setElementHtml(html);
13915};
13916
13917Mfe.Widgets['content-list'].prototype.displayItems = function(itemsHtml) {
13918	this.$el.find('ul').append($(itemsHtml));
13919
13920	if (window.lazyLoad) {
13921		window.lazyLoad.update();
13922	}
13923};
13924
13925Mfe.Widgets['content-list'].prototype.renderItems = function(queryResult) {
13926	if(isEmpty(queryResult) === true) {
13927		return '';
13928	}
13929	
13930	var contentItems = queryResult.getResults();
13931	
13932	var itemTemplatesCompiled = {};
13933	
13934	var itemTemplateNames = {
13935		'blogpost': this.getOption('item-template-blogpost', 'item-blogpost-default'),
13936		'media': this.getOption('item-template-media', 'item-blogpost-media')
13937	};
13938	
13939	var showItemNumbers = this.getOption('show-item-numbers', 'false');
13940	if (showItemNumbers === false || showItemNumbers == 'false') {
13941		showItemNumbers = false;
13942	} else {
13943		showItemNumbers = true;
13944	}
13945	
13946	// Return empty template with loading state
13947	var skipContext = this.getOption('skip-context', 'false');
13948	if (skipContext === false || skipContext == 'false') {
13949		skipContext = false;
13950	} else {
13951		skipContext = true;
13952	}
13953	
13954	
13955	var renderFragments = this.getOption('render-fragments', 'false');
13956	if (renderFragments === false || renderFragments == 'false') {
13957		renderFragments = false;
13958	} else {
13959		renderFragments = true;
13960	}
13961	
13962	var amount = parseInt(this.getOption('data-amount', '3')) || 1;
13963
13964	var itemsAdded = 0;
13965	var itemsHtmlArr = [];
13966	for (var i = 0; i < contentItems.length; i++) {
13967		
13968		if (itemsAdded >= amount) {
13969			break;
13970		}
13971		
13972		var contentItem = contentItems[i];
13973		var itemType = Mfe.getContentType(contentItem);
13974		
13975		if (skipContext === true) {
13976			if (itemType == 'blogpost' && this.mfe.context == 'blog-item') {
13977				if (contentItem.getId() == this.mfe.contextObject.getId()) {
13978					continue;
13979				}
13980			}
13981		}
13982
13983
13984		if (isEmpty(itemTemplatesCompiled[itemType]) === true) {
13985			var itemTemplateName = itemTemplateNames[itemType];
13986			itemTemplatesCompiled[itemType] = this.mfe.getTemplate('widgets', 'content-list', itemTemplateName);
13987		}
13988		
13989		
13990		
13991		var templateVars = contentItem.getTemplateVars(this.mfe);
13992		templateVars.itemStyle = this.itemStyles[itemType];
13993		templateVars.itemNumber = i + 1;
13994		templateVars.showItemNumbers = showItemNumbers;
13995		templateVars.fragmentsHtml = '';
13996		
13997		if (renderFragments === true) {
13998			templateVars.fragmentsHtml = this.renderFragments(contentItem);
13999		}
14000		
14001		var itemTemplateHtml = itemTemplatesCompiled[itemType](templateVars);
14002		itemsHtmlArr.push(itemTemplateHtml);
14003		itemsAdded++;
14004	}
14005	
14006	var html = itemsHtmlArr.join('');
14007	return html;
14008};
14009
14010Mfe.Widgets['content-list'].prototype.renderWidget = function(queryResult) {
14011	var itemsHtml = this.renderItems(queryResult);
14012	
14013	var showLoadMore = this.getOption('show-load-more', 'true');
14014	if (showLoadMore === false || showLoadMore == 'false') {
14015		showLoadMore = false;
14016	} else {
14017		showLoadMore = true;
14018	}
14019	
14020	var baseTemplate = this.mfe.getTemplate('widgets', 'content-list', this.baseTemplate);
14021	var templateVars = {
14022		'showLoadMore': showLoadMore,
14023		'isLoading': false,
14024		'itemsHtml': itemsHtml,
14025		'addNavTag': this.getSettingConfig('add-nav-tag', false)
14026	};
14027	
14028	var baseTemplateHtml = baseTemplate(templateVars);
14029	return baseTemplateHtml;
14030};
14031
14032Mfe.Widgets['content-list'].prototype.renderFragments = function(cmsItem) {
14033	
14034	var fragments;
14035	if (isEmpty(cmsItem) === false) {
14036		var itemType = Mfe.getContentType(cmsItem);
14037		if (itemType == 'blogpost' || itemType == 'page') {
14038			if (isEmpty(cmsItem) === true) {
14039				return false;
14040			}
14041
14042			if (isEmpty(cmsItem.getRevisionLanguages) === true) {
14043				return false;
14044			}
14045
14046			var revisionLanguages = cmsItem.getRevisionLanguages();
14047
14048			var revisionLanguage = revisionLanguages[0];
14049			var revision = cmsItem.getRevisionByLanguage(revisionLanguages[0]);
14050
14051			fragments = revision.getFragments();
14052		} else if (itemType == 'event') {
14053			var revision = cmsItem.getRevision();
14054			fragments = revision.getFragments();
14055		} else {
14056			fragments = [];
14057		}
14058	} else {
14059		fragments = [];
14060	}
14061
14062	var skipFragmentTypes = ['CMSImageWidget', 'CMSEmbedWidget'];
14063	var fragmentsHtmlArr = [];
14064	var itemTemplate = this.mfe.getTemplate('widgets', 'cms-fragments', 'item-fragment');
14065	for (var i = 0; i < fragments.length; i++) {
14066		var fragment = fragments[i];
14067		
14068		if (skipFragmentTypes.indexOf(fragment.getType()) > -1) {
14069			continue;
14070		}
14071		
14072		fragmentsHtmlArr.push(itemTemplate(fragment.getTemplateVars())
14072);
14073	};
14074	
14075	return fragmentsHtmlArr.join('');
14076};
14077
14078Mfe.Widgets['content-list'].prototype.attachHandlers = function() {
14079	var self = this;
14080	this.$el.find('a[data-action="load-more"]').on('click', function(event){
14081		
14082		self.fetchMore();
14083
14084		event.preventDefault();
14085		return false;
14086	});
14087};
14088
14089Mfe.Widgets['content-navigation'] = function(mfe, widgetId, options) {
14090	this.mfe = mfe;
14091	this.name = 'content-navigation';
14092	this.baseTemplate = 'base-default';
14093	Mfe.Widget.apply(this, arguments);
14094};
14095Mfe.Widgets['content-navigation'].inherits(Mfe.Widget);
14096Mfe.Widgets['content-navigation'].title = 'Content navigation';
14097Mfe.Widgets['content-navigation'].getSettings = function() {
14098	var settings = {
14099		'sections': [
14100			{ 
14101				'name': 'general', 
14102				'title': 'General', 
14103				'settings': [
14104					{ "type": "options", "name": "style", "default": "default", "description": "Style", "options": [ 
14105							{ "value": "default", "label": "Default" }
14106						]
14107					}
14108				]
14109			},
14110			{
14111				'name': 'data', 
14112				'title': 'Data', 
14113				'settings': [
14114					{ "type": "options", "name": "data-source", "default": "blogs", "description": "Data source", "options": [ { "value": "context", "label": "Context" } ] },
14115					{ "type": "blogGroups", "name": "data-blog-ids", "default": [], "description": "Data source blogs" },
14116					{ "type": "text", "name": "data-amount", "default": 6, "description": "Amount of items" }
14117				]
14118			}
14119		]
14120	};
14121	
14122	return settings;
14123};
14124
14125Mfe.Widgets['content-navigation'].prototype.onRender = function() {
14126	var context = this.mfe.context;
14127	var contextObj = this.mfe.contextObject;
14128	
14129	if (typeof contextObj !== 'undefined') {
14130	    
14131	    var postGroupId = contextObj.getPostGroupId();
14132
14133	    var fetchResult = this.fetch(contextObj.getQueryId(), [ postGroupId ]);
14134	    if (isEmpty(fetchResult[0]) === false && isEmpty(fetchResult[1]) === false) {
14135		    return this.renderWidget(fetchResult[0], fetchResult[1]);
14136	    }
14137
14138	}
14139	
14140	var optionStyle = this.getOption('style', 'default');
14141	var baseTemplate = this.mfe.getTemplate('widgets', 'content-navigation', this.baseTemplate);
14142
14143	// Return empty template with loading state
14144	
14145	var templateVars = {
14146		'style': optionStyle,
14147		'isLoading': true,
14148		'placeholderItems': []
14149	};
14150	
14151	var amount = parseInt(this.getOption('data-amount', 3));
14152	for (var i = 0; i < amount; i++) { 
14153		templateVars.placeholderItems.push({});
14154	}
14155	
14156	var baseTemplateHtml = baseTemplate(templateVars);
14157	return baseTemplateHtml;
14158};
14159
14160Mfe.Widgets['content-navigation'].prototype.onAttach = function() {
14161	// Show content if it hasnt yet
14162	/*if (this.hasContent !== true) {
14163		var fetchResult = this.fetch();
14164		if (isEmpty(fetchResult) === false) {
14165			this.displayItems(this.renderItems(fetchResult));
14166		}
14167	}*/
14168	 
14169	this.attachHandlers();
14170};
14171
14172Mfe.Widgets['content-navigation'].prototype.fetch = function(publicationTs, postGroupIds, cb) {
14173	var self = this;
14174	
14175	var newItems = this.fetchNewer(publicationTs, postGroupIds, function(result, response){
14176		self.$el.find('.newer .items').html(self.renderTypeItems('newer', response));
14177	});
14178	
14179	var olderItems = this.fetchOlder(publicationTs, postGroupIds, function(result, response){
14180		self.$el.find('.older .items').html(self.renderTypeItems('older', response));
14181	});
14182
14183	var result = [
14184		newItems, 
14185		olderItems
14186	];
14187	
14188	return result;
14189};
14190
14191Mfe.Widgets['content-navigation'].prototype.fetchOlder = function(publicationTs, postGroupIds, cb) {
14192	var queryObj = {
14193		'type': 'blogposts',
14194		'mode': 'before',
14195		'before': publicationTs,
14196		'amount': 1,
14197		'sortOn': 'publication',
14198		'filters': [
14199			{ "postGroups": postGroupIds }
14200		]
14201	};
14202
14203	var siteName = getObjValue('site-name', null, this.options);
14204	if (isEmpty(siteName) === true || siteName.length == 0) {
14205		siteName = this.mfe.siteBundle.getName();
14206	}
14207
14208	return Mfe.Api.Sites.query(
14209		siteName,
14210		queryObj,
14211		function(result, response) {
14212			cb(result, response);
14213		}
14214	);
14215};
14216
14217Mfe.Widgets['content-navigation'].prototype.fetchNewer = function(publicationTs, postGroupIds, cb) {
14218	var queryObj = {
14219		'type': 'blogposts',
14220		'mode': 'after',
14221		'after': publicationTs,
14222		'amount': 1,
14223		'sortOn': 'publication',
14224		'filters': [
14225			{ "postGroups": postGroupIds }
14226		]
14227	};
14228
14229	var siteName = getObjValue('site-name', null, this.options);
14230	if (isEmpty(siteName) === true || siteName.length == 0) {
14231		siteName = this.mfe.siteBundle.getName();
14232	}
14233
14234	return Mfe.Api.Sites.query(
14235		siteName,
14236		queryObj,
14237		function(result, response) {
14238			cb(result, response);
14239		}
14240	);
14241};
14242
14243Mfe.Widgets['content-navigation'].prototype.renderItems = function(queryResultNewer, queryResultOlder) {
14244	var newerHtml = this.renderTypeItems('newer', queryResultNewer);
14245	var olderHtml = this.renderTypeItems('older', queryResultOlder);
14246	
14247	return [newerHtml, olderHtml];
14248};
14249
14250Mfe.Widgets['content-navigation'].prototype.renderTypeItems = function(type, queryResult) {
14251	console.log('rendering items shit');
14252	
14253	var contentItems;
14254	if (typeof queryResult.getResults !== 'undefined') {
14255		contentItems = queryResult.getResults();
14256	} else {
14257		contentItems = queryResult;
14258	}
14259	
14260	var itemsHtmlArr = [];
14261	var itemTemplate = this.mfe.getTemplate('widgets', 'content-navigation', 'item-default-' + type);
14262	
14263	for (var i = 0; i < contentItems.length; i++) {
14264		var contentItem = contentItems[i];
14265		if (isEmpty(contentItem) === true) {
14266			continue;
14267		}
14268		
14269		var templateVars = contentItem.getTemplateVars(this.mfe);
14270				
14271		var itemHtml = itemTemplate(templateVars);
14272		
14273		itemsHtmlArr.push(itemHtml);
14274	}
14275
14276	var itemsHtml = itemsHtmlArr.join('');
14277	return itemsHtml;
14278};
14279
14280
14281
14282Mfe.Widgets['content-navigation'].prototype.display = function(html) {
14283	this.setElementHtml(html);
14284};
14285
14286Mfe.Widgets['content-navigation'].prototype.displayItems = function(itemsHtml) {
14287	this.$el.find('ul li.placeholder').remove();
14288
14289	var $fillerEls = this.$el.find('ul li.filler');
14290	$(itemsHtml).insertBefore($($fillerEls[0]));
14291		
14292	if (window.lazyLoad) {
14293		window.lazyLoad.update();
14294	}
14295};
14296
14297/*Mfe.Widgets['content-navigation'].prototype.renderItems = function(queryResult) {
14298	var contentItems;
14299	
14300	if (typeof queryResult.getResults !== 'undefined') {
14301		contentItems = queryResult.getResults();
14302	} else {
14303		contentItems = queryResult;
14304	}
14305	
14306	var itemTemplatesCompiled = {};
14307	
14308	var itemsHtmlArr = [];
14309	
14310	//var optionDataAmount = parseInt(this.getOption('data-amount', 0)) || 0;
14311
14312	for (var i = 0; i < contentItems.length; i++) {
14313		var contentItem = contentItems[i];
14314		if (isEmpty(contentItem) === true) {
14315			continue;
14316		}
14317		
14318		var itemType = Mfe.getContentType(contentItem);
14319		
14320		if (isEmpty(itemTemplatesCompiled[itemType]) === true) {
14321			var itemTemplateName = this.itemTemplates[itemType];
14322			itemTemplatesCompiled[itemType] = this.mfe.getTemplate('widgets', 'content-navigation', itemTemplateName);
14323		}
14324		
14325		var templateVars = contentItem.getTemplateVars(this.mfe);
14326		templateVars.itemStyle = this.itemStyles[itemType];
14327		
14328		var itemTemplateHtml = itemTemplatesCompiled[itemType](templateVars);
14329		itemsHtmlArr.push(itemTemplateHtml);
14330	}
14331	
14332	var html = itemsHtmlArr.join('');
14333	return html;
14334};
14335*/
14336Mfe.Widgets['content-navigation'].prototype.renderWidget = function(queryResultNewer, queryResultOlder) {
14337	var itemsHtmlArr = this.renderItems(queryResultNewer, queryResultOlder);
14338	
14339	var baseTemplate = this.mfe.getTemplate('widgets', 'content-navigation', this.baseTemplate);
14340	var templateVars = {
14341		'isLoading': false,
14342		'newerHtml': itemsHtmlArr[0],
14343		'olderHtml': itemsHtmlArr[1]
14344	};
14345	
14346	var baseTemplateHtml = baseTemplate(templateVars);
14347	return baseTemplateHtml;
14348};
14349
14350Mfe.Widgets['content-navigation'].prototype.onSettingChanged = function(settingName, settingValue) {
14351	this.options[settingName] = settingValue;
14352	
14353	if (settingName == 'items-') {
14354
14355	} else {
14356		var html = this.onRender();
14357		this.$el.html(html);
14358	}
14359};
14360
14361Mfe.Widgets['content-navigation'].prototype.attachHandlers = function() {
14362	var self = this;
14363	this.$el.find('button[data-action="load-more"]').on('click', function(event){
14364		
14365		self.fetchMore();
14366
14367		event.preventDefault();
14368		return false;
14369	});
14370};
14371
14372Mfe.Widgets['content-popular'] = function(mfe, widgetId, options) {
14373	this.mfe = mfe;
14374	this.name = 'content-popular';
14375	this.baseTemplate = 'base-default';
14376	Mfe.Widget.apply(this, arguments);
14377};
14378Mfe.Widgets['content-popular'].inherits(Mfe.Widget);
14379Mfe.Widgets['content-popular'].title = 'Content popular';
14380Mfe.Widgets['content-popular'].getSettings = function() {
14381	return [
14382		{ "type": "boolean", "name": "enable-lazy-load", "default": false, "description": "Enable lazy loading of images" },
14383		{ "type": "options", "name": "style", "default": "default", "description": "Style", "options": [ { "value": "default", "label": "Default" },  { "value": "pattern-1-2-2-1", "label": "Pattern (1-2,2-1)" } ] },
14384		{ "type": "text", "name": "data-site-name", "default": null, "description": "Data site name" },
14385		{ "type": "options", "name": "data-source", "default": "blogs", "description": "Data source", "options": [ { "value": "blogs", "label": "Blogs" }, { "value": "blogs-tags", "label": "Blogs using tags" }, { "value": "streams", "label": "Streams" },  { "value": "calendars", "label": "Calendars" },  { "value": "contentset", "label": "Contentset" }  ] },
14386		{ "type": "contentset", "name": "data-contentset-id", "default": [], "dependency": { "key": "data-source", "value": "contentset" }, "description": "Data source contentset" },
14387		{ "type": "blogGroups", "name": "data-blog-ids", "default": [], "description": "Data source blogs" },
14388		{ "type": "text", "name": "data-blog-tags", "default": [], "dependency": { "key": "data-source", "value": "blogs-tags" }, "description": "Blog tags (comma separated)" },
14389		{ "type": "streams", "name": "data-stream-ids", "default": [], "description": "Data source streams" },
14390		{ "type": "calendars", "name": "data-calendar-ids", "default": [], "description": "Data source calendars" },
14391		{ "type": "text", "name": "data-amount", "default": 5, "description": "Amount of items" }
14392	];
14393};
14394Mfe.Widgets['content-popular'].prototype.onRender = function() {
14395	var fetchResult = this.fetch();
14396	if (isEmpty(fetchResult) === false) {
14397		return this.renderWidget(fetchResult);
14398	}
14399	
14400	var optionStyle = this.getOption('style', 'default');
14401
14402	// Return empty template with loading state
14403	
14404	var showLoadMore = this.getOption('show-load-more', 'true');
14405	if (showLoadMore === false || showLoadMore == 'false') {
14406		showLoadMore = false;
14407	} else {
14408		showLoadMore = true;
14409	}
14410	
14411	var baseTemplate = this.mfe.getTemplate('widgets', 'content-popular', this.baseTemplate);
14412	var templateVars = {
14413		'style': optionStyle,
14414		'isLoading': true,
14415		'placeholderItems': []
14416	};
14417
14418	var amount = parseInt(this.getOption('data-amount', 5));
14419	for (var i = 0; i < amount; i++) { 
14420		templateVars.placeholderItems.push({});
14421	}
14422	
14423	var baseTemplateHtml = baseTemplate(templateVars);
14424	return baseTemplateHtml;
14425};
14426
14427Mfe.Widgets['content-popular'].prototype.onAttach = function() {
14428	// Show content if it hasnt yet
14429	/*if (this.hasContent !== true) {
14430		var fetchResult = this.fetch();
14431		if (isEmpty(fetchResult) === false) {
14432			this.displayItems(this.renderItems(fetchResult));
14433		}
14434	}*/
14435	
14436	this.attachHandlers();
14437};
14438
14439Mfe.Widgets['content-popular'].prototype.fetch = function(lastItemId) {
14440	var self = this;
14441	
14442	if (isEmpty(lastItemId) === true) {
14443		lastItemId = null;
14444	}
14445	
14446	return Mfe.Widget.Content.fetchContent(this.mfe, this.options, lastItemId, 'multi', function(response) {
14447		self.displayItems(self.renderItems(response));
14448	}); 
14449};
14450
14451Mfe.Widgets['content-popular'].prototype.display = function(html) {
14452	this.setElementHtml(html);
14453
14454	if (window.lazyLoad) {
14455		window.lazyLoad.update();
14456	}
14457};
14458
14459Mfe.Widgets['content-popular'].prototype.displayItems = function(itemsHtml) {
14460	this.$el.find('ul li.placeholder').remove();
14461
14462	this.$el.find('ul').append($(itemsHtml));
14463};
14464
14465Mfe.Widgets['content-popular'].prototype.renderItems = function(queryResult) {
14466	var contentItems = queryResult.getResults();
14467	
14468	var itemTemplate = this.mfe.getTemplate('widgets', 'content-popular', 'item-default');
14469	
14470	var itemsHtmlArr = [];
14471	for (var i = 0; i < contentItems.length; i++) {
14472		var contentItem = contentItems[i];
14473		var itemType = Mfe.getContentType(contentItem);
14474		
14475		var templateVars = contentItem.getTemplateVars(this.mfe);
14476		templateVars.itemNumber = i + 1;
14477		templateVars.itemStyle = 'item-default';
14478		templateVars.enableLazyLoad = this.getSettingConfig('enable-lazy-load', false);
14479		
14480		var itemTemplateHtml = itemTemplate(templateVars);
14481		itemsHtmlArr.push(itemTemplateHtml);
14482	}
14483	
14484	var html = itemsHtmlArr.join('');
14485	return html;
14486};
14487
14488Mfe.Widgets['content-popular'].prototype.renderWidget = function(queryResult) {
14489	var itemsHtml = this.renderItems(queryResult);
14490	
14491	var optionStyle = this.getOption('style', 'default');
14492	
14493	var baseTemplate = this.mfe.getTemplate('widgets', 'content-popular', this.baseTemplate);
14494	var templateVars = {
14495		'style': optionStyle,
14496		'isLoading': false,
14497		'itemsHtml': itemsHtml
14498	};
14499	
14500	var baseTemplateHtml = baseTemplate(templateVars);
14501	return baseTemplateHtml;
14502};
14503
14504Mfe.Widgets['content-popular'].prototype.attachHandlers = function() {
14505
14506};
14507
14508Mfe.Widgets['content-scroller'] = function(mfe, widgetId, options) {
14509	this.mfe = mfe;
14510	this.name = 'content-scroller';
14511	this.baseTemplate = 'base-default';
14512	this.itemTemplates = {
14513		'blogpost': 'item-blogpost-default',
14514		'media': 'item-media-default',
14515		'event': 'item-event-default'
14516	};
14517	this.itemStyles = {
14518		'blogpost': 'default',
14519		'media': 'default',
14520		'event': 'default'
14521	};
14522	this.scrollVal = 400;
14523	
14524	Mfe.Widget.apply(this, arguments);
14525};
14526Mfe.Widgets['content-scroller'].inherits(Mfe.Widget);
14527Mfe.Widgets['content-scroller'].title = 'Content scroller';
14528Mfe.Widgets['content-scroller'].getSettings = function() {
14529	var settings = {
14530		'sections': [
14531			{ 
14532				'name': 'general', 
14533				'title': 'General', 
14534				'settings': [
14535					{ "type": "options", "name": "style", "default": "default", "description": "Style", "options": [ 
14536							{ "value": "default", "label": "Default" }
14537						]
14538					},
14539					{ "type": "boolean", "name": "enable-lazy-load", "default": false, "description": "Enable lazy loading of images" },
14540					{ "type": "options", "name": "item-template-blogpost", "default": "item-blogpost-default", "description": "Blogpost template", "options": [ { "value": "item-blogpost-default", "label": "Default" },  { "value": "item-blogpost-fulllink", "label": "Fully clickable" } ] },
14541					{ "type": "options", "name": "item-template-media", "default": "item-media-default", "description": "Media template", "options": [ { "value": "item-media-default", "label": "Default" } ] }
14542				]
14543			},
14544			{ 
14545				'name': 'data', 
14546				'title': 'Data', 
14547				'settings': [
14548					{ "type": "text", "name": "data-site-name", "default": null, "description": "Data site name" },
14549					{ "type": "options", "name": "data-source", "default": "blogs", "description": "Data source", "options": [ { "value": "context", "label": "Context" },  { "value": "blogs", "label": "Blogs" },  { "value": "streams", "label": "Streams" },  { "value": "calendars", "label": "Calendars" } ] },
14550					{ "type": "blogGroups", "name": "data-blog-ids", "default": [], "dependency": { "key": "data-source", "value": "blogs" }, "description": "Data source blogs" },
14551					{ "type": "streams", "name": "data-stream-ids", "default": [], "dependency": { "key": "data-source", "value": "streams" }, "description": "Data source streams" },
14552					{ "type": "calendars", "name": "data-calendar-ids", "default": [], "dependency": { "key": "data-source", "value": "calendars" }, "description": "Data source calendars" },
14553					{ "type": "text", "name": "data-amount", "default": 6, "description": "Amount of items" }
14554				]
14555			}
14556		]
14557	};
14558	
14559	return settings;
14560};
14561Mfe.Widgets['content-scroller'].prototype.onRender = function() {
14562	var fetchResult = this.fetch();
14563	if (isEmpty(fetchResult) === false) {
14564		return this.renderWidget(fetchResult);
14565	}
14566
14567	// Return empty template with loading state
14568	/*var showPageNav = this.getOption('show-page-nav', 'true');
14569	if (showPageNav === false || showPageNav == 'false') {
14570		showPageNav = false;
14571	} else {
14572		showPageNav = true;
14573	}*/
14574	
14575	var baseTemplate = this.mfe.getTemplate('widgets', 'content-scroller', this.baseTemplate);
14576
14577	var templateVars = {
14578		/*'showPageNav': showPageNav,*/
14579		'isLoading': true
14580	};
14581	
14582	var baseTemplateHtml = baseTemplate(templateVars);
14583	return baseTemplateHtml;
14584};
14585
14586Mfe.Widgets['content-scroller'].prototype.onAttach = function() {
14587	this.attachHandlers();
14588	
14589	this.scrollVal =this.$el.outerWidth();
14590	//this.scrollVal = 400;
14591};
14592
14593Mfe.Widgets['content-scroller'].prototype.fetch = function() {
14594	var self = this;
14595	
14596	return Mfe.Widget.Content.fetchContent(this.mfe, this.options, null, 'multi', function(response) {
14597		
14598		self.display(self.renderWidget(response));
14599		//self.attachHandlers();
14600	}); 
14601};
14602
14603Mfe.Widgets['content-scroller'].prototype.display = function(html) {
14604	this.setElementHtml(html);
14605
14606	if (window.lazyLoad) {
14607		window.lazyLoad.update();
14608	}
14609};
14610
14611Mfe.Widgets['content-scroller'].prototype.renderItems = function(queryResult) {
14612	var contentItems = queryResult.getResults();
14613	
14614	this.loadItemTemplates();
14615	
14616	var itemTemplatesCompiled = {};
14617	
14618	var itemsHtmlArr = [];
14619	for (var i = 0; i < contentItems.length; i++) {
14620		var contentItem = contentItems[i];
14621		itemsHtmlArr.push(this.renderItem(contentItem));
14622	}
14623	
14624	var html = itemsHtmlArr.join('');
14625	return html;
14626};
14627
14628
14629Mfe.Widgets['content-scroller'].prototype.loadItemTemplates = function() {
14630	var objectNames = Object.keys(this.itemTemplates);
14631	for (var i = 0; i < objectNames.length; i++) {
14632		var objectName = objectNames[i];
14633		var optionObjectTemplate = this.getOption('item-template-' + objectName, 'item-' + objectName + '-default');
14634		this.itemTemplates[objectName] = optionObjectTemplate;
14635	}
14636};
14637
14638Mfe.Widgets['content-scroller'].prototype.renderItem = function(contentItem) {
14639	var itemType = Mfe.getContentType(contentItem);
14640	
14641	var itemTemplateName = this.itemTemplates[itemType];
14642	var itemTemplate = this.mfe.getTemplate('widgets', 'content-scroller', itemTemplateName);
14643
14644	var templateVars = contentItem.getTemplateVars(this.mfe);
14645	templateVars.itemStyle = this.itemStyles[itemType];
14646	templateVars.enableLazyLoad = this.getSettingConfig('enable-lazy-load', false);
14647	
14648	var itemTemplateHtml = itemTemplate(templateVars);
14649
14650	return itemTemplateHtml;
14651};
14652
14653Mfe.Widgets['content-scroller'].prototype.renderWidget = function(queryResult) {
14654	var contentItems = queryResult.getResults();
14655
14656	var baseTemplate = this.mfe.getTemplate('widgets', 'content-scroller', this.baseTemplate);
14657	if (isEmpty(baseTemplate) === true) {
14658		return '';
14659	}
14660	
14661	var optionStyle = this.getOption('style', 'default');
14662	
14663	var itemsHtml = this.renderItems(queryResult);
14664	
14665	var templateVars = {
14666		'style': optionStyle,
14667		'itemsHtml': itemsHtml
14668		/*'isLoading': false,
14669		'slidesHtml': slidesHtml,
14670		'leftSlideHtml': stageSlides.leftSlideHtml,
14671		'currentSlideHtml': stageSlides.currentSlideHtml,
14672		'rightSlideHtml': stageSlides.rightSlideHtml,
14673		'leftNavEnabled': stageSlides.leftSlideHtml.length > 0,
14674		'rightNavEnabled': stageSlides.rightSlideHtml.length > 0*/
14675	};
14676	
14677	var baseTemplateHtml = baseTemplate(templateVars);
14678	return baseTemplateHtml;
14679};
14680
14681Mfe.Widgets['content-scroller'].prototype.scrollLeft = function() {
14682	var $transformEl = this.$el.find('.content.base-default ul');
14683	
14684	$transformEl.addClass('is-scrolling');
14685	var $scrollEl = this.$el.find('.scroll');
14686	
14687	var scrollLeft = $scrollEl[0].scrollLeft;
14688	var scrollVal = this.scrollVal;
14689	
14690	var scrollTo = scrollLeft - scrollVal;
14691	
14692	if (scrollLeft <= 0) {
14693		return;
14694	}
14695	
14696	if (scrollTo < 0) {
14697		scrollTo = 0;
14698		scrollVal = scrollLeft;
14699	}
14700	
14701	this.scrollTo = scrollTo;
14702	
14703	$transformEl.css('transform', 'translateX('+scrollVal+'px)');
14704	
14705	//Mfe.Utils.DOM.scrollToLeft($scrollEl[0], 0, 600);
14706	//$scrollEl.scrollLeft(400);
14707};
14708
14709Mfe.Widgets['content-scroller'].prototype.scrollRight = function() {
14710	var $transformEl = this.$el.find('.content.base-default ul');
14711	var $scrollEl = this.$el.find('.scroll');
14712	 
14713	$transformEl.addClass('is-scrolling');
14714	 
14715	var scrollLeft = $scrollEl[0].scrollLeft;
14716	var scrollVal = 0 - this.scrollVal;
14717	
14718	var scrollTo = scrollLeft - scrollVal; 
14719	var scrollWidth = $scrollEl[0].scrollWidth;
14720	
14721	var maxScrollLeft = scrollWidth - this.viewWidth;
14722	
14723	if (scrollTo > maxScrollLeft) {
14724		this.scrollTo = maxScrollLeft;
14725		scrollVal = scrollLeft - maxScrollLeft;
14726	} else {
14727		this.scrollTo = scrollTo;
14728	}
14729	
14730	$transformEl.css('transform', 'translateX('+scrollVal+'px)');
14731};
14732
14733Mfe.Widgets['content-scroller'].prototype.updateNavButtons = function(scrollLeft, viewWidth, clientWidth) {
14734	var $contentEl = this.$el.find('.content.base-default');
14735	
14736	if (scrollLeft <= 0) {
14737		if ($contentEl.hasClass('nav-left-enabled')) {
14738			$contentEl.removeClass('nav-left-enabled');
14739		}
14740	} else if (scrollLeft > 0) {
14741		if ($contentEl.hasClass('nav-left-enabled') === false) {
14742			$contentEl.addClass('nav-left-enabled');
14743		}
14744	}
14745	
14746	if (scrollLeft >= this.maxScrollLeft) {
14747		if ($contentEl.hasClass('nav-right-enabled')) {
14748			this.$el.find('.content.base-default').removeClass('nav-right-enabled');
14749		}
14750		
14751	} else {
14752		if ($contentEl.hasClass('nav-right-enabled') === false) {
14753			this.$el.find('.content.base-default').addClass('nav-right-enabled');
14754		}
14755	}
14756};
14757
14758Mfe.Widgets['content-scroller'].prototype.onWindowResize = function() {
14759	
14760};
14761
14762Mfe.Widgets['content-scroller'].prototype.attachHandlers = function() {
14763	var self = this;
14764
14765	var $scrollEl = self.$el.find('.scroll');
14766
14767	this.viewWidth = this.$el[0].clientWidth;
14768	this.itemsClientWidth = this.$el.find('.content.base-default ul')[0].clientWidth;
14769	
14770	var scrollWidth = $scrollEl[0].scrollWidth;
14771	this.maxScrollLeft = scrollWidth - this.viewWidth;
14772	
14773	var $scrollEl = self.$el.find('.content.base-default');
14774	this.updateNavButtons($scrollEl[0].scrollLeft, self.viewWidth, self.itemsClientWidth);
14775	
14776	//console.log('attaching scroll handlers');
14777	//console.log($scrollEl);
14778	//console.log(this.$el.find('.content'));
14779	
14780	this.$el.find('.content .scroll').off('scroll');
14781	this.$el.find('.content .scroll').on('scroll', function(event){
14782	//$scrollEl.off('scroll');
14783	//$scrollEl.on('scroll', function(event){
14784	//this.$el.find('.content .scroll')[0].addEventListener('scroll', function(event){
14785	
14786		var $scrollEl = $(this);
14787		//console.log('scroll');
14788		//console.log($scrollEl[0]);
14789		
14790		self.updateNavButtons($scrollEl[0].scrollLeft, self.viewWidth, self.itemsClientWidth);
14791		/*var $buttonEl = $(this);
14792		if ($buttonEl.hasClass('nav-left') === true) {
14793			self.slide('left');
14794		} else if ($buttonEl.hasClass('nav-right') === true) {
14795			self.slide('right');
14796		}*/
14797	});
14798
14799	this.$el.off('click', '.nav-arrow');
14800	this.$el.on('click', '.nav-arrow', function(event) {
14801		var $buttonEl = $(this);
14802		
14803		if ($buttonEl.hasClass('nav-left')) {
14804			self.scrollLeft();
14805		} else if ($buttonEl.hasClass('nav-right')) {
14806			self.scrollRight();
14807		}
14808	});
14809	
14810	this.$el.off(transitionEvents, 'ul');
14811	var transitionEvents = 'webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend';
14812	this.$el.on(transitionEvents, 'ul', function(e){
14813		if (e.target.nodeName != 'UL') {
14814			return;
14815		}
14816		
14817		var $transformEl = self.$el.find('.content.base-default ul');
14818		var $scrollEl = self.$el.find('.scroll');
14819		
14820		$transformEl.removeClass('is-scrolling');
14821		
14822		$transformEl.css('transform', 'translateX(0px)');
14823		$scrollEl[0].scrollLeft = self.scrollTo;
14824		
14825		self.updateNavButtons($scrollEl[0].scrollLeft, self.viewWidth, self.itemsClientWidth);
14826		
14827		/*if (e.currentTarget != e.target) {
14828			return;
14829		}*/
14830		
14831		//self.onSlideFinished(self.slideDirection, self.slideToIndex);
14832	});
14833	
14834};
14835
14836Mfe.Widgets['content-slider'] = function(mfe, widgetId, options) {
14837	this.mfe = mfe;
14838	this.name = 'content-slider';
14839	this.baseTemplate = 'base-default';
14840	this.itemTemplates = {
14841		'blogpost': 'item-blogpost-default',
14842		'media': 'item-media-default',
14843		'event': 'item-event-default',
14844		'menuitem': 'item-menuitem-default',
14845		'datasetrecord': 'item-datasetrecord-default'
14846	};
14847	this.itemStyles = {
14848		'blogpost': 'default',
14849		'media': 'default',
14850		'event': 'default',
14851		'menuitem': 'default',
14852		'datasetrecord': 'default'
14853	};
14854	this.isSliding = false;
14855	this.slideIndex = 0;
14856	Mfe.Widget.apply(this, arguments);
14857};
14858Mfe.Widgets['content-slider'].inherits(Mfe.Widget);
14859Mfe.Widgets['content-slider'].title = 'Content slider';
14860Mfe.Widgets['content-slider'].getSettings = function() {
14861	var settings = {
14862		'sections': [
14863			{ 
14864				'name': 'general', 
14865				'title': 'General', 
14866				'settings': [
14867					{ "type": "text", "name": "height", "default": "240px", "description": "Height" },
14868					{ "type": "boolean", "name": "auto-scroll", "default": false, "description": "Auto scroll" },
14869					{ "type": "text", "name": "auto-scroll-time", "default": '4000', "description": "Auto scroll time in ms" },
14870					{ "type": "largetext", "name": "custom-template", "default": '', "description": "Custom template" },
14871					{ "type": "boolean", "name": "show-overlay", "default": false, "description": "Show overlay" },
14872					{ "type": "boolean", "name": "show-overlay", "default": false, "description": "Show overlay" },
14873					{ "type": "boolean", "name": "show-scroll-info", "default": false, "description": "Show scroll indicator" },
14874					{ "type": "options", "name": "item-template-blogpost", "default": "item-blogpost-default", "description": "Blogpost template", "options": [ 
14875							{ "value": "item-blogpost-default", "label": "Default" }, 
14876							{ "value": "item-blogpost-fulllink", "label": "Fully clickable" }
14877					]},
14878					{ "type": "options", "name": "item-template-datasetrecord", "default": "item-datasetrecord-default", "description": "Dataset record template", "options": [ 
14879							{ "value": "item-datasetrecord-default", "label": "Default" }, 
14880							{ "value": "item-datasetrecord-custom", "label": "Fully clickable" }
14881					]},
14882					{ "type": "options", "name": "nav-position", "default": "inside", "description": "Navigation position", "options": [ 
14883							{ "value": "inside", "label": "Inside" }, 
14884							{ "value": "outside", "label": "Outside" } 
14885					]},
14886					{ "type": "options", "name": "nav-style", "default": "inside", "description": "Navigation style", "options": [ 
14887							{ "value": "chevron", "label": "Chevron" }, 
14888							{ "value": "chevron-regular", "label": "Chevron regular" }, 
14889							{ "value": "anglequote", "label": "Angle quote" } 
14890					]},
14891					{ "type": "options", "name": "nav-size", "default": "inside", "description": "Navigation size", "options": [ 
14892							{ "value": "small", "label": "Small" }, 
14893							{ "value": "medium", "label": "Medium" },
14894							{ "value": "large", "label": "Large" }
14895					]},
14896				]
14897			},
14898			{ 
14899				'name': 'data', 
14900				'title': 'Data', 
14901				'settings': [
14902					{ "type": "text", "name": "data-site-name", "default": null, "description": "Data site name" },
14903					{ "type": "options", "name": "data-source", "default": "blogs", "description": "Data source", "options": [ 
14904							{ "value": "context", "label": "Context" }, 
14905							{ "value": "blogs", "label": "Blogs" }, 
14906							{ "value": "streams", "label": "Streams" },  
14907							{ "value": "calendars", "label": "Calendars" } ,
14908							{ "value": "menu", "label": "Menu" } ,
14909							{ "value": "contentset", "label": "Contentset" } ,
14910							{ "value": "datasetView", "label": "Dataset view" } 
14911					] },
14912					{ "type": "blogGroups", "name": "data-blog-ids", "default": [], "dependency": { "key": "data-source", "value": "blogs" }, "description": "Data source blogs" },
14913					{ "type": "streams", "name": "data-stream-ids", "default": [], "dependency": { "key": "data-source", "value": "streams" }, "description": "Data source streams" },
14914					{ "type": "calendars", "name": "data-calendar-ids", "default": [], "dependency": { "key": "data-source", "value": "calendars" }, "description": "Data source calendars" },
14915					{ "type": "contentset", "name": "data-contentset-id", "default": [], "dependency": { "key": "data-source", "value": "contentset" }, "description": "Data source contentset" },
14916					{ "type": "text", "name": "data-dataset-view-id", "default": [], "dependency": { "key": "data-source", "value": "datasetView" }, "description": "Data source dataset view ID" },
14917					{ "type": "text", "name": "data-amount", "default": 6, "description": "Amount of items" },
14918					{ "type": "menu", "name": "data-menu-id", "default": null, "description": "Menu", "depen
14918dency": { "key": "data-source", "value": "menu" } }
14919				]
14920			}
14921		]
14922	};
14923	
14924	return settings;
14925};
14926Mfe.Widgets['content-slider'].prototype.onRender = function() {
14927	var fetchResult = this.fetch();
14928	if (isEmpty(fetchResult) === false) {
14929		return this.renderWidget(fetchResult);
14930	}
14931
14932	// Return empty template with loading state
14933	/*var showPageNav = this.getOption('show-page-nav', 'true');
14934	if (showPageNav === false || showPageNav == 'false') {
14935		showPageNav = false;
14936	} else {
14937		showPageNav = true;
14938	}*/
14939	
14940	var baseTemplate = this.mfe.getTemplate('widgets', 'content-slider', this.baseTemplate);
14941	var optionHeight = this.getOption('height', '240px');
14942	var optionNavPosition = this.getOption('nav-position', 'inside');
14943	var optionNavStyle = this.getOption('nav-style', 'chevron');
14944	var optionNavSize = this.getOption('nav-size', 'medium');
14945	var optionShowOverlay = this.getOptionBoolean('show-overlay', false);
14946	
14947	var templateVars = {
14948		/*'showPageNav': showPageNav,*/
14949		'height': optionHeight,
14950		'navPosition': optionNavPosition,
14951		'navStyle': optionNavStyle,
14952		'navSize': optionNavSize,
14953		'showOverlay': optionShowOverlay,
14954		'isLoading': true
14955	};
14956	
14957	var baseTemplateHtml = baseTemplate(templateVars);
14958	return baseTemplateHtml;
14959};
14960
14961Mfe.Widgets['content-slider'].prototype.onAttach = function() {
14962	this.attachHandlers();
14963};
14964
14965Mfe.Widgets['content-slider'].prototype.onRequestWidgetStyles = function() {
14966	var optionHeight = this.getOption('height', '240px');
14967	
14968	var styles = [];
14969	styles.push('--height: ' + optionHeight);
14970	
14971	return styles.join('; ');
14972};
14973
14974Mfe.Widgets['content-slider'].prototype.fetch = function() {
14975	var self = this;
14976	
14977	return Mfe.Widget.Content.fetchContent(this.mfe, this.options, null, 'single', function(response) {
14978		self.display(self.renderWidget(response));
14979		self.attachHandlers();
14980	}); 
14981};
14982
14983Mfe.Widgets['content-slider'].prototype.display = function(html) {
14984	this.setElementHtml(html);
14985};
14986
14987Mfe.Widgets['content-slider'].prototype.renderItems = function(queryResult) {
14988	var contentItems = queryResult.getResults();
14989
14990	var itemTemplatesCompiled = {};
14991	
14992	var itemsHtmlArr = [];
14993	for (var i = 0; i < contentItems.length; i++) {
14994		var contentItem = contentItems[i];
14995		itemsHtmlArr.push(this.renderItem(contentItem));
14996	}
14997	
14998	var html = itemsHtmlArr.join('');
14999	return html;
15000};
15001
15002Mfe.Widgets['content-slider'].prototype.renderItem = function(contentItem) {
15003	var itemType = Mfe.getContentType(contentItem);
15004
15005	var itemTemplateName = this.itemTemplates[itemType];
15006
15007	let customTemplate = this.getOption('custom-template', '');
15008	
15009	let itemTemplate;
15010	if (customTemplate.trim().length > 0) {
15011		itemTemplate = Handlebars.compile(customTemplate);
15012	} else {
15013		itemTemplate = this.mfe.getTemplate('widgets', 'content-slider', itemTemplateName);
15014	}
15015	
15016	if (contentItem.getTemplateVars) {
15017		var templateVars = contentItem.getTemplateVars(this.mfe);
15018	} else {
15019		var templateVars = contentItem.templateVars;
15020	}
15021	
15022	templateVars.itemStyle = this.itemStyles[itemType];
15023	
15024	var itemTemplateHtml = itemTemplate(templateVars);
15025 
15026	return itemTemplateHtml;
15027};
15028
15029Mfe.Widgets['content-slider'].prototype.renderStageSlides = function(queryResult) {
15030	if (queryResult.class === 'Mfe.Classes.DatasetView') {
15031		var contentItems = queryResult.getResults();
15032		let amount = this.getOptionInt('data-amount', contentItems.length);
15033		contentItems = contentItems.slice(0, amount);
15034		
15035	} else {
15036		var contentItems = queryResult.getResults();
15037	}
15038
15039	var leftSlideHtml = '';
15040	var currentSlideHtml = '';
15041	var rightSlideHtml = '';
15042	
15043	if (this.slideIndex > 0) {
15044		leftSlideHtml = this.renderItem(contentItems[this.slideIndex - 1]);
15045	}
15046	
15047	currentSlideHtml = this.renderItem(contentItems[this.slideIndex]);
15048	
15049	if (this.slideIndex < contentItems.length - 1) {
15050		rightSlideHtml = this.renderItem(contentItems[this.slideIndex + 1]);
15051	}
15052	
15053	return {
15054		'leftSlideHtml': leftSlideHtml,
15055		'currentSlideHtml': currentSlideHtml,
15056		'rightSlideHtml': rightSlideHtml
15057	};
15058};
15059
15060Mfe.Widgets['content-slider'].prototype.renderWidget = function(queryResult) {
15061	//var contentItems = queryResult.getResults();
15062	
15063	var stageSlides = this.renderStageSlides(queryResult);
15064	
15065	var baseTemplate = this.mfe.getTemplate('widgets', 'content-slider', this.baseTemplate);
15066	if (isEmpty(baseTemplate) === true) {
15067		return '';
15068	}
15069	
15070	var slidesHtml = this.renderItems(queryResult);
15071	var optionHeight = this.getOption('height', '240px');
15072	var optionNavPosition = this.getOption('nav-position', 'inside');
15073	var optionNavStyle = this.getOption('nav-style', 'chevron');
15074	var optionNavSize = this.getOption('nav-size', 'medium');
15075	var optionShowOverlay = this.getOptionBoolean('show-overlay', false);
15076	var optionShowScrollInfo = this.getOptionBoolean('show-scroll-info', false);
15077	
15078	var templateVars = {
15079		'height': optionHeight,
15080		'isLoading': false,
15081		'navPosition': optionNavPosition,
15082		'navStyle': optionNavStyle,
15083		'navSize': optionNavSize,
15084		'showScrollInfo': optionShowScrollInfo,
15085		'showOverlay': optionShowOverlay,
15086		'slidesHtml': slidesHtml,
15087		'leftSlideHtml': stageSlides.leftSlideHtml,
15088		'currentSlideHtml': stageSlides.currentSlideHtml,
15089		'rightSlideHtml': stageSlides.rightSlideHtml,
15090		'leftNavEnabled': stageSlides.leftSlideHtml.length > 0,
15091		'rightNavEnabled': stageSlides.rightSlideHtml.length > 0
15092	};
15093	
15094	var baseTemplateHtml = baseTemplate(templateVars);
15095	return baseTemplateHtml;
15096};
15097
15098Mfe.Widgets['content-slider'].prototype.attachHandlers = function() {
15099	var self = this;
15100	this.$el.on('click', 'button', function(event){
15101
15102		var optionAutoScroll = self.getOptionBoolean('auto-scroll', false);
15103		if (optionAutoScroll === true) {
15104			self.startAutoScrollInterval();
15105		}
15106		
15107		var $buttonEl = $(this);
15108		if ($buttonEl.hasClass('nav-left') === true) {
15109			self.slide('left');
15110		} else if ($buttonEl.hasClass('nav-right') === true) {
15111			self.slide('right');
15112		}
15113	});
15114	
15115	//var $stageEl = this.$el.find('.stage');
15116	
15117	var $stageEl = this.$el.find('.stage');
15118	
15119	var transitionEvents = 'webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend';
15120	this.$el.on(transitionEvents, '.stage', function(e){
15121		if (e.target != $stageEl[0]) {
15122			return;
15123		}
15124		
15125		/*if (e.currentTarget != e.target) {
15126			return;
15127		}*/
15128		
15129		self.onSlideFinished(self.slideDirection, self.slideToIndex);
15130	});
15131	
15132	var optionAutoScroll = this.getOptionBoolean('auto-scroll', false);
15133	if (optionAutoScroll === true) {
15134		this.startAutoScrollInterval();
15135	}
15136};
15137
15138Mfe.Widgets['content-slider'].prototype.startAutoScrollInterval = function() {
15139	if (this.autoScrollInterval) {
15140		clearInterval(this.autoScrollInterval);
15141	};
15142	
15143	let scrollTimeout = parseInt(this.getOption('auto-scroll-time', 6000));
15144	this.autoScrollInterval = setInterval(() => {
15145		this.slide('right', true);
15146	}, scrollTimeout);
15147};
15148
15149Mfe.Widgets['content-slider'].prototype.getPageHtml = function(index) {
15150	var $pageEl = this.$el.find('.pages .page:nth-child(' + (index + 1) + ')');
15151	return $pageEl[0].outerHTML;
15152};
15153
15154Mfe.Widgets['content-slider'].prototype.slide = function(direction, rewindOnEnd) {
15155	if (this.isSliding === true) {
15156		return;
15157	}
15158	
15159	if (typeof rewindOnEnd === 'undefined') {
15160		rewindOnEnd = false;
15161	}
15162	
15163	var totalPages = this.$el.find('.slides .item').length;
15164	if (direction == 'left') {
15165		var slideToIndex = this.slideIndex - 1;
15166		if (slideToIndex < 0) {
15167			return;
15168			//slideToIndex = totalPages - 1;
15169		}
15170	} else if (direction == 'right') {
15171		var slideToIndex = this.slideIndex + 1;
15172		if (slideToIndex > totalPages - 1) {
15173			
15174			if (rewindOnEnd === false) {	
15175				return;
15176			}
15177			
15178			slideToIndex = 0;
15179			direction = 'left';
15180			
15181			this.onBeforeSlideRewind();
15182			
15183			// Update left slide to be the first
15184			
15185		}
15186	}
15187	
15188	if (slideToIndex == 0) {
15189		this.$el.find(' > .content').removeClass('nav-left-enabled');
15190	} else if (slideToIndex > 0) {
15191		this.$el.find(' > .content').addClass('nav-left-enabled');
15192	}
15193	
15194	if (slideToIndex < totalPages - 1) {
15195		this.$el.find(' > .content').addClass('nav-right-enabled');
15196	} else {
15197		this.$el.find(' > .content').removeClass('nav-right-enabled');
15198	}
15199	
15200	
15201	var $stageEl = this.$el.find('.stage');
15202	$stageEl.removeClass('anim-done');
15203	
15204	this.isSliding = true;
15205	this.slideToIndex = slideToIndex;
15206	this.slideDirection = direction;
15207	
15208	$stageEl.addClass('anim-' + direction);
15209};
15210
15211
15212Mfe.Widgets['content-slider'].prototype.onBeforeSlideRewind = function() {
15213	var $stageEl = this.$el.find('.stage');
15214	
15215	// Replace current stage slides
15216	var leftSlideHtml = leftSlideHtml = this.$el.find('.slides .item:nth-child(1)')[0].outerHTML;
15217	$stageEl.find('.slide.left-slide').html(leftSlideHtml);
15218}
15219
15220Mfe.Widgets['content-slider'].prototype.onSlideFinished = function(direction, newSlideIndex) {
15221	var $stageEl = this.$el.find('.stage');
15222	
15223	var totalPages = this.$el.find('.slides .item').length;
15224	
15225	this.slideIndex = newSlideIndex;
15226	
15227	// Reset classnames
15228
15229	// Replace current stage slides
15230	var leftSlideHtml = '';
15231	if (this.slideIndex > 0) {
15232		leftSlideHtml = this.$el.find('.slides .item:nth-child('+((this.slideIndex - 1) + 1)+')')[0].outerHTML;
15233		//this.$el.addClass('nav-left-enabled');
15234	}
15235	
15236	var currentSlideHtml = this.$el.find('.slides .item:nth-child('+((this.slideIndex) + 1)+')')[0].outerHTML;
15237	 
15238	var rightSlideHtml = '';
15239	if (this.slideIndex < totalPages - 1) {
15240		rightSlideHtml = this.$el.find('.slides .item:nth-child('+((this.slideIndex + 1) + 1)+')')[0].outerHTML;
15241		//this.$el.addClass('nav-right-enabled');
15242	}
15243	
15244	$stageEl.removeClass('anim-left');
15245	$stageEl.removeClass('anim-right');
15246	$stageEl.addClass('anim-done');
15247	
15248	$stageEl.find('.slide.left-slide').html(leftSlideHtml);
15249	$stageEl.find('.slide.current-slide').html(currentSlideHtml);
15250	$stageEl.find('.slide.right-slide').html(rightSlideHtml);
15251	
15252
15253	$stageEl.addClass('anim-in');
15254	
15255	this.isSliding = false;
15256};
15257
15258Mfe.Widgets['dataset-lookup'] = function(mfe, widgetId, options) {
15259	this.mfe = mfe; 
15260	this.name = 'dataset-lookup';
15261	Mfe.Widget.apply(this, arguments);
15262	
15263	this.ignoreEvents = false;
15264};
15265Mfe.Widgets['dataset-lookup'].inherits(Mfe.Widget);
15266Mfe.Widgets['dataset-lookup'].title = 'Dataset lookup';
15267Mfe.Widgets['dataset-lookup'].getSettings = function() {
15268	return [
15269		{  "type": "largetext", "name": "template", "default": "" }
15270	];
15271};
15272
15273Mfe.Widgets['dataset-lookup'].prototype.onRender = function() {
15274	this.offset = 0;
15275	var html = this.renderWidget();
15276	
15277	return html;
15278};
15279
15280Mfe.Widgets['dataset-lookup'].prototype.onAttach = function() {
15281	this.attachHandlers();
15282};
15283
15284Mfe.Widgets['dataset-lookup'].prototype.attachHandlers = function() {
15285	var self = this;
15286	
15287};
15288
15289Mfe.Widgets['dataset-lookup'].prototype.renderWidget = function() {
15290	var templateHtml = this.getOption('template', '');
15291	var template = Handlebars.compile(templateHtml);
15292	
15293	let templateVars = {};
15294	if (typeof this.mfe.contextObject !== 'undefined') {
15295		templateVars = this.mfe.contextObject.getTemplateVars(this.mfe);
15296	}
15297	
15298	var widgetHtml = template(templateVars);
15299	
15300	var widgetHtml = this.mfe.replaceWidgetElements(widgetHtml, false);
15301			
15302	return widgetHtml;
15303};
15304
15305Mfe.Widgets['dataset-search-input'] = function(mfe, widgetId, options) {
15306    this.mfe = mfe; 
15307    this.name = 'dataset-search-input';
15308    Mfe.Widget.apply(this, arguments);
15309    
15310    this.ignoreEvents = false;
15311};
15312Mfe.Widgets['dataset-search-input'].inherits(Mfe.Widget);
15313Mfe.Widgets['dataset-search-input'].title = 'Dataset search results';
15314Mfe.Widgets['dataset-search-input'].getSettings = function() {
15315    return [
15316	{  "type": "text", "name": "query-parameter", "default": "q", "description": "Query parameter"  },
15317	{  "type": "text", "name": "search-path", "default": "q", "description": "Search page path"  },
15318	{  "type": "text", "name": "empty-search-path", "default": "q", "description": "Search page path empty"  },
15319	{ "type": "text", "name": "placeholder", "default": null, "description": "Placeholder" },
15320	{ "type": "text", "name": "search-icon", "default": 'fas fa-search', "description": "Search icon" },
15321	{ "type": "text", "name": "clear-icon", "default": 'fa fa-times', "description": "Clear icon" }
15322    ];
15323};
15324
15325Mfe.Widgets['dataset-search-input'].prototype.onRender = function() {
15326    let html = this.renderWidget(null);
15327    return html;
15328};
15329
15330Mfe.Widgets['dataset-search-input'].prototype.onAttach = function() {
15331    this.attachHandlers();
15332};
15333
15334Mfe.Widgets['dataset-search-input'].prototype.displayView = function(html) {
15335    this.setElementHtml(html);
15336};
15337
15338Mfe.Widgets['dataset-search-input'].prototype.renderView = function() {
15339	
15340};
15341
15342Mfe.Widgets['dataset-search-input'].prototype.attachHandlers = function() {
15343    var self = this;
15344
15345    this.$el.find('.input input').on('keydown', (e) => {
15346	// Start new search
15347	if (e.originalEvent.keyCode == 13) {
15348	    this.executeSearch(this.$el.find('.input input').val());
15349	}
15350    });
15351
15352    this.$el.find('.input .icon').on('click', (e) => {
15353	this.executeSearch(this.$el.find('.input input').val());
15354    });
15355
15356    this.$el.find('.input .actions button').on('click', (e) => {
15357	this.$el.find('.input input').val('');
15358    });
15359
15360};
15361
15362Mfe.Widgets['dataset-search-input'].prototype.executeSearch = function(query) {
15363    let queryParamKey = this.getOption('query-parameter', 'q');
15364    let searchPath = this.getOption('search-path', 'q');
15365    let emptySearchPath = this.getOption('empty-search-path', '');
15366    
15367    //let navPath = searchPath + '?' + queryParamKey +'=' + encodeURIComponent(query);
15368    //alert(navPath);
15369    
15370    let queryParams = {};
15371    queryParams[queryParamKey] = query;
15372    
15373    if (query.length === 0 && emptySearchPath.length > 0) {
15374	this.mfe.navigate(emptySearchPath, {});
15375    } else {
15376	this.mfe.navigate(searchPath, queryParams);
15377    }
15378    
15379    
15380};
15381
15382Mfe.Widgets['dataset-search-input'].prototype.renderWidget = function() {
15383
15384    let queryParamKey = this.getOption('query-parameter', 'q');
15385    let searchPath = this.getOption('search-path', 'q');
15386    
15387    let query = '';
15388    if (mfe && mfe.queryParams && typeof mfe.queryParams[queryParamKey] !== 'undefined') {
15389	query = mfe.queryParams[queryParamKey];
15390    }
15391    query = query.trim();
15392
15393    let templateVars = {
15394	'query': query
15395    };
15396
15397    templateVars.placeholder = this.getOption('placeholder', 'Search for...');
15398    templateVars.searchIcon = this.getOption('search-icon', 'fal fa-search');
15399    templateVars.clearIcon = this.getOption('clear-icon', 'fa fa-times');
15400    
15401    
15402    var baseTemplate = this.mfe.getTemplate('widgets', 'dataset-search-input', 'base-default');
15403
15404    let widgetHtml = baseTemplate(templateVars);
15405
15406    return widgetHtml;
15407};
15408Mfe.Widgets['dataset-searchresults'] = function(mfe, widgetId, options) {
15409    this.mfe = mfe; 
15410    this.name = 'dataset-searchresults';
15411    Mfe.Widget.apply(this, arguments);
15412    
15413    this.ignoreEvents = false;
15414};
15415Mfe.Widgets['dataset-searchresults'].inherits(Mfe.Widget);
15416Mfe.Widgets['dataset-searchresults'].title = 'Dataset search results';
15417Mfe.Widgets['dataset-searchresults'].getSettings = function() {
15418    return [
15419	{  "type": "text", "name": "query-parameter", "default": "q", "description": "Query parameter"  },
15420	{  "type": "text", "name": "dataset-searchtable-id", "default": "", "description": "Dataset table ID"  },
15421	{  "type": "largetext", "name": "template", "default": "" }
15422    ];
15423};
15424
15425Mfe.Widgets['dataset-searchresults'].prototype.onRender = function() {
15426    console.log(mfe);
15427    
15428    var datasetTableSearchResults = this.fetch();
15429    if (isEmpty(datasetTableSearchResults) === false) {
15430	return this.renderWidget(datasetTableSearchResults);
15431    }
15432
15433    let html = this.renderWidget(null);
15434
15435    return html;
15436};
15437
15438Mfe.Widgets['dataset-searchresults'].prototype.onAttach = function() {
15439    this.attachHandlers();
15440};
15441
15442Mfe.Widgets['dataset-searchresults'].prototype.fetch = function() {
15443    var self = this;
15444    
15445    let queryParamKey = this.getOption('query-parameter', 'q');
15446    let tableId = this.getOption('dataset-searchtable-id', null);
15447    if (tableId === null) {
15448	return null;
15449    }
15450
15451    let query = '';
15452    if (this.mfe && this.mfe.queryParams && typeof this.mfe.queryParams[queryParamKey] !== 'undefined') {
15453	query = this.mfe.queryParams[queryParamKey];
15454    }
15455    query = query.trim();
15456    
15457    let siteName = this.mfe.siteBundle.getName();
15458    var datasetTableSearchResults = Mfe.Api.DatasetTable.search(siteName, tableId, query, function(result, response) {
15459	if (result === true) {
15460	    self.currentDatasetTableSearchResults = response;
15461	    self.displayView(self.renderWidget(response));
15462	    self.attachHandlers();
15463	}
15464	return null;
15465    });
15466    
15467    if (datasetTableSearchResults !== null) {
15468	this.currentDatasetTableSearchResults = datasetTableSearchResults;
15469	return datasetTableSearchResults;
15470    }
15471
15472    return null;
15473};
15474
15475Mfe.Widgets['dataset-searchresults'].prototype.saveWidgetState = function() {
15476    var widgetState = { 'datasetTableSearchResults': null };
15477 
15478    if (isEmpty(this.currentDatasetTableSearchResults) === false) {
15479	widgetState.datasetTableSearchResults = this.currentDatasetTableSearchResults.getData();
15480    }
15481
15482    return widgetState;
15483};
15484
15485Mfe.Widgets['dataset-searchresults'].prototype.restoreWidgetState = function(state) {
15486    
15487    console.log('state:');
15488    console.log(state);
15489    
15490    this.currentDatasetTableSearchResults = new Mfe.Classes.DatasetTableSearchResults(state.datasetTableSearchResults);
15491    //this.currentDatasetView.buildIndex();
15492};
15493
15494Mfe.Widgets['dataset-searchresults'].prototype.displayView = function(html) {
15495    this.setElementHtml(html);
15496};
15497
15498Mfe.Widgets['dataset-searchresults'].prototype.getDatasetView = function() {
15499    return this.currentDatasetView;
15500};
15501
15502Mfe.Widgets['dataset-searchresults'].prototype.renderView = function() {
15503	
15504};
15505
15506Mfe.Widgets['dataset-searchresults'].prototype.attachHandlers = function() {
15507	
15508};
15509
15510Mfe.Widgets['dataset-searchresults'].prototype.updateFilters = function() {
15511	
15512};
15513
15514Mfe.Widgets['dataset-searchresults'].prototype.updateView = function() {
15515	
15516};
15517
15518Mfe.Widgets['dataset-searchresults'].prototype.renderWidget = function(searchResults,) {
15519    this.datasetSearchResults = searchResults;
15520
15521    let templateHtml = this.getOption('template', '');
15522    let template = Handlebars.compile(templateHtml);
15523
15524    let templateVars = {
15525	'datasetLookup': null,
15526	'datasetTableId': this.getSettingConfig('dataset-searchtable-id'),
15527	'searchResults': {}
15528    };
15529
15530    if (typeof this.mfe.contextObject !== 'undefined') {
15531	//templateVars.datasetLookup = this.mfe.contextObject.getTemplateVars(this.mfe);
15532    }
15533
15534    if (searchResults !== null && typeof searchResults !== 'undefined') {
15535	templateVars.searchResults = searchResults.generateContentTemplateVars();
15536    }
15537    
15538    console.log(templateVars);
15539
15540    let widgetHtml = template(templateVars);
15541
15542    return widgetHtml;
15543};
15544Mfe.Widgets['dataset-view'] = function(mfe, widgetId, options) {
15545	this.mfe = mfe; 
15546	this.name = 'dataset-view';
15547	Mfe.Widget.apply(this, arguments);
15548	
15549	this.ignoreEvents = false;
15550};
15551Mfe.Widgets['dataset-view'].inherits(Mfe.Widget);
15552Mfe.Widgets['dataset-view'].title = 'Dataset view';
15553Mfe.Widgets['dataset-view'].getSettings = function() {
15554	return [
15555		{ "type": "options", "name": "filter-mode", "default": "any", "description": "Filter mode", "options": [ 
15556				{ "value": "any", "label": "Match any filters" }, 
15557				{ "value": "all", "label": "Match all filters" } 
15558		] },
15559		{  "type": "text", "name": "filter-table", "default": "" },
15560		{  "type": "text", "name": "filter-field", "default": "" },
15561		{  "type": "options", "name": "filter-field-value-type", "default": "context", "options": [ { "value": "context", "label": "Context" }, { "value": "input", "label": "Input" } ] },
15562		{  "type": "text", "name": "filter-field-value", "default": "" },
15563		{  "type": "text", "name": "dataset-view-id", "default": "default", "description": "Dataset view"  },
15564		{  "type": "largetext", "name": "template", "default": "" },
15565		{  "type": "largetext", "name": "loadMoreTemplate", "default": "" },
15566		{  "type": "text", "name": "loadMoreSelector", "default": "" },
15567		{  "type": "text", "name": "loadMoreAmount", "default": "6" },
15568		{  "type": "text", "name": "js-after-attach", "default": "" }
15569	];
15570};
15571
15572Mfe.Widgets['dataset-view'].prototype.onRender = function() {
15573	var view = this.fetch();
15574	if (isEmpty(view) === false) {
15575		return this.renderWidget(view);
15576	}
15577	
15578	var html = this.renderWidget(null);
15579	
15580	return html;
15581};
15582
15583Mfe.Widgets['dataset-view'].prototype.onAttach = function() {
15584	this.loadMoreOffset = 0;
15585	
15586	this.attachHandlers();
15587};
15588
15589Mfe.Widgets['dataset-view'].prototype.fetch = function() {
15590	var self = this;
15591	
15592	var viewId = this.getOption('dataset-view-id', null);
15593	if (viewId === null) {
15594		return null;
15595	}
15596
15597	var siteName = this.mfe.siteBundle.getName();
15598	var datasetView = Mfe.Api.DatasetViews.get(siteName, viewId, function(result, response) {
15599		if (result === true) {
15600			self.currentDatasetView = response;
15601			self.displayView(self.renderWidget(response));
15602			self.attachHandlers();
15603		}
15604		return null;
15605	});
15606
15607	if (datasetView !== null) {
15608		this.currentDatasetView = datasetView;
15609		return datasetView;
15610	}
15611	
15612	return null;
15613};
15614
15615Mfe.Widgets['dataset-view'].prototype.saveWidgetState = function() {
15616	var widgetState = { 'datasetView': null };
15617	
15618	if (isEmpty(this.currentDatasetView) === false) {
15619		widgetState.datasetView = this.currentDatasetView.getData();
15620	}
15621	
15622	return widgetState;
15623};
15624
15625Mfe.Widgets['dataset-view'].prototype.restoreWidgetState = function(state) {
15626	this.currentDatasetView = new Mfe.Classes.DatasetView(state.datasetView);
15627	this.currentDatasetView.buildIndex();
15628};
15629
15630
15631Mfe.Widgets['dataset-view'].prototype.displayView = function(html) {
15632	this.setElementHtml(html);
15633	
15634};
15635
15636Mfe.Widgets['dataset-view'].prototype.getDatasetView = function() {
15637	return this.currentDatasetView;
15638};
15639
15640Mfe.Widgets['dataset-view'].prototype.renderView = function() {
15641	
15642};
15643
15644Mfe.Widgets['dataset-view'].prototype.attachHandlers = function() {
15645	var self = this;
15646	
15647	let jsAfterAttach = this.getOption('js-after-attach', '');
15648	if (jsAfterAttach.length > 0 && window.MfeCustomJS && typeof window.MfeCustomJS[jsAfterAttach] !== 'undefined') {
15649	    window.MfeCustomJS[jsAfterAttach]();
15650	}
15651	
15652	// 
15653	
15654	this.$el.find('.filters input[type="checkbox"]').off('input change');
15655	
15656	this.$el.find('.filters input[type="checkbox"]').on('input change', function(e) {
15657		if (self.ignoreEvents === true) {
15658			return;
15659		}
15660		
15661		var $inputEl = $(this);
15662		
15663		if ($inputEl.attr('name') === 'filter-tags-all') {
15664			self.ignoreEvents = true;
15665
15666			// Unselect everything except for filter-tags-all
15667			self.$el.find('.filters input[type="checkbox"]:checked').prop('checked', false);
15668			self.$el.find('.filters input[name="filter-tags-all"]').prop('checked', true);
15669
15670		} else {
15671			// Unselect filter-tags-all
15672			self.ignoreEvents = true;
15673			self.$el.find('.filters input[name="filter-tags-all"]').prop('checked', false);
15674		}
15675		
15676		var filters = {};
15677		
15678		var $checkedEls = self.$el.find('.filters input[type="checkbox"]:checked');
15679		for (var i = 0; i < $checkedEls.length; i++) {
15680			var $checkedEl = $($checkedEls[i]);
15681			
15682			var inputName = $checkedEl.attr('name');
15683			var inputNameParts = inputName.split('-');
15684			var inputVal = $checkedEl.val();
15685			
15686			var filterId = inputNameParts[1];
15687			
15688			
15689			var targetTable = $checkedEl.attr('data-target-table');
15690			
15691			if (typeof filters[targetTable] == 'undefined') {
15692				filters[targetTable] = {};
15693			}
15694			
15695			if (filterId.substring(filterId.length - 2) == '[]') {
15696				filterId = filterId.substring(0, filterId.length - 2);
15697				
15698				if (typeof filters[targetTable][filterId] === 'undefined') {
15699					filters[targetTable][filterId] = [];
15700				}
15701				
15702				filters[targetTable][filterId].push(inputVal);
15703			} else if (inputVal.length > 0) {
15704				filters[targetTable][filterId] = inputVal;
15705			}
15706		}
15707
15708		var filterMode = self.getSettingConfig('filter-mode');
15709                
15710		self.displayView(self.renderWidget(self.currentDatasetView, filters, filterMode));		
15711		self.attachHandlers();
15712		
15713		if (self.ignoreEvents === true) {
15714			self.ignoreEvents = false;
15715			e.preventDefault();
15716			return false;
15717		}
15718	});
15719	
15720	this.$el.find('button[data-action="load-more"]').on('click', function(e){
15721		self.loadMore();
15722	});
15723};
15724
15725Mfe.Widgets['dataset-view'].prototype.updateFilters = function() {
15726	
15727};
15728
15729Mfe.Widgets['dataset-view'].prototype.updateView = function() {
15730	
15731};
15732
15733Mfe.Widgets['dataset-view'].prototype.renderWidget = function(view, filters, filterMode) {
15734	this.datasetView = view;
15735	this.datasetFilters = filters;
15736	this.datasetFilterMode = filterMode;
15737	
15738	var templateHtml = this.getOption('template', '');
15739	var template = Handlebars.compile(templateHtml);
15740        
15741        
15742	var templateVars = {
15743                'datasetLookup': null,
15744		'datasetViewId': this.getSettingConfig('dataset-view-id'),
15745		'view': {},
15746		'filters': filters
15747	};
15748        
15749	if (typeof this.mfe.contextObject !== 'undefined') {
15750            templateVars.datasetLookup = this.mfe.contextObject.getTemplateVars(this.mfe);
15751	}
15752        
15753	if (view !== null && typeof view !== 'undefined') {
15754		let optionsFilterTable = this.getOption('filter-table', '');
15755		let optionsFilterField = this.getOption('filter-field', '');
15756		
15757		let optionsFilterFieldValueType = this.getOption('filter-field-value-type', '');
15758		let optionsFilterFieldValue = this.getOption('filter-field-value', '');
15759		
15760		if (optionsFilterField.length > 0) {
15761			let filterValue = null;
15762			if (optionsFilterFieldValueType === 'context') {
15763				let contextData = this.mfe.contextObject.getData();
15764				let contextItemId = contextData[optionsFilterFieldValue];
15765				
15766				filterValue = contextItemId;
15767			}
15768		
15769			if (filterValue !== null) {
15770				filters = {};
15771				filters[optionsFilterTable] = {};
15772				filters[optionsFilterTable][optionsFilterField] = filterValue;
15773			}
15774			
15775			filterMode = this.getSettingConfig('filter-mode');
15776		}
15777                
15778		templateVars.view = view.generateContentTemplateVars(filters, filterMode);
15779	}
15780        
15781	var widgetHtml = template(templateVars);
15782			
15783	return widgetHtml;
15784};
15785
15786Mfe.Widgets['dataset-view'].prototype.loadMore = function() {
15787	let loadMoreOffset = parseInt(this.getOption('loadMoreAmount', '0'));
15788	let loadMoreSelector = this.getOption('loadMoreSelector', '');
15789	this.loadMoreOffset += loadMoreOffset;
15790	
15791	let filters = {};
15792	let filterMode = this.getSettingConfig('filter-mode');
15793	
15794	var templateHtml = this.getOption('loadMoreTemplate', '');
15795	var template = Handlebars.compile(templateHtml);
15796	var templateVars = {
15797		'datasetViewId': this.getSettingConfig('dataset-view-id'),
15798		'view': {},
15799		'filters': this.datasetFilters
15800	};
15801	
15802	console.log(this.currentDatasetView);
15803	
15804	if (this.currentDatasetView !== null && typeof this.currentDatasetView !== 'undefined') {
15805		let optionsFilterTable = this.getOption('filter-table', '');
15806		let optionsFilterField = this.getOption('filter-field', '');
15807		
15808		let optionsFilterFieldValueType = this.getOption('filter-field-value-type', '');
15809		let optionsFilterFieldValue = this.getOption('filter-field-value', '');
15810		
15811		if (optionsFilterField.length > 0) {
15812			let filterValue = null;
15813			if (optionsFilterFieldValueType === 'context') {
15814				let contextData = this.mfe.contextObject.getData();
15815				let contextItemId = contextData[optionsFilterFieldValue];
15816				
15817				filterValue = contextItemId;
15818			}
15819		
15820			if (filterValue !== null) {
15821				filters = {};
15822				filters[optionsFilterTable] = {};
15823				filters[optionsFilterTable][optionsFilterField] = filterValue;
15824			}
15825			
15826			filterMode = this.getSettingConfig('filter-mode');
15827		}
15828		
15829		templateVars.view = this.currentDatasetView.generateContentTemplateVars(filters, filterMode);
15830	}
15831	
15832	templateVars.loadMoreOffset = this.loadMoreOffset;
15833	templateVars.loadMoreEnd = templateVars.loadMoreOffset + loadMoreOffset;
15834	
15835	let loadMoreHtml = template(templateVars);
15836	
15837	let $listItemEls = this.$el.find(loadMoreSelector);
15838	let $lastListItemEl = $($listItemEls[$listItemEls.length - 1]);
15839	
15840	let $loadMoreItemEls = $(loadMoreHtml);
15841	
15842	$loadMoreItemEls.insertAfter($lastListItemEl);
15843};
15844
15845Mfe.Widgets['donation'] = function(mfe, widgetId, options) {
15846	this.mfe = mfe;
15847	this.name = 'donation';
15848	this.baseTemplate = 'base-default';
15849	Mfe.Widget.apply(this, arguments);
15850};
15851Mfe.Widgets['donation'].inherits(Mfe.Widget);
15852Mfe.Widgets['donation'].title = 'Donation';
15853Mfe.Widgets['donation'].getSettings = function() {
15854	return [
15855		{ "type": "text", "name": "text", "default": null, "description": "Heading text" },
15856		{ "type": "text", "name": "default-frequency", "default": "single", "description": "Default frequency" },
15857		{ "type": "text", "name": "default-amount", "default": 15, "description": "Default amount" },
15858		{ "type": "text", "name": "donate-verb", "default": "donate", "description": "Donate verb (donate)" },
15859		{ "type": "text", "name": "donate-entity", "default": "donation", "description": "Donate entity (donation)" },
15860		{ "type": "boolean", "name": "mode", "default": true, "description": "Short donation style" },
15861		{ "type": "boolean", "name": "show-name-input", "default": false, "description": "Display names input" },
15862		{ "type": "boolean", "name": "show-destinations", "default": false, "description": "Display destinations" },
15863		{ "type": "boolean", "name": "show-comment", "default": false, "description": "Display comment" },
15864		{ "type": "boolean", "name": "hide-frequency-choice", "default": false, "description": "Hide frequency choice" },
15865		{ "type": "boolean", "name": "ask-newsletter", "default": true, "description": "Ask for subscribing to newsletter" },
15866		{ "type": "text", "name": "newsletter-html", "default": false, "description": "Newsletter HTML" },
15867		{ "type": "boolean", "name": "ask-terms", "default": false, "description": "Ask to agree to terms" },
15868		{ "type": "text", "name": "terms-html", "default": "", "description": "Agree terms HTML" },
15869		{ "type": "text", "name": "button-payment-classes", "default": "", "description": "Button payment HTML classes" },
15870		{ "type": "text", "name": "button-pay-classes", "default": "", "description": "Button pay HTML classes" },
15871		{ "type": "text", "name": "amount-label", "default": "Choose an amount", "description": "Amount intro" },
15872		{ "type": "text", "name": "destination-id", "default": "", "description": "Fixed destination ID" },
15873		{ "type": "text", "name": "destinations-label", "default": "You can choose where your donation goes", "description": "Destinations intro" },
15874		{ "type": "text", "name": "destinations", "default": false, "description": "Display destinations" },
15875		{ "type": "boolean", "name": "select-payment-method", "default": true, "description": "Select payment method" },
15876		{ "type": "text", "name": "allow-payment-methods", "default": false, "description": "Allow payment methods" },
15877		{ "type": "text", "name": "custom-destinations", "default": false, "description": "Custom destinations" },
15878		{ "type": "text", "name": "custom-amount-presets", "default": false, "description": "Custom amount presets" },
15879		{ "type": "options", "name": "paymentProvider", "default": "mollie", "description": "Payment Service Provider", "options": [ 
15880				{ "value": "mollie", "label": "Mollie" }, 
15881				{ "value": "buckaroo", "label": "Buckaroo" } 
15882		] },
15883		{ "type": "options", "name": "heading-type", "default": "h2", "description": "Heading type", "options": [ 
15884				{ "value": "h1", "label": "H1" }, 
15885				{ "value": "h2", "label": "H2" } 
15886		] },
15887		{ "type": "options", "name": "style", "default": "default", "description": "Style", "options": [ 
15888				{ "value": "default", "label": "Default" }, 
15889				{ "value": "mobile", "label": "Mobile" }
15890		] },
15891		{ "type": "text", "name": "link-url", "default": null, "description": "Link URL" }
15892	];
15893};
15894Mfe.Widgets['donation'].prototype.onRender = function() {
15895	var baseTemplate = this.mfe.getTemplate('widgets', 'donation', this.baseTemplate);
15896
15897	var settingShowDestinations = this.getSettingConfig('show-destinations');
15898	var settingShowComment = this.getSettingConfig('show-comment');
15899	var donationSettings = this.mfe.siteBundle.getDonationSettings();
15900	
15901	var destinations;
15902	
15903	var customDestinations = this.getSettingConfig('custom-destinations');
15904	if (customDestinations !== false && customDestinations.trim().length > 0) {
15905		destinations = JSON.parse(customDestinations.trim());
15906	} else {
15907		destinations = donationSettings.destinations;
15908	}
15909	
15910	var amountPresets = {
15911		'single': {
15912			'desktop': [ 15, 25, 40 ],
15913			'mobile': [ 90 ]
15914		},
15915		'monthly': {
15916			'desktop': [ 5, 10, 25 ],
15917			'mobile': [ 40 ]
15918		},
15919		'quarterly': {
15920			'desktop': [ 20, 40, 100 ],
15921			'mobile': [ 180 ]
15922		},
15923		'yearly': {
15924			'desktop': [ 60, 120, 300 ],
15925			'mobile': [ 500 ]
15926		}
15927	};
15928	var customAmountPresets = this.getSettingConfig('custom-amount-presets');
15929	if (customAmountPresets !== false && customAmountPresets.trim().length > 0) {
15930		amountPresets = JSON.parse(customAmountPresets.trim());
15931	}
15932	
15933	var amountLabel = this.getSettingConfig('amount-label');
15934	var destinationsLabel = this.getSettingConfig('destinations-label');
15935	var hideFrequencyChoice = this.getSettingConfig('hide-frequency-choice');
15936	var donateVerb = this.getSettingConfig('donate-verb', 'donate');
15937	var donateEntity = this.getSettingConfig('donate-entity', 'donation');
15938	var showNameInput = this.getSettingConfig('show-name-input', false);
15939	
15940	var defaultFrequency = this.getSettingConfig('default-frequency', 'single');
15941        if (defaultFrequency === null || defaultFrequency.length === 0 ) {
15942            defaultFrequency = 'single';
15943        }
15944        
15945	var defaultAmount = this.getSettingConfig('default-amount', 15);
15946        
15947	var selectPaymentMethod = this.getSettingConfig('select-payment-method', true);
15948	var askNewsletter = this.getSettingConfig('ask-newsletter', true);
15949	var newsletterHtml = this.getSettingConfig('newsletter-html', '');
15950	var askTerms = this.getSettingConfig('ask-terms', true);
15951	var termsHtml = this.getSettingConfig('terms-html', '');
15952	var buttonPaymentClasses = this.getSettingConfig('button-payment-classes', '');
15953	var buttonPayClasses = this.getSettingConfig('button-pay-classes', '');
15954	
15955	var allowPaymentMethodsJson = this.getSettingConfig('allow-payment-methods', '["ideal","creditcard"]');
15956	if (allowPaymentMethodsJson.length === 0) {
15957		allowPaymentMethodsJson = '["ideal","creditcard"]';
15958	}
15959	var allowPaymentMethods = JSON.parse(allowPaymentMethodsJson);
15960
15961	var templateVars = {
15962		'paymentProvider': this.getSettingConfig('paymentProvider'),
15963		'defaultFrequency': defaultFrequency,
15964		'defaultAmount': defaultAmount,
15965		'selectPaymentMethod': selectPaymentMethod,
15966		'allowPaymentMethods': allowPaymentMethods,
15967		'hideFrequencyChoice': hideFrequencyChoice,
15968		'showDestinations': settingShowDestinations,
15969		'showComment': settingShowComment,
15970		'destinations': destinations,
15971		'destinationsLabel': destinationsLabel,
15972		'amountLabel': amountLabel,
15973		'donateVerb': donateVerb,
15974		'donateEntity': donateEntity,
15975		'amountPresets': amountPresets,
15976		'askNewsletter': askNewsletter,
15977		'newsletterHtml': newsletterHtml,
15978		'askTerms': askTerms,
15979		'termsHtml': termsHtml,
15980		'showNameInput': showNameInput,
15981		'buttonPaymentClasses': buttonPaymentClasses,
15982		'buttonPayClasses': buttonPayClasses
15983	};
15984	
15985	var baseTemplateHtml = baseTemplate(templateVars);
15986	return baseTemplateHtml;
15987};
15988
15989Mfe.Widgets['donation'].prototype.onAttach = function() {
15990	this.attachHandlers();
15991	
15992	this.updateFrequencySelection();
15993        
15994	let defaultFrequency = this.getSettingConfig('default-frequency', 'single');
15995        if (defaultFrequency === null || defaultFrequency.length === 0 ) {
15996            defaultFrequency = 'single';
15997        }
15998        
15999	let defaultAmount = this.getSettingConfig('default-amount', 15);
16000        
16001        let $frequencyEl = this.$el.find('.amount-frequency.' + defaultFrequency);
16002        let $amountEl = $frequencyEl.find('#amount-input-'+defaultFrequency+'-' + defaultAmount);
16003        if ($amountEl.length > 0) {
16004            $amountEl.prop('checked', true);
16005        }
16006	
16007	var $firstDestinationEl = this.$el.find('.destination .item:first-child input');
16008	if ($firstDestinationEl.length > 0) {
16009		$firstDestinationEl.prop('checked', true);
16010	}
16011};
16012
16013Mfe.Widgets['donation'].prototype.attachHandlers = function() {
16014	var self = this;
16015	
16016	this.$el.find('.frequency input').on('input change', function(){
16017		self.updateFrequencySelection();
16018	});
16019	
16020	this.$el.find('#amount-input-custom').on('input change', function(){
16021		var $customEl = $('#amount-input-custom');
16022		if ($customEl.is(':checked') === true) {
16023			self.$el.find('input[name="amountCustom"]').focus();
16024		}
16025	});
16026	
16027	this.$el.find('input[name="payment-method"]').on('input change', function() {
16028		
16029		self.$el.find('.payment-method-choices').removeClass('show');
16030		var $paymentMethodEl = self.$el.find('input[name="payment-method"]:checked');
16031		
16032		if ($paymentMethodEl.length == 0) {
16033			return;
16034		}
16035		
16036		var paymentMethod = $paymentMethodEl.val();
16037		self.$el.find('.payment-method-choices[data-payment-method="'+paymentMethod+'"]').addClass('show');
16038	});
16039	this.$el.find('input[name="payment-method"]').trigger('change');
16040	
16041	var self = this;
16042	
16043	this.$el.find('.actions button').on('click', function(e){
16044		var $buttonEl = $(this);
16045		var action = $buttonEl.attr('data-action');
16046		
16047		if (action == 'submit') {
16048			self.submitDonation();
16049		} else if (action == 'payment') {
16050			
16051			var result = self.validateForm();
16052			if (result === false) {
16053				return;
16054			}
16055			self.$el.find('.donation-form').addClass('hide');
16056			self.$el.find('.payment-method-form').addClass('show');
16057			
16058			window.scrollTo(0, 0); 
16059			
16060		} else if (action == 'back') {
16061			self.$el.find('.donation-form').removeClass('hide');
16062			self.$el.find('.payment-method-form').removeClass('show');
16063		}
16064	});
16065	
16066	this.$el.find('input[name="amountCustom"]').on('blur', function(e){
16067		var $inputEl = $(this);
16068		self.onCustomAmountBlur($inputEl);
16069	});
16070	
16071	this.$el.find('input[name="cover-transaction-costs"]').on('input', function(e){
16072		var amount = self.getAmount();
16073		var parsedAmount = Mfe.Locale.parseCurrencyAmount(amount);
16074		
16075		var calcAmount = parseFloat(parsedAmount[0] + '.' + parsedAmount[1]);
16076		
16077		var newAmount = calcAmount * 1.012;
16078		var newAmountParts = newAmount.toString().split('.');
16079		
16080		if (newAmountParts.length == 1) {
16081			newAmount = parseFloat(newAmountParts[0] + '.' + '00').toFixed(2);
16082		} else if (newAmountParts[1].length > 2) {
16083			newAmount = parseFloat(newAmountParts[0] + '.' + newAmountParts[1].substring(0, 2)).toFixed(2);
16084		} else {
16085			newAmount = parseFloat(newAmountParts[0] + '.' + newAmountParts[1] + '0').toFixed(2);
16086		}
16087	});
16088
16089	/*$('textarea[name="comment"]').on('keyup input',function(){
16090		var offset = this.offsetHeight - this.clientHeight;
16091		var scroll = $('body').scrollTop();
16092		$(this) .css('height','auto').css('height', this.scrollHeight + offset);
16093		$('body').scrollTop(scroll);
16094HAHA	});*/
16095};
16096
16097Mfe.Widgets['donation'].prototype.updateFrequencySelection = function() {
16098	var $checkedEl = this.$el.find('.frequency input:checked');
16099	var frequency = $checkedEl.val();
16100	
16101	var $donationEl = this.$el.find('.donation-form');
16102	$donationEl.attr('data-frequency', frequency);
16103	
16104	var $amountEl = this.$el.find('.amount .amount-frequency.' + frequency);
16105	var $firstAmountInputEl = $amountEl.find('.item:first-child input');
16106	$firstAmountInputEl.prop('checked', 'checked');
16107};
16108
16109Mfe.Widgets['donation'].prototype.getAmount = function() {
16110	var donationFrequency = this.$el.find('.frequency input:checked').val();
16111	var isCustomAmount = this.$el.find('#amount-input-custom').is(':checked');
16112
16113	var donationAmount;
16114	if (isCustomAmount === true) {
16115		donationAmount = this.$el.find('input[name="amountCustom"]').val();
16116	} else {
16117		var $amountEl = this.$el.find('.amount .amount-frequency.' + donationFrequency);
16118		donationAmount = $amountEl.find('input[type="radio"]:checked').val();
16119	}
16120	
16121	return donationAmount;
16122};
16123
16124Mfe.Widgets['donation'].prototype.submitDonation = function() {
16125	
16126	
16127	var self = this;
16128	
16129	var result = this.validateForm();
16130	
16131	//var result = true;
16132	if (result === false) {
16133		return;
16134	}
16135	
16136	
16137	var fixedDestinationId = this.getSettingConfig('destination-id', '');
16138	var paymentProvider = this.getSettingConfig('paymentProvider');
16139	
16140	var siteName = this.mfe.siteBundle.getName();
16141	
16142	var donationFrequency = this.$el.find('.frequency input:checked').val();
16143	var sendNewsletter = this.$el.find('input[name="newsletter"]').is(':checked');
16144	
16145	var isCustomAmount = this.$el.find('#amount-input-custom').is(':checked');
16146	
16147	var donationAmount;
16148	if (isCustomAmount === true) {
16149		donationAmount = this.$el.find('input[name="amountCustom"]').val();
16150	} else {
16151		var $amountEl = this.$el.find('.amount .amount-frequency.' + donationFrequency);
16152		donationAmount = $amountEl.find('input[type="radio"]:checked').val();
16153	}
16154	
16155	var userNameFirst = this.$el.find('.user-info input[name="nameFirst"]').val();
16156	var userNameLast = this.$el.find('.user-info input[name="nameLast"]').val();
16157
16158	var userEmail = this.$el.find('.user-info input[name="email"]').val();
16159	var userOrganization = this.$el.find('.user-info input[name="organization"]').val();
16160	var comment = '';
16161	
16162	
16163	var payTransactionCosts = false;
16164	var $coverTransactionCostsEl = this.$el.find('input[name="cover-transaction-costs"]');
16165	if ($coverTransactionCostsEl.length > 0) {
16166		payTransactionCosts = $coverTransactionCostsEl.prop('checked');
16167	}
16168	
16169	var newDonationAmount = donationAmount;
16170	var parsedDonationAmount = Mfe.Locale.parseCurrencyAmount(newDonationAmount.toString());
16171	var floatDonationAmount;
16172	if (parsedDonationAmount.length == 1) {
16173		floatDonationAmount = parseFloat(parsedDonationAmount[0] + '.' + '00').toFixed(2);
16174	} else if (parsedDonationAmount[1].length > 2) {
16175		floatDonationAmount = parseFloat(parsedDonationAmount[0] + '.' + parsedDonationAmount[1].substring(0, 2)).toFixed(2);
16176	} else {
16177		floatDonationAmount = parseFloat(parsedDonationAmount[0] + '.' + parsedDonationAmount[1] + '0').toFixed(2);
16178	}
16179	
16180	if (payTransactionCosts === true) {
16181		floatDonationAmount = (floatDonationAmount * 1.012);
16182	}
16183	
16184	var destinationId = null;
16185	if (this.$el.find('input[name="destination"]').length > 0) {
16186		var $selectedDestinationEl = this.$el.find('input[name="destination"]:checked');
16187		if ($selectedDestinationEl.length > 0) {
16188			destinationId = $selectedDestinationEl.val();
16189		}
16190	}
16191	
16192	if (fixedDestinationId.length > 0) {
16193	    destinationId = fixedDestinationId;
16194	}
16195	
16196	comment = this.$el.find('*[name="comment"]').val();
16197	
16198	this.$el.find('.form').addClass('busy');
16199	
16200	var paymentMethod = '';
16201	var paymentIssuer = '';
16202	
16203
16204	var selectPaymentMethod = this.getSettingConfig('select-payment-method', true);
16205	
16206	if (selectPaymentMethod === true) {
16207		paymentMethod = this.$el.find('input[name="payment-method"]:checked').val();
16208		paymentIssuer = this.$el.find('.payment-method-choices[data-payment-method="'+paymentMethod+'"] input[name="payment-method-issuer-'+paymentMethod+'"]:checked').val();
16209	}
16210	
16211	Mfe.Api.Donations.create(
16212		this.mfe.siteBundle.getName(),
16213		donationFrequency,
16214		parseFloat(floatDonationAmount.toString()).toFixed(2),
16215		{
16216			'email': userEmail,
16217			'organization': userOrganization,
16218			'nameFirst': userNameFirst,
16219			'nameLast': userNameLast,
16220			'newsletter': sendNewsletter
16221		},
16222		comment,
16223		destinationId,
16224		payTransactionCosts,
16225		paymentMethod,
16226		paymentIssuer,
16227		window.location.href,
16228		function(result, response){
16229			
16230			self.$el.find('.form').removeClass('busy');
16231			
16232			if (result !== true) {
16233				alert('Could not create donation. Please try again later.');
16234				return;
16235			}
16236			
16237			if (response.type == 'redirect') {
16238				if (response.url === null) {
16239					alert('Could not create donation. Please try again later.');
16240					return;
16241				}
16242			
16243				if (self.mfe.siteConfig.gaTagEventDonationConv && self.mfe.siteConfig.gaTagEventDonationConv.length > 0) {
16244				    
16245				    
16246				    
16247				    if (self.mfe.siteConfig.gaTagManager && gtag) {
16248					let sendTo = self.mfe.siteConfig.gaTagManager + '/' + self.mfe.siteConfig.gaTagEventDonationConv;
16249					
16250					gtag(
16251					    'event', 
16252					    'conversion', { 
16253						'send_to': sendTo, 
16254						'transaction_id': '', 
16255						'event_callback': () => {
16256
16257						    setTimeout(() => {
16258							window.location.href = response.url;
16259						    }, 200);
16260
16261						} 
16262					    }
16263					);
16264				    } else {
16265					window.location.href = response.url;
16266				    }
16267			    
16268				} else {
16269				    window.location.href = response.url;
16270				}
16271			    
16272			    
16273			}
16274		}
16275	);
16276};
16277
16278Mfe.Widgets['donation'].prototype.validateForm = function(extended) {
16279	if (typeof extended === 'undefined') {
16280		extended = false;
16281	}
16282	
16283	var fields = [
16284		{ 'name': 'email', 'type': 'email', 'validation': 'email', 'required': true }
16285	];
16286	
16287	if (this.$el.find('input[name="terms"]').length > 0) {
16288		fields.push({ 'name': 'terms', 'type': 'checkbox', 'validation': 'checked', 'required': true });
16289	}
16290	
16291	var showNameInput = this.getSettingConfig('show-name-input', false);
16292	if (showNameInput === true) {
16293		fields.push({ 'name': 'nameFirst', 'type': 'text', 'required': true });
16294		fields.push({ 'name': 'nameLast', 'type': 'text', 'required': true });
16295	}
16296	
16297	if (extended === true) {
16298		
16299	}
16300	
16301	$('.field').removeClass('error');
16302	
16303	var errors = [];
16304	var formData = new FormData();
16305	
16306	//var validateResults = true
16307	for (var i = 0; i < fields.length; i++) {
16308		var field = fields[i];
16309		
16310		var fieldResult = this.validateFormField(field);
16311		if (fieldResult.result === 'ok') {
16312			formData.append(fieldResult.name, fieldResult.value);
16313		} else {
16314			errors.push(fieldResult);
16315		}
16316	}
16317	
16318	if (errors.length > 0) {
16319		this.displayErrors(errors);
16320		return false;
16321	}
16322	
16323	return formData;
16324};
16325
16326Mfe.Widgets['donation'].prototype.validateFormField = function(field) {
16327	var $fieldEl = this.$el.find('.field[data-field-name="'+field.name+'"]');
16328	var $inputEl = this.$el.find('*[name="' + field.name + '"]');
16329	
16330	var fieldValue = null;
16331	
16332	console.log('validating form field');
16333	console.log(field);
16334	
16335	switch (field.type) {
16336		case 'text':
16337		case 'email':
16338		case 'textarea':
16339		case 'select':
16340			fieldValue = $inputEl.val();
16341			break;
16342		case 'checkbox':
16343			fieldValue = ($inputEl.is(':checked') ? 'yes': '');
16344	}
16345
16346	if (field.required === true && fieldValue.length == 0) {
16347		return {
16348			'result': 'error',
16349			'$fieldEl': $fieldEl,
16350			'code': 'required',
16351			'message': 'This field cannot be empty',
16352			'name': field.name
16353		};
16354	}
16355	
16356	if (fieldValue.length > 0) {
16357		// Check for validation
16358		var validation = field.validation;
16359	}
16360	
16361	return {
16362		'result': 'ok',
16363		'$fieldEl': $fieldEl,
16364		'name': field.name,
16365		'value': fieldValue
16366	};
16367};
16368
16369Mfe.Widgets['donation'].prototype.displayErrors = function(errors) {
16370	
16371	$('.field').removeClass('error');
16372	
16373	for (var i = 0; i < errors.length; i++) {
16374		var error = errors[i];
16375		
16376		var $fieldEl = this.$el.find('.field[data-field="'+error.name+'"]');
16377		
16378		$fieldEl.addClass('error');
16379	}
16380};
16381
16382Mfe.Widgets['donation'].prototype.onCustomAmountBlur = function($inputEl) {
16383	var amount = $inputEl.val();
16384	
16385	var amountParts = Mfe.Locale.parseCurrencyAmount(amount);
16386	
16387	var fixedAmount = amountParts[0].toString() + ',' + amountParts[1].toString();
16388	
16389	if (fixedAmount != amount) {
16390		$inputEl.val(fixedAmount);
16391	}
16392};
16393Mfe.Widgets['event-content'] = function(mfe, widgetId, options) {
16394	this.mfe = mfe;
16395	this.name = 'event-content';
16396	this.baseTemplate = 'base-default';
16397	Mfe.Widget.apply(this, arguments);
16398};
16399Mfe.Widgets['event-content'].inherits(Mfe.Widget);
16400Mfe.Widgets['event-content'].title = 'Event content';
16401Mfe.Widgets['event-content'].getSettings = function() {
16402	var settings = {
16403		'sections': [
16404			{ 
16405				'name': 'data', 
16406				'title': 'Data', 
16407				'settings': [
16408					{ "type": "options", "name": "data-source", "default": "context", "description": "Data source", "options": [ { "value": "context", "label": "Context" } ] }
16409				]
16410			}
16411		]
16412	};
16413	
16414	return settings;
16415};
16416Mfe.Widgets['event-content'].prototype.onRender = function() {
16417	var fetchResult = this.fetch();
16418	if (isEmpty(fetchResult) === false) {
16419		return this.renderContent(fetchResult);
16420	}
16421	
16422	// Return empty template with loading state
16423	var baseTemplate = this.mfe.getTemplate('widgets', 'event-content', this.baseTemplate);
16424	var templateVars = {};
16425	
16426	var baseTemplateHtml = baseTemplate(templateVars);
16427	return baseTemplateHtml;
16428};
16429
16430Mfe.Widgets['event-content'].prototype.onAttach = function() {
16431
16432};
16433
16434Mfe.Widgets['event-content'].prototype.fetch = function() {
16435	var self = this;
16436	
16437	return Mfe.Widget.Content.fetchContent(this.mfe, this.options, null, 'single', function(response) {
16438		var event = response;
16439		self.display(self.renderContent(event));
16440	}); 
16441};
16442
16443Mfe.Widgets['event-content'].prototype.display = function(html) {
16444	this.setElementHtml(html);
16445};
16446
16447Mfe.Widgets['event-content'].prototype.renderContent = function(event) {
16448	var templateVars = event.getTemplateVars(this.mfe);
16449	
16450	var baseTemplate = this.mfe.getTemplate('widgets', 'event-content', this.baseTemplate);
16451	var baseTemplateHtml = baseTemplate({ 'event': templateVars });
16452	
16453	return baseTemplateHtml;
16454};
16455
16456Mfe.Widgets['external-data-widget'] = function(mfe, widgetId, options) {
16457	this.mfe = mfe;
16458	this.name = 'external-data-widget';
16459	this.baseTemplate = 'base-default';
16460	this.itemFragmentTemplate = 'item-fragment';
16461	Mfe.Widget.apply(this, arguments);
16462};
16463Mfe.Widgets['external-data-widget'].inherits(Mfe.Widget);
16464Mfe.Widgets['external-data-widget'].title = 'External Data';
16465Mfe.Widgets['external-data-widget'].getSettings = function() {
16466	return [
16467		{ "type": "options", "name": "data-source", "default": "blogs", "description": "Data source", "options": [ 
16468				{ "value": "external-data", "label": "External data" },
16469		] },
16470		{ "type": "text", "name": "data-external-data-id", "default": [], "description": "External data ID" },
16471		{ "type": "largetext", "name": "template", "default": null, "description": "HTML template" },
16472	];
16473};
16474Mfe.Widgets['external-data-widget'].prototype.onRender = function() {
16475	var fetchResult = this.fetch();
16476	
16477	if (isEmpty(fetchResult) === false) {
16478            return this.renderWidget(fetchResult);
16479	}
16480        
16481        let templateInputHtml = getObjValue('template', null, this.options);
16482        let template = Handlebars.compile(templateInputHtml);
16483        let html = template({
16484            'isLoading': false
16485        });
16486
16487	// Return empty template with loading state
16488	/*var baseTemplate = this.mfe.getTemplate('widgets', 'external-data-widget', this.baseTemplate);
16489	var templateVars = {
16490		'isLoading': true,
16491		'allowTextWrap': settingTextImageWrap,
16492		'fragmentsHtml': ''
16493	};
16494	
16495	var baseTemplateHtml = baseTemplate(templateVars);
16496	return baseTemplateHtml;*/
16497    
16498        return html;
16499};
16500
16501Mfe.Widgets['external-data-widget'].prototype.onAttach = function() {
16502	var self = this;
16503	
16504};
16505
16506Mfe.Widgets['external-data-widget'].prototype.fetch = function() {
16507	var self = this;
16508        
16509	var fetchResult = Mfe.Widget.Content.fetchContent(this.mfe, this.options, null, 'single', function(response) {
16510		//self.displayFragments(self.renderFragments(response));
16511                return self.displayResponse(response);
16512	}); 
16513	
16514	return fetchResult;
16515};
16516
16517Mfe.Widgets['external-data-widget'].prototype.displayResponse = function(externalDataReponse) {
16518        let html = this.renderWidget(externalDataReponse);
16519        
16520        this.$el.html(html);
16521};
16522
16523Mfe.Widgets['external-data-widget'].prototype.renderWidget = function(externalDataReponse) {
16524    console.log(externalDataReponse);
16525    
16526    
16527        let templateInputHtml = getObjValue('template', null, this.options);
16528        let template = Handlebars.compile(templateInputHtml);
16529        let templateVars = {
16530            'isLoading': false,
16531            'externalData': externalDataReponse.getTemplateVars(this.mfe)
16532        };
16533        
16534        console.log(templateVars);
16535        
16536        let html = template(templateVars);
16537        
16538        return html;
16539    
16540    /*
16541	if (isEmpty(queryResult) === true) {
16542		var fragmentsHtml = '';
16543	} else {
16544		var fragmentsHtml = this.renderFragments(queryResult);
16545	}
16546	
16547	var settingTextImageWrap = this.getOption('text-image-text-wrap', true);
16548	if (settingTextImageWrap == 'false') {
16549		settingTextImageWrap = false;
16550	} else if (settingTextImageWrap == 'true') {
16551		settingTextImageWrap = true;
16552	}
16553	
16554	var baseTemplate = this.mfe.getTemplate('widgets', 'external-data-widget', this.baseTemplate);
16555	var templateVars = {
16556		'isLoading': false,
16557		'allowTextWrap': settingTextImageWrap,
16558		'fragmentsHtml': fragmentsHtml,
16559		'addArticleTag': this.getSettingConfig('add-article-tag', false)
16560	};
16561	
16562	var baseTemplateHtml = baseTemplate(templateVars);
16563	return baseTemplateHtml;*/
16564};
16565
16566Mfe.Widgets['floating-info'] = function(mfe, widgetId, options) {
16567	this.mfe = mfe;
16568	this.name = 'floating-info';
16569	this.baseTemplate = 'base-default';
16570	Mfe.Widget.apply(this, arguments);
16571};
16572Mfe.Widgets['floating-info'].inherits(Mfe.Widget);
16573Mfe.Widgets['floating-info'].title = 'Floating info';
16574Mfe.Widgets['floating-info'].getSettings = function() {
16575	return [
16576		{ "type": "options", "name": "style", "default": "default", "description": "Style", "options": [ 
16577			{ "value": "default", "label": "Default" },  
16578			{ "value": "link", "label": "Link" }
16579			] 
16580		},
16581		{ "type": "text", "name": "title", "default": null, "description": "Heading" },
16582		{ "type": "text", "name": "text", "default": null, "description": "Text" },
16583		{ "type": "text", "name": "link-text", "default": null, "description": "Link text" },
16584		{ "type": "text", "name": "link-url", "default": null, "description": "Link URL" },
16585		{ "type": "font", "name": "font", "default": null, "description": "Font" },
16586		{ "type": "boolean", "name": "full-link", "default": false, "description": "Whole widget is a link" },
16587	];
16588};
16589Mfe.Widgets['floating-info'].prototype.onRender = function() {
16590	var baseTemplate = this.mfe.getTemplate('widgets', 'floating-info', this.baseTemplate);
16591
16592	var optionFullLink = this.getOption('full-link', 'false');
16593	if (optionFullLink ===  false || optionFullLink == 'false') {
16594		optionFullLink = false;
16595	} else {
16596		optionFullLink = true;
16597	}
16598
16599	var templateVars = {
16600		'editable': (this.mfe.viewMode == 'edit'),
16601		'title': this.getOption('title', ''),
16602		'text': this.getOption('text', ''),
16603		'linkText': this.getOption('link-text', ''),
16604		'linkUrl': this.getOption('link-url', ''),
16605		'fullLink': optionFullLink
16606	};
16607	
16608	var baseTemplateHtml = baseTemplate(templateVars);
16609	return baseTemplateHtml;
16610};
16611
16612Mfe.Widgets['floating-info'].prototype.onAttach = function() {
16613	var self = this;
16614	if (this.mfe.viewMode == 'edit') {
16615		var $editableEls = this.$el.find(' > *');
16616		var $editableEl = $($editableEls[0]);
16617		
16618		$editableEl.on('blur', function(e) {
16619
16620			$editableEl.attr('contenteditable', false);
16621			$editableEl.removeClass('mfe-editable-editing');
16622
16623			self.mfe.exitEditMode();
16624		});
16625	}
16626};
16627
16628Mfe.Widgets['form'] = function(mfe, widgetId, options) {
16629	this.mfe = mfe;
16630	this.name = 'form';
16631	this.baseTemplate = 'base-default';
16632	Mfe.Widget.apply(this, arguments);
16633};
16634Mfe.Widgets['form'].inherits(Mfe.Widget);
16635Mfe.Widgets['form'].title = 'Form';
16636Mfe.Widgets['form'].getSettings = function() {
16637	return [
16638		{ "type": "form", "name": "data-form-id", "default": "", "description": "Form" },
16639		{ "type": "boolean", "name": "labels-as-placeholder", "default": false, "description": "Use labels as placeholders" },
16640		{ "type": "boolean", "name": "show-labels-on-input", "default": false, "description": "Show label on input" },
16641		{ "type": "text", "name": "submit-button-text", "default": "Submit form", "description": "Submit button text" },
16642		{ "type": "text", "name": "submit-button-icon", "default": "", "description": "Submit button icon" },
16643		{ "type": "text", "name": "submit-button-class", "default": "", "description": "Submit form button class" },
16644		{ "type": "text", "name": "panel-tags", "default": "h1", "description": "Panel tags types (H1 is default)" },
16645		{ "type": "options", "name": "input-style", "default": "vertical", "description": "Input style", "options": [
16646				{ "value": "vertical", "label": "Vertical" },  
16647				{ "value": "1-column", "label": "1 column" },
16648				{ "value": "2-columns", "label": "2 columns" },
16649				{ "value": "3-fields", "label": "3 fields" }
16650			]
16651		},
16652		{ "type": "options", "name": "result-style", "default": "text", "description": "Result style", "options": [
16653				{ "value": "text", "label": "Text" },  
16654				{ "value": "url", "label": "Redirect to URL" },  
16655				{ "value": "cmsPage", "label": "CMS page" } ,
16656				{ "value": "template", "label": "Display template" }
16657			]
16658		},
16659		{ "type": "text", "name": "result-title", "default": "", "description": "Result title" },
16660		{ "type": "text", "name": "result-text", "default": "We've received your message!", "description": "Result text" },
16661		{ "type": "text", "name": "result-url", "default": [], "description": "Result URL" },
16662		{ "type": "text", "name": "result-cms-page-path", "default": [], "description": "CMS page path" },
16663		{ "type": "template", "name": "result-template", "default": [], "description": "Result template" }
16664	];
16665};
16666Mfe.Widgets['form'].prototype.onRender = function() {
16667	var fetchResult = this.fetch();
16668	if (isEmpty(fetchResult) === false) {
16669		
16670		return this.renderWidget(fetchResult);
16671	}
16672
16673	// Return empty template with loading state
16674	var baseTemplate = this.mfe.getTemplate('widgets', 'form', this.baseTemplate);
16675	var templateVars = {
16676		'isLoading': true,
16677		'inputStyle': this.getSettingConfig('input-style'),
16678		'labelsAsPlaceHolder': this.getOptionBoolean('labels-as-placeholder', false),
16679		'fragmentsHtml': ''
16680	};
16681	
16682	var baseTemplateHtml = baseTemplate(templateVars);
16683	return baseTemplateHtml;
16684};
16685
16686Mfe.Widgets['form'].prototype.onAttach = function() {
16687	this.attachHandlers();
16688};
16689
16690Mfe.Widgets['form'].prototype.attachHandlers = function() {
16691	var self = this;
16692	
16693	this.$el.find('.content > .actions button').on('click', function(e){
16694		var $buttonEl = $(this);
16695		var action = $buttonEl.attr('data-action');
16696		
16697		if (action == 'submit') {
16698			self.submitForm();
16699		}
16700	});
16701	
16702	this.$el.find('.input input, .input select').on('keyup', function(e){
16703		if (e.originalEvent.keyCode != 13) {
16704			return;
16705		}
16706		
16707		self.submitForm();
16708	});
16709	
16710	this.$el.find('.input input, .input select').on('input', function(e){
16711		let $inputEl = $(this);
16712		let $fieldEl = $inputEl.parents('.field');
16713		
16714		if ($inputEl.val().length > 0) {
16715			$fieldEl.removeClass('empty');
16716		} else {
16717			$fieldEl.addClass('empty');
16718		}
16719	});
16720	
16721	
16722};
16723
16724Mfe.Widgets['form'].prototype.fetch = function() {
16725	var self = this;
16726	
16727	var formId = this.getOption('data-form-id', null);
16728	if (formId === null) {
16729		return null;
16730	}
16731
16732	var siteName = this.mfe.siteBundle.getName();
16733	var form = Mfe.Api.Forms.get(siteName, formId, function(result, response) {
16734		if (result === true) {
16735			self.currentForm = response;
16736			self.displayForm(self.renderForm(response));
16737			self.attachHandlers();
16738		}
16739		return null;
16740	});
16741
16742	if (form !== null) {
16743		this.currentForm = form;
16744		return form;
16745	}
16746	
16747	return null;
16748};
16749
16750Mfe.Widgets['form'].prototype.display = function(html) {
16751	this.setElementHtml(html);
16752};
16753
16754Mfe.Widgets['form'].prototype.displayForm = function(formHtml) {
16755	this.$el.html(formHtml);
16756};
16757
16758Mfe.Widgets['form'].prototype.renderForm = function(form) {
16759	if (isEmpty(form) === true) {
16760		return false;
16761	}
16762	
16763	var formTemplate = this.mfe.getTemplate('widgets', 'form', this.baseTemplate);
16764	var formTemplateVars = form.getTemplateVars();
16765	formTemplateVars.submitButtonText = this.getSettingConfig('submit-button-text');
16766	formTemplateVars.submitButtonClass = this.getOption('submit-button-class', '');
16767	formTemplateVars.submitButtonIcon = this.getOption('submit-button-icon', '');
16768	formTemplateVars.inputStyle = this.getSettingConfig('input-style');
16769	formTemplateVars.labelsAsPlaceHolder = this.getOptionBoolean('labels-as-placeholder', false);
16770	formTemplateVars.showLabelsOnInput = this.getOptionBoolean('show-labels-on-input', false);
16771	formTemplateVars.panelTags = this.getOption('panel-tags', 'h1');
16772	
16773	var formHtml = formTemplate(formTemplateVars);
16774	
16775	return formHtml;
16776};
16777
16778Mfe.Widgets['form'].prototype.renderWidget = function(queryResult) {
16779	return this.renderForm(queryResult);
16780};
16781
16782Mfe.Widgets['form'].prototype.submitForm = function() {
16783	var self = this;
16784	
16785	this.$el.find('.field').removeClass('error');
16786	
16787	var result = this.validateForm();
16788	if (result === false) {
16789		return;
16790	}
16791	
16792	var siteName = this.mfe.siteBundle.getName();
16793	var formId = this.currentForm.getId();
16794	var formData = result;
16795	
16796	Mfe.Api.Forms.submit(siteName, formId, formData, function(result, response) {
16797		if (result === true) {
16798			self.onFormSubmitted();
16799			return;
16800		}
16801		
16802		self.displayServerErrors(response);
16803	});
16804};
16805
16806Mfe.Widgets['form'].prototype.onFormSubmitted = function() {
16807	var resultStyle = this.getSettingConfig('result-style');
16808	
16809	if (resultStyle == 'text') {
16810		// Return empty template with loading state
16811		var thanksTemplate = this.mfe.getTemplate('widgets', 'form', this.baseTemplate + '-thanks', true);
16812		var templateVars = {
16813			'title': this.getSettingConfig('result-title'),
16814			'text': this.getSettingConfig('result-text')
16815		};
16816		var thanksTemplateHtml = thanksTemplate(templateVars);
16817		this.$el.html(thanksTemplateHtml);
16818	} else if (resultStyle == 'url') {
16819		var url = this.getSettingConfig('result-url');
16820		this.mfe.navigate(url);
16821	} else if (resultStyle == 'cmsPage') {
16822		var cmsPagePath = this.getSettingConfig('result-cms-page-path');
16823		
16824		var widgetCmsFragments = new Mfe.Widgets['cms-fragments'](this.mfe, this.mfe.getNextWidgetId(), {
16825			'data-source': 'snippet', 
16826			'data-snippet-id': cmsPagePath
16827		});
16828		this.$el.find(' > .content').remove();
16829		widgetCmsFragments.$el = this.$el.find('.thanks-cms-fragments');
16830		widgetCmsFragments.render();
16831		widgetCmsFragments.attach(this.mfe, widgetCmsFragments.$el);
16832		
16833	}
16834	
16835};
16836
16837Mfe.Widgets['form'].prototype.saveWidgetState = function() {
16838	var widgetState = { 'form': null };
16839	
16840	if (isEmpty(this.currentForm) === false) {
16841		widgetState.form = this.currentForm.getData();
16842	}
16843	
16844	return widgetState;
16845};
16846
16847Mfe.Widgets['form'].prototype.restoreWidgetState = function(state) {
16848	this.currentForm = new Mfe.Classes.ContentForm(state.form);
16849};
16850
16851Mfe.Widgets['form'].prototype.validateForm = function() {
16852	var fields = this.currentForm.getFields();
16853	
16854	var errors = [];
16855	var formData = new FormData();
16856	
16857	//var validateResults = true
16858	for (var i = 0; i < fields.length; i++) {
16859		var field = fields[i];
16860		
16861		var fieldResult = this.validateFormField(field);
16862		if (fieldResult.result === 'ok') {
16863			
16864			if (field.getType() == 'checklist') {
16865				for (var j = 0; j < fieldResult.value.length; j++) {
16866					var fieldValueItem = fieldResult.value[j];
16867					formData.append(fieldResult.fieldSubmitName, fieldValueItem);
16868				}
16869			} else {
16870				formData.append(fieldResult.name, fieldResult.value);
16871			}
16872			
16873			
16874			
16875		} else {
16876			errors.push(fieldResult);
16877		}
16878	}
16879	
16880	if (errors.length > 0) {
16881		this.displayErrors(errors);
16882		return false;
16883	}
16884	
16885	return formData;
16886};
16887
16888Mfe.Widgets['form'].prototype.validateFormField = function(field) {
16889	var $fieldEl = this.$el.find('.field[data-field-id="'+field.getId()+'"]');
16890	var $inputEl = this.$el.find('*[name="field-' + field.getId() + '"]');
16891	
16892	var fieldValue = null;
16893	
16894	switch (field.getType()) {
16895		case 'check':
16896			if ($inputEl.is(':checked') === true) {
16897				fieldValue = '1';
16898			} else {
16899				fieldValue = '';
16900			}
16901			break;
16902		
16903		case 'string':
16904		case 'text':
16905		case 'email':
16906		case 'textarea':
16907		case 'country':
16908			fieldValue = $inputEl.val();
16909			break;
16910			
16911		case 'checklist':
16912			var fieldValue = [];
16913			
16914			var $optionEls = this.$el.find('*[name="field-' + field.getId() + '-options[]"]:checked');
16915			for (var i = 0; i < $optionEls.length; i++) {
16916				var $optionEl = $($optionEls[i]);
16917				fieldValue.push($optionEl.val());
16918			}
16919			
16920			break;
16921			
16922		case 'radio':
16923		case 'select':
16924			var fieldSettings = field.getSettings();
16925			if (fieldSettings.type == 'radio') {
16926				$inputEl = this.$el.find('*[name="field-' + field.getId() + '"]:checked');
16927				if ($inputEl.length > 0) {
16928					fieldValue = $inputEl.val();
16929				}
16930			} else {
16931				fieldValue = $inputEl.val();
16932			}
16933			
16934			break;
16935
16936		case 'date': 
16937			var $daySelectEl = this.$el.find('select[name="field-' + field.getId() + '-day"]');
16938			var $monthSelectEl = this.$el.find('select[name="field-' + field.getId() + '-month"]');
16939			var $yearSelectEl = this.$el.find('select[name="field-' + field.getId() + '-year"]');
16940			
16941			if ($daySelectEl.val() == '' || $monthSelectEl.val() == '' || $yearSelectEl.val() == '') {
16942				fieldValue = '';
16943			} else {
16944				fieldValue = $daySelectEl.val() + '-' + $monthSelectEl.val() + '-' + $yearSelectEl.val();
16945			}
16946			
16947			break;
16948			
16949		default: 
16950			
16951			break;
16952	}
16953	
16954	if (field.isRequired() === true && (fieldValue === null || fieldValue.length == 0)) {
16955		return {
16956			'result': 'error',
16957			'$fieldEl': $fieldEl,
16958			'code': 'required',
16959			'message': 'This field cannot be empty'
16960		};
16961	}
16962	
16963	if (typeof fieldValue !== 'undefined' && fieldValue !== null && fieldValue.length > 0) {
16964		// Check for validation
16965		var validation = field.getValidation();
16966	}
16967	
16968	var fieldSubmitName = 'field-' + field.getId();
16969	if (field.getType() == 'checklist') {
16970		fieldSubmitName = 'field-' + field.getId() + '[]';
16971	}
16972	
16973	return {
16974		'result': 'ok',
16975		'$fieldEl': $fieldEl,
16976		'name': 'field-' + field.getId(),
16977		'fieldSubmitName': fieldSubmitName,
16978		'value': fieldValue
16979	};
16980};
16981
16982Mfe.Widgets['form'].prototype.displayServerErrors = function(errors) {
16983	// Transform server errors to client side errors
16984	
16985	var clientErrors = [];
16986	
16987	for (var i = 0; i < errors.length; i++) {
16988		var error = errors[i];
16989		
16990		var clientError = {
16991			'$fieldEl': this.$el.find('.field[data-field-id="'+error.fieldId+'"]'),
16992			'fieldId': error.fieldId,
16993			'code': error.code,
16994			'message': error.message,
16995			'result': 'error'
16996		};
16997		clientErrors.push(clientError);
16998	}
16999	
17000	this.displayErrors(clientErrors);
17001};
17002
17003Mfe.Widgets['form'].prototype.displayErrors = function(errors) {
17004	this.$el.find('.field').removeClass('error');
17005	
17006	for (var i = 0; i < errors.length; i++) {
17007		var error = errors[i];
17008		
17009		var $fieldEl = error.$fieldEl;
17010		
17011		var $errorEl = $fieldEl.find('.error');
17012		if (i == 0) {
17013			$inputEl = $fieldEl.find('input, select, textarea');
17014			if ($inputEl.length > 0) {
17015				$($inputEl[0]).focus();
17016			}
17017		}
17018		
17019		$errorEl.text(error.message);
17020		$fieldEl.addClass('error');
17021	}
17022};
17023Mfe.Widgets['heading'] = function(mfe, widgetId, options) {
17024	this.mfe = mfe;
17025	this.name = 'heading';
17026	this.baseTemplate = 'base-default';
17027	this.mode = 'view';
17028	Mfe.Widget.apply(this, arguments);
17029};
17030Mfe.Widgets['heading'].inherits(Mfe.Widget);
17031Mfe.Widgets['heading'].title = 'Heading';
17032Mfe.Widgets['heading'].getSettings = function() {
17033	return [
17034		{ "type": "options", "name": "data-source", "default": "settings", "description": "Data source", "options": [ 
17035			{ "value": "settings", "label": "From settings" },  
17036			{ "value": "context", "label": "Context" }
17037			] 
17038		},
17039		{ "type": "text", "name": "text", "default": null, "description": "Heading text" },
17040		{ "type": "boolean", "name": "allow-html-enabled", "default": false, "description": "Allow HTML in heading text" },
17041		{ "type": "options", "name": "heading-type", "default": "h2", "description": "Heading type", "options": [ 
17042				{ "value": "h1", "label": "H1" }, 
17043				{ "value": "h2", "label": "H2" },
17044				{ "value": "h3", "label": "H3" }
17045		] },
17046		{ "type": "options", "name": "text-align", "default": "auto", "description": "Align text", "options": [ 
17047				{ "value": "auto", "label": "Auto" },
17048				{ "value": "left", "label": "Left" },
17049				{ "value": "center", "label": "Center" },
17050				{ "value": "right", "label": "Right" } 
17051		] },
17052		{ "type": "text", "name": "link-url", "default": null, "description": "Link URL" },
17053		{ "type": "font", "name": "font", "default": null, "description": "Font" },
17054		
17055	];
17056};
17057
17058Mfe.Widgets['heading'].prototype.onRender = function() {
17059	var baseTemplate = this.mfe.getTemplate('widgets', 'heading', this.baseTemplate);
17060
17061	var text = '';
17062	
17063	var dataSource = this.getOption('data-source', 'settings');
17064	if (dataSource == 'settings') {
17065		var optionText = this.getOption('text', '');
17066		var optionTextTranslationId = this.getOption('text-translation-id', '');
17067
17068		var text = '';
17069		if (optionText.length > 0) {
17070			text = optionText;
17071		} else if (optionTextTranslationId.length > 0) {
17072			text = this.mfe.getTranslation(optionTextTranslationId);
17073		}
17074	} else if (dataSource == 'context') {
17075
17076		if (this.mfe.context == 'cms-page' || this.mfe.context == 'blog-item') {
17077			var revision = this.mfe.contextObject.getRevisionByLanguage(this.mfe.pageLanguage);
17078			if (revision.getTitle) {
17079				text = revision.getTitle();
17080			}
17081			
17082		}
17083	}
17084
17085	var alignText = this.getOption('text-align', 'left');
17086	if (alignText != 'auto' && alignText != 'left' && alignText != 'center' && alignText != 'right') {
17087		alignText = 'left';
17088	}
17089	
17090	var fontConfig = this.getOption('font', null);
17091	if (fontConfig !== null) {
17092		var fontCssVars = Mfe.Fonts.generateFontConfigCssVars('heading', fontConfig, this.mfe);
17093	}
17094	
17095	let contextTemplateVars = null;
17096	if (this.mfe.contextObject && this.mfe.contextObject.templateVars) {
17097		contextTemplateVars = this.mfe.contextObject.templateVars;
17098	} else if (this.mfe.contextObject && this.mfe.contextObject.getTemplateVars) {
17099		
17100		if (this.mfe.contextObject instanceof Mfe.Classes.DatasetView) {
17101			contextTemplateVars = this.mfe.contextObject.getTemplateVars();
17102		}
17103	}
17104	
17105	var templateVars = {
17106		'alignText': alignText,
17107		'editable': (this.mfe.viewMode == 'edit'),
17108		'text': text,
17109		'headingType': this.getOption('heading-type', 'h2'),
17110		'linkUrl': this.getOption('link-url', null),
17111		'isAllowHtmlEnabled': this.getSettingConfig('allow-html-enabled', false),
17112		'fontCssVars': fontCssVars,
17113		'context': contextTemplateVars
17114	};
17115	
17116	var baseTemplateHtml = baseTemplate(templateVars);
17117	return baseTemplateHtml;
17118};
17119
17120Mfe.Widgets['heading'].prototype.onAttach = function() {
17121	var self = this;
17122	if (this.mfe.viewMode == 'edit') {
17123		
17124		var $editableEls = this.$el.find(' > *');
17125		var $editableEl = $($editableEls[0]);
17126		
17127		$editableEl.on('blur', function(e) {
17128
17129			$editableEl.attr('contenteditable', false);
17130			$editableEl.removeClass('mfe-editable-editing');
17131
17132			self.mfe.exitEditMode();
17133		});
17134		
17135		/*this.$el.find('h1').on('mouseenter', function(){
17136			var $hoverEl = $(this);
17137			
17138			self.mfe.showEditHoverOptions($hoverEl);
17139		});
17140		this.$el.find('h1').on('mouseleave', function(){
17141			
17142		});*/
17143	}
17144};
17145
17146Mfe.Widgets['heading'].prototype.onSettingChanged = function(settingName, settingValue) {
17147	this.options[settingName] = settingValue;
17148	
17149	if (settingName == 'text') {
17150		var $textEl = this.$el.find(' > *');
17151		var $linkEl = $textEl.find('a');
17152		
17153		if ($linkEl.length > 0) {
17154			$textEl = $linkEl;
17155		}
17156		
17157		$textEl.text(settingValue);
17158		
17159	} else if (settingName == 'link-url') {
17160		var $textEl = this.$el.find(' > *');
17161		var $linkEl = $textEl.find('a');
17162		if ($linkEl.length == 0) {
17163			this.$el.html(this.onRender());
17164		} else {
17165			$linkEl.attr('href', settingValue);
17166		}
17167	} else {
17168		this.$el.html(this.onRender());
17169	}
17170};
17171
17172Mfe.Widgets['heading'].prototype.enterEditMode = function(setting) {
17173	if (setting == 'text') {
17174		this.mode = 'edit';
17175		
17176		var $editableEls = this.$el.find(' > *');
17177		var $editableEl = $($editableEls[0]);
17178		
17179		$editableEl.attr('contenteditable', true);
17180		$editableEl.addClass('mfe-editable-editing');
17181		
17182		$editableEl.focus();
17183	}
17184};
17185
17186Mfe.Widgets['hero-intro'] = function(mfe, widgetId, options) {
17187	this.mfe = mfe;
17188	this.name = 'hero-intro';
17189	this.state = 'default';
17190	Mfe.Widget.apply(this, arguments);
17191};
17192Mfe.Widgets['hero-intro'].inherits(Mfe.Widget);
17193Mfe.Widgets['hero-intro'].prototype.onRender = function(isPreload) {
17194	// Check if this intro has not been rendered ever
17195	if (isEmpty(isPreload) === true || isPreload === false) {
17196		this.mfe.addBodyClass('mfe-w-hero-intro-active');
17197	}
17198
17199	return this.renderContent();
17200};
17201
17202Mfe.Widgets['hero-intro'].prototype.display = function(renderHtml) {
17203	this.setElementHtml(renderHtml);
17204};
17205
17206Mfe.Widgets['hero-intro'].prototype.renderContent = function() {
17207	var templateVars = {};
17208	
17209	var htmlTemplate = this.mfe.getTemplate('widgets', 'hero-intro', 'base-default');
17210	var html = htmlTemplate(templateVars);
17211	
17212	return html;
17213};
17214
17215Mfe.Widgets['hero-intro'].prototype.onAttach = function(mfe, $el) {
17216	var self = this;
17217	
17218	this.isActive = true;
17219	
17220	this.scrollOffset = this.getOption('scroll-offset', 48);
17221	
17222	this.windowScrollBind = this.onEventWindowScroll.bind(this);
17223	window.addEventListener('scroll', this.windowScrollBind);
17224};
17225
17226Mfe.Widgets['hero-intro'].prototype.onDetach = function() {
17227	window.removeEventListener('scroll', this.windowScrollBind);
17228};
17229
17230Mfe.Widgets['hero-intro'].prototype.onEventWindowScroll = function(event) {
17231	if (this.isActive !== true) {
17232		return;
17233	}
17234
17235	if (window.scrollY > this.scrollOffset && this.state == 'default') {
17236		this.mfe.removeBodyClass('mfe-w-hero-intro-active');
17237		//this.$el.remove();
17238		//window.scroll(0, 0);
17239		//this.isActive = false;
17240		this.state = 'small';
17241	} else if (window.scrollY < this.scrollOffset && this.state == 'small') {
17242		this.mfe.addBodyClass('mfe-w-hero-intro-active');
17243		this.state = 'default';
17244	}
17245};
17246Mfe.Widgets['html'] = function(mfe, widgetId, options) {
17247	this.mfe = mfe;
17248	this.name = 'html';
17249	this.baseTemplate = 'base-default';
17250	Mfe.Widget.apply(this, arguments);
17251};
17252Mfe.Widgets['html'].inherits(Mfe.Widget);
17253Mfe.Widgets['html'].title = 'HTML';
17254Mfe.Widgets['html'].getSettings = function() {
17255	return [
17256		{ "type": "largetext", "name": "html", "default": null, "description": "HTML" },
17257		{ "type": "largetext", "name": "rawHtml", "default": null, "description": "Raw HTML" },
17258		{ "type": "text", "name": "variable1", "default": null, "description": "Variable from component #1" },
17259		{ "type": "text", "name": "variable2", "default": null, "description": "Variable from component #2" },
17260		{ "type": "text", "name": "variable3", "default": null, "description": "Variable from component #3" },
17261		{ "type": "text", "name": "variable4", "default": null, "description": "Variable from component #4" },
17262		{ "type": "text", "name": "variable5", "default": null, "description": "Variable from component #5" },
17263	];
17264};
17265Mfe.Widgets['html'].prototype.onRender = function() {
17266	
17267	//var baseTemplate = this.mfe.getTemplate('widgets', 'html', this.baseTemplate);
17268
17269	var optionHtml = this.getOption('html', '');
17270	var optionRawHtml = this.getOption('rawHtml', '');
17271        
17272        let baseTemplateHtml;
17273        
17274        if (optionRawHtml.length > 0) {
17275            baseTemplateHtml = optionRawHtml;
17276        } else {
17277            var htmlTemplate = Handlebars.compile(optionHtml);
17278
17279            var templateVars = {
17280                    'variables': {}
17281            };
17282
17283            for (let i = 1; i <= 5; i++) {
17284                    let variableVal = this.getOption('variable' + i, null);
17285                    templateVars.variables['variable' + i] = variableVal;
17286            }
17287
17288            baseTemplateHtml = htmlTemplate(templateVars);
17289        }
17290	
17291
17292	return baseTemplateHtml;
17293};
17294
17295Mfe.Widgets['html'].prototype.onAttach = function() {
17296	var self = this;
17297
17298};
17299
17300Mfe.Widgets['html'].prototype.enterEditMode = function(setting) {
17301	if (setting == 'html') {
17302
17303	}
17304};
17305
17306Mfe.Widgets['image-grid'] = function(mfe, widgetId, options) {
17307	this.mfe = mfe;
17308	this.name = 'image-grid';
17309	this.baseTemplate = 'base-default';
17310	Mfe.Widget.apply(this, arguments);
17311};
17312Mfe.Widgets['image-grid'].inherits(Mfe.Widget);
17313Mfe.Widgets['image-grid'].title = 'Image Grid';
17314Mfe.Widgets['image-grid'].getSettings = function() {
17315	return [
17316		{ "type": "text", "name": "image-url", "default": null, "description": "Image URL" },
17317		{ "type": "text", "name": "link-url", "default": null, "description": "Link URL" },
17318		{ "type": "boolean", "name": "cover-layout", "default": null, "description": "Cover the whole layout", "default": false }
17319	];
17320};
17321Mfe.Widgets['image-grid'].prototype.onRender = function() {
17322	var baseTemplate = this.mfe.getTemplate('widgets', 'image', this.baseTemplate);
17323
17324	var templateVars = {
17325		'imageUrl': this.getOption('image-url', ''),
17326		'linkUrl': this.getOption('link-url', null),
17327		'coverLayout': this.getOptionBoolean('cover-layout', false)
17328	};
17329	
17330	var baseTemplateHtml = baseTemplate(templateVars);
17331	return baseTemplateHtml;
17332};
17333
17334Mfe.Widgets['image-grid'].prototype.onAttach = function() {
17335
17336};
17337
17338Mfe.Widgets['image'] = function(mfe, widgetId, options) {
17339	this.mfe = mfe;
17340	this.name = 'image';
17341	this.baseTemplate = 'base-default';
17342	Mfe.Widget.apply(this, arguments);
17343};
17344Mfe.Widgets['image'].inherits(Mfe.Widget);
17345Mfe.Widgets['image'].title = 'Image';
17346Mfe.Widgets['image'].getSettings = function() {
17347	return [
17348		{ "type": "text", "name": "image-url", "default": null, "description": "Image URL" },
17349		{ "type": "text", "name": "link-url", "default": null, "description": "Link URL" },
17350		{ "type": "boolean", "name": "cover-layout", "default": null, "description": "Cover the whole layout", "default": false },
17351		{ "type": "boolean", "name": "as-background-image", "default": null, "description": "Show as background image", "default": false },
17352		{ "type": "text", "name": "dataset-lookup-key", "default": [], "description": "Dataset record key" }
17353	];
17354};
17355Mfe.Widgets['image'].prototype.onRender = function() {
17356	var baseTemplate = this.mfe.getTemplate('widgets', 'image', this.baseTemplate);
17357	
17358	var asBackgroundImage = this.getOptionBoolean('as-background-image', false);
17359	
17360	var imageUrl = null;
17361	var datasetLookupKey = this.getOption('dataset-lookup-key', '');
17362	
17363	if (this.mfe.context === 'dataset-table' && datasetLookupKey.length > 0) {
17364		imageUrl = this.mfe.contextObject.getProcessedValue(datasetLookupKey);
17365	} else {
17366		imageUrl = this.getOption('image-url', '');
17367	}
17368	
17369	var templateVars = {
17370		'imageUrl': imageUrl,
17371		'linkUrl': this.getOption('link-url', null),
17372		'coverLayout': this.getOptionBoolean('cover-layout', false),
17373		'asBackgroundImage': asBackgroundImage
17374	};
17375	
17376	var baseTemplateHtml = baseTemplate(templateVars);
17377	return baseTemplateHtml;
17378};
17379
17380Mfe.Widgets['image'].prototype.onAttach = function() {
17381
17382};
17383
17384Mfe.Widgets['info-block'] = function(mfe, widgetId, options) {
17385	this.mfe = mfe;
17386	this.name = 'info-block';
17387	this.baseTemplate = 'base-default'; 
17388	Mfe.Widget.apply(this, arguments);
17389};
17390Mfe.Widgets['info-block'].inherits(Mfe.Widget);
17391Mfe.Widgets['info-block'].title = 'Info block';
17392Mfe.Widgets['info-block'].getSettings = function() {
17393	return [
17394		{ "type": "options", "name": "style", "default": "default", "description": "Style", "options": [ 
17395			{ "value": "default", "label": "Default" },  
17396			{ "value": "center", "label": "Center" },  
17397			{ "value": "link", "label": "Link" },
17398			{ "value": "image-left", "label": "Image left" },
17399			{ "value": "image-right", "label": "Image right" },
17400			{ "value": "icons", "label": "Icons" }
17401			] 
17402		},
17403		{ "type": "text", "name": "title", "default": null, "description": "Heading" },
17404		{ "type": "text", "name": "subtitle", "default": null, "description": "Subtitle (category)" },
17405		{ "type": "html", "name": "text", "default": null, "description": "Text" },
17406		{ "type": "text", "name": "link-text", "default": null, "description": "Link text" },
17407		{ "type": "text", "name": "link-url", "default": null, "description": "Link URL" },
17408		{ "type": "text", "name": "link-2-text", "default": null, "description": "Link 2 text" },
17409		{ "type": "text", "name": "link-2-url", "default": null, "description": "Link 2 URL" },
17410		{ "type": "text", "name": "image-url", "default": null, "description": "Image URL" },
17411		{ "type": "font", "name": "heading-font", "default": null, "description": "Heading font" },
17412		{ "type": "font", "name": "subtitle-font", "default": null, "description": "Subtitle font" },
17413		{ "type": "font", "name": "text-font", "default": null, "description": "Text font" },
17414		{ "type": "font", "name": "link-text-font", "default": null, "description": "Link text font" },
17415		{ "type": "boolean", "name": "full-link", "default": false, "description": "Whole widget is a link" }
17416	];
17417};
17418Mfe.Widgets['info-block'].prototype.onRender = function() {
17419	var baseTemplate = this.mfe.getTemplate('widgets', 'info-block', this.baseTemplate);
17420
17421	var optionFullLink = this.getOption('full-link', 'false');
17422	if (optionFullLink ===  false || optionFullLink == 'false') {
17423		optionFullLink = false;
17424	} else {
17425		optionFullLink = true;
17426	}
17427
17428	var headingFontCssVars = null;
17429	var headingFontConfig = this.getOption('heading-font', null);
17430	if (headingFontConfig !== null) {
17431		headingFontCssVars = Mfe.Fonts.generateFontConfigCssVars('title', headingFontConfig, this.mfe);
17432	}
17433
17434	var subtitleFontCssVars = null;
17435	var subtitleFontConfig = this.getOption('subtitle-font', null);
17436	if (subtitleFontConfig !== null) {
17437		subtitleFontCssVars = Mfe.Fonts.generateFontConfigCssVars('subtitle', subtitleFontConfig, this.mfe);
17438	}
17439
17440	var textFontCssVars = null;
17441	var textFontConfig = this.getOption('text-font', null);
17442	if (textFontConfig !== null) {
17443		textFontCssVars = Mfe.Fonts.generateFontConfigCssVars('text', textFontConfig, this.mfe);
17444	}
17445
17446	var linkTextFontCssVars = null;
17447	var linkTextFontConfig = this.getOption('link-text-font', null);
17448	if (linkTextFontConfig !== null) {
17449		linkTextFontCssVars = Mfe.Fonts.generateFontConfigCssVars('link-text', linkTextFontConfig, this.mfe);
17450	}
17451	
17452	var templateVars = {
17453		'editable': (this.mfe.viewMode == 'edit'),
17454		'title': this.getOption('title', ''),
17455		'subtitle': this.getOption('subtitle', ''),
17456		'text': this.getOption('text', ''),
17457		'linkText': this.getOption('link-text', ''),
17458		'linkUrl': this.getOption('link-url', ''),
17459		'link2Text': this.getOption('link-2-text', ''),
17460		'link2Url': this.getOption('link-2-url', ''),
17461		'imageUrl': this.getOption('image-url', ''),
17462		'fullLink': optionFullLink,
17463		'titleFontCssVars': headingFontCssVars,
17464		'subtitleFontCssVars': subtitleFontCssVars,
17465		'textFontCssVars': textFontCssVars,
17466		'linkTextFontCssVars': linkTextFontCssVars
17467	};
17468	
17469	var baseTemplateHtml = baseTemplate(templateVars);
17470	return baseTemplateHtml;
17471};
17472
17473Mfe.Widgets['info-block'].prototype.onAttach = function() {
17474	var self = this;
17475	if (this.mfe.viewMode == 'edit') {
17476		var $editableEls = this.$el.find(' > *');
17477		var $editableEl = $($editableEls[0]);
17478		
17479		$editableEl.on('blur', function(e) {
17480
17481			$editableEl.attr('contenteditable', false);
17482			$editableEl.removeClass('mfe-editable-editing');
17483
17484			self.mfe.exitEditMode();
17485		});
17486	}
17487};
17488
17489Mfe.Widgets['info-block'].prototype.enterEditMode = function(setting) {
17490	if (setting == 'info-block') {
17491		this.mode = 'edit';
17492		
17493		var $editableEls = this.$el.find(' > *');
17494		var $editableEl = $($editableEls[0]);
17495		
17496		$editableEl.attr('contenteditable', true);
17497		$editableEl.addClass('mfe-editable-editing');
17498		
17499		$editableEl.focus();
17500	}
17501};
17502
17503Mfe.Widgets['intro'] = function(mfe, widgetId, options) {
17504	this.mfe = mfe;
17505	this.name = 'intro';
17506	this.baseTemplate = 'base-default';
17507	Mfe.Widget.apply(this, arguments);
17508};
17509Mfe.Widgets['intro'].inherits(Mfe.Widget);
17510Mfe.Widgets['intro'].getSettings = function() {
17511	return [
17512		{ "type": "text", "name": "title", "default": '', "description": "Title" },
17513		{ "type": "text", "name": "description", "default": '', "description": "Description" },
17514		{ "type": "text", "name": "link-1-text", "default": '', "description": "Link 1 text" },
17515		{ "type": "text", "name": "link-1-path", "default": '', "description": "Link 1 path" },
17516		{ "type": "text", "name": "link-2-text", "default": '', "description": "Link 2 text" },
17517		{ "type": "text", "name": "link-2-path", "default": '', "description": "Link 2 path" },
17518		{ "type": "text", "name": "link-3-text", "default": '', "description": "Link 3 text" },
17519		{ "type": "text", "name": "link-3-path", "default": '', "description": "Link 3 path" },
17520		{ "type": "text", "name": "link-4-text", "default": '', "description": "Link 4 text" },
17521		{ "type": "text", "name": "link-4-path", "default": '', "description": "Link 4 path" }
17522	];
17523};
17524Mfe.Widgets['intro'].prototype.onRender = function() {
17525	var baseTemplate = this.mfe.getTemplate('widgets', 'intro', this.baseTemplate);
17526
17527	var optionTitle = this.getOption('title', '');
17528	var optionDescription = this.getOption('description', '');
17529	var optionLink1Text = this.getOption('link-1-text', '');
17530	var optionLink1Path = this.getOption('link-1-path', '');
17531	var optionLink2Text = this.getOption('link-2-text', '');
17532	var optionLink2Path = this.getOption('link-2-path', '');
17533	var optionLink3Text = this.getOption('link-3-text', '');
17534	var optionLink3Path = this.getOption('link-3-path', '');
17535	var optionLink4Text = this.getOption('link-4-text', '');
17536	var optionLink4Path = this.getOption('link-4-path', '');
17537
17538	var title = optionTitle;
17539	var description = optionDescription;
17540	
17541	var templateVars = {
17542		'title': title,
17543		'description': description,
17544		'link1': { 'text': optionLink1Text, 'path': optionLink1Path },
17545		'link2': { 'text': optionLink2Text, 'path': optionLink2Path },
17546		'link3': { 'text': optionLink3Text, 'path': optionLink3Path },
17547		'link4': { 'text': optionLink4Text, 'path': optionLink4Path }
17548	};
17549	
17550	var baseTemplateHtml = baseTemplate(templateVars);
17551	return baseTemplateHtml;
17552};
17553
17554Mfe.Widgets['intro'].prototype.onAttach = function() {
17555
17556};
17557
17558Mfe.Widgets['media-content'] = function(mfe, widgetId, options) {
17559	this.mfe = mfe;
17560	this.name = 'media-content';
17561	this.baseTemplate = 'base-default';
17562	Mfe.Widget.apply(this, arguments);
17563};
17564Mfe.Widgets['media-content'].inherits(Mfe.Widget);
17565Mfe.Widgets['media-content'].title = 'Media content';
17566Mfe.Widgets['media-content'].getSettings = function() {
17567	var settings = {
17568		'sections': [
17569			{ 
17570				'name': 'data', 
17571				'title': 'Data', 
17572				'settings': [
17573					{ "type": "options", "name": "data-source", "default": "context", "description": "Data source", "options": [ { "value": "context", "label": "Context" } ] },
17574				]
17575			}
17576		]
17577	};
17578	
17579	return settings;
17580};
17581Mfe.Widgets['media-content'].prototype.onRender = function() {
17582	var fetchResult = this.fetch();
17583	if (isEmpty(fetchResult) === false) {
17584		return this.renderContent(fetchResult);
17585	}
17586	
17587	// Return empty template with loading state
17588	var baseTemplate = this.mfe.getTemplate('widgets', 'media-content', this.baseTemplate);
17589	var templateVars = {};
17590	
17591	var baseTemplateHtml = baseTemplate(templateVars);
17592	return baseTemplateHtml;
17593};
17594
17595Mfe.Widgets['media-content'].prototype.onAttach = function() {
17596
17597};
17598
17599Mfe.Widgets['media-content'].prototype.fetch = function() {
17600	var self = this;
17601	
17602	return Mfe.Widget.Content.fetchContent(this.mfe, this.options, null, 'single', function(response) {
17603		var media = response;
17604		self.display(self.renderContent(media));
17605	}); 
17606};
17607
17608Mfe.Widgets['media-content'].prototype.display = function(html) {
17609	this.setElementHtml(html);
17610};
17611
17612Mfe.Widgets['media-content'].prototype.renderContent = function(media) {
17613	var templateVars = media.getTemplateVars(this.mfe);
17614	
17615	var baseTemplate = this.mfe.getTemplate('widgets', 'media-content', this.baseTemplate);
17616	var baseTemplateHtml = baseTemplate(templateVars);
17617	
17618	return baseTemplateHtml;
17619};
17620
17621Mfe.Widgets['menu'] = function(mfe, widgetId, options) {
17622	this.mfe = mfe;
17623	this.name = 'menu';
17624	this.baseTemplate = 'base-default';
17625	Mfe.Widget.apply(this, arguments);
17626};
17627Mfe.Widgets['menu'].inherits(Mfe.Widget);
17628Mfe.Widgets['menu'].getSettings = function() {
17629	return [
17630		{ "type": "menu", "name": "menu-id", "default": null, "description": "Menu" },
17631		{ "type": "boolean", "name": "autoselect-first-item", "default": false, "description": "Auto-select first item if nothing matches" },
17632		{ "type": "options", "name": "style", "default": "default", "description": "Style", "options": [ 
17633				{ "value": "default", "label": "Default (horizontal)" },  
17634				{ "value": "vertical", "label": "Vertical" } ,
17635				{ "value": "grid", "label": "Grid" }
17636			]
17637		}
17638	];
17639};
17640Mfe.Widgets['menu'].prototype.onRender = function() {
17641	// Check for menus
17642	
17643	var menuId = this.getOption('menu-id', null);
17644	var menu = null;
17645	
17646	if (isEmpty(menuId) === false) {
17647		menu = this.mfe.siteBundle.getMenuById(menuId);
17648	} else if (menuId === '0') {
17649		return '';
17650	} else {
17651		var menuType = this.getOption('menu-type', 'header');
17652		menu = this.mfe.siteBundle.getMenuByLanguage(menuType, this.mfe.pageLanguage);
17653	}
17654	
17655	if (isEmpty(menu) === true) {
17656		return '';
17657		//return 'Could not find menu';
17658	}
17659	
17660	var menuItemFontCssVars = '';
17661	var menuItemFontHoverCssVars = '';
17662	var menuItemFontSelectedCssVars = '';
17663	var menuItemFontSpecialCssVars = '';
17664	
17665	var menuItemFontConfig = this.getOption('menu-item-font', null);
17666	if (menuItemFontConfig !== null) {
17667		menuItemFontCssVars = Mfe.Fonts.generateFontConfigCssVars('menu-item', menuItemFontConfig, this.mfe);
17668	}
17669	
17670	var menuItemFontConfig = this.getOption('menu-item-special-font', null);
17671	if (menuItemFontConfig !== null) {
17672		menuItemFontSpecialCssVars = Mfe.Fonts.generateFontConfigCssVars('menu-item-special', menuItemFontConfig, this.mfe);
17673	}
17674	
17675	var menuItemSelectedFontConfig = this.getOption('menu-item-selected-font', null);
17676	if (menuItemSelectedFontConfig !== null) {
17677		menuItemFontSelectedCssVars = Mfe.Fonts.generateFontConfigCssVars('menu-item-selected', menuItemSelectedFontConfig, this.mfe);
17678	}
17679	
17680	var menuItemHoverFontConfig = this.getOption('menu-item-hover-font', null);
17681	if (menuItemHoverFontConfig !== null) {
17682		menuItemFontHoverCssVars = Mfe.Fonts.generateFontConfigCssVars('menu-item-hover', menuItemHoverFontConfig, this.mfe);
17683	}
17684	
17685	var menuFontCssVars = '';
17686	if (menuItemFontCssVars.length > 0) {
17687		menuFontCssVars = menuFontCssVars + menuItemFontCssVars;
17688	}
17689	
17690	if (menuItemFontSelectedCssVars.length > 0) {
17691		menuFontCssVars = menuFontCssVars + (menuFontCssVars.length > 0 ? '; ' : '') + menuItemFontSelectedCssVars;
17692	}
17693	
17694	if (menuItemFontSpecialCssVars.length > 0) {
17695		menuFontCssVars = menuFontCssVars + (menuFontCssVars.length > 0 ? '; ' : '') + menuItemFontSpecialCssVars;
17696	}
17697	
17698	if (menuItemFontHoverCssVars.length > 0) {
17699		menuFontCssVars = menuFontCssVars + (menuFontCssVars.length > 0 ? '; ' : '') + menuItemFontHoverCssVars;
17700	}
17701	
17702	var autoSelectFirstItem = this.getOptionBoolean('autoselect-first-item', false);
17703	
17704	var templateVars = {
17705		'pagePath': this.mfe.getPagePath(),
17706		'availableLanguages': this.mfe.getOtherLanguagePaths(),
17707		'menuFontCssVars': menuFontCssVars,
17708		'items': menu.getItems(this.mfe.getPagePath(), autoSelectFirstItem)
17709	};
17710	
17711	var baseTemplate = this.mfe.getTemplate('widgets', 'menu', this.baseTemplate);
17712
17713	
17714	var baseTemplateHtml = baseTemplate(templateVars);
17715	return baseTemplateHtml;
17716};
17717
17718Mfe.Widgets['menu'].prototype.onAttach = function() {
17719
17720};
17721
17722Mfe.Widgets['newsletter-popup'] = function(mfe, widgetId, options) {
17723	this.mfe = mfe;
17724	this.name = 'newsletter-popup';
17725	this.baseTemplate = 'base-default';
17726	options['data-source'] = 'context';
17727	Mfe.Widget.apply(this, arguments);
17728};
17729Mfe.Widgets['newsletter-popup'].inherits(Mfe.Widget);
17730Mfe.Widgets['newsletter-popup'].title = 'Newsletter popup';
17731Mfe.Widgets['newsletter-popup'].getSettings = function() {
17732	return [
17733		{ "type": "options", "name": "provider", "default": "mailchimp", "description": "Newsletter provider", "options": [ { "value": "mailchimp", "label": "Mailchimp" } ] },
17734		{ "type": "text", "name": "email-placeholder", "default": "E.g. [email protected]", "description": "Email placeholder" },
17735		{ "type": "options", "name": "mailchimp-style", "default": "email", "description": "Style", "options": [ { "value": "email", "label": "Only email" },  { "value": "email-with-names", "label": "First name, last name, email" } ] },
17736		{ "type": "text", "name": "mailchimp-form-domain", "default": "kinderdonations.us14.list-manage.com", "description": "Mailchimp domain" },
17737		{ "type": "text", "name": "mailchimp-form-id", "default": "", "description": "Mailchimp form ID (10 chars)" },
17738		{ "type": "text", "name": "mailchimp-form-key", "default": "", "description": "Mailchimp form key (26 chars)" },
17739		{ "type": "text", "name": "action-text", "default": "Add", "description": "Subscribe text" },
17740		{ "type": "text", "name": "description", "default": "", "description": "Description" },
17741	];
17742};
17743Mfe.Widgets['newsletter-popup'].prototype.onRender = function() {
17744	return this.renderContent();
17745};
17746
17747Mfe.Widgets['newsletter-popup'].prototype.onAttach = function() {
17748
17749};
17750
17751Mfe.Widgets['newsletter-popup'].prototype.display = function(html) {
17752	this.setElementHtml(html);
17753};
17754
17755Mfe.Widgets['newsletter-popup'].prototype.renderContent = function() {
17756	var optionProvider = this.getOption('provider');
17757	var optionProviderStyle = this.getOption(optionProvider + '-style');
17758	
17759	var templateName = optionProvider + '-' + optionProviderStyle;
17760	
17761	var templateVars = {
17762		'editable': (this.mfe.viewMode == 'edit'),
17763		'actionText': this.getOption('action-text', ''),
17764		'description': this.getOption('description', ''),
17765		'emailPlaceholder': this.getSettingConfig('email-placeholder', true),
17766		'mailchimpDomain': this.getOption('mailchimp-form-domain', 'kinderdonations.us14.list-manage.com'),
17767		'mailchimpFormId': this.getOption('mailchimp-form-id', ''),
17768		'mailchimpFormKey': this.getOption('mailchimp-form-key', '')
17769	};
17770	
17771	var baseTemplate = this.mfe.getTemplate('widgets', 'newsletter-popup', templateName);
17772	var baseTemplateHtml = baseTemplate(templateVars);
17773	
17774	return baseTemplateHtml;
17775};
17776
17777Mfe.Widgets['newsletter-signup'] = function(mfe, widgetId, options) {
17778	this.mfe = mfe;
17779	this.name = 'newsletter-signup';
17780	this.baseTemplate = 'base-default';
17781	options['data-source'] = 'context';
17782	Mfe.Widget.apply(this, arguments);
17783};
17784Mfe.Widgets['newsletter-signup'].inherits(Mfe.Widget);
17785Mfe.Widgets['newsletter-signup'].title = 'Newsletter signup';
17786Mfe.Widgets['newsletter-signup'].getSettings = function() {
17787	return [
17788		{ "type": "options", "name": "provider", "default": "mailchimp", "description": "Newsletter provider", "options": [ { "value": "mailchimp", "label": "Mailchimp" } ] },
17789		{ "type": "text", "name": "email-placeholder", "default": "E.g. [email protected]", "description": "Email placeholder" },
17790		{ "type": "options", "name": "mailchimp-style", "default": "email", "description": "Style", "options": [ { "value": "email", "label": "Only email" },  { "value": "email-with-names", "label": "First name, last name, email" } ] },
17791		{ "type": "text", "name": "mailchimp-form-domain", "default": "kinderdonations.us14.list-manage.com", "description": "Mailchimp domain" },
17792		{ "type": "text", "name": "mailchimp-form-id", "default": "", "description": "Mailchimp form ID (10 chars)" },
17793		{ "type": "text", "name": "mailchimp-form-key", "default": "", "description": "Mailchimp form key (26 chars)" },
17794		{ "type": "text", "name": "action-text", "default": "Add", "description": "Subscribe text" },
17795		{ "type": "text", "name": "description", "default": "", "description": "Description" },
17796	];
17797};
17798Mfe.Widgets['newsletter-signup'].prototype.onRender = function() {
17799	return this.renderContent();
17800};
17801
17802Mfe.Widgets['newsletter-signup'].prototype.onAttach = function() {
17803
17804};
17805
17806Mfe.Widgets['newsletter-signup'].prototype.display = function(html) {
17807	this.setElementHtml(html);
17808};
17809
17810Mfe.Widgets['newsletter-signup'].prototype.renderContent = function() {
17811	var optionProvider = this.getOption('provider');
17812	var optionProviderStyle = this.getOption(optionProvider + '-style');
17813	
17814	var templateName = optionProvider + '-' + optionProviderStyle;
17815	
17816	var templateVars = {
17817		'editable': (this.mfe.viewMode == 'edit'),
17818		'actionText': this.getOption('action-text', ''),
17819		'description': this.getOption('description', ''),
17820		'emailPlaceholder': this.getSettingConfig('email-placeholder', true),
17821		'mailchimpDomain': this.getOption('mailchimp-form-domain', 'kinderdonations.us14.list-manage.com'),
17822		'mailchimpFormId': this.getOption('mailchimp-form-id', ''),
17823		'mailchimpFormKey': this.getOption('mailchimp-form-key', '')
17824	};
17825	
17826	var baseTemplate = this.mfe.getTemplate('widgets', 'newsletter-signup', templateName);
17827	var baseTemplateHtml = baseTemplate(templateVars);
17828	
17829	return baseTemplateHtml;
17830};
17831
17832Mfe.Widgets['pagination'] = function(mfe, widgetId, options) {
17833	this.mfe = mfe;
17834	this.name = 'pagination';
17835	this.baseTemplate = 'base-default';
17836	Mfe.Widget.apply(this, arguments);
17837};
17838Mfe.Widgets['pagination'].inherits(Mfe.Widget);
17839Mfe.Widgets['pagination'].title = 'Pagination';
17840Mfe.Widgets['pagination'].getSettings = function() {
17841	return [
17842		{ "type": "boolean", "name": "show-nothing-found", "default": true, "description": "Show message if nothing is found" }
17843	];
17844};
17845
17846Mfe.Widgets['pagination'].prototype.onRender = function() {
17847	var baseTemplate = this.mfe.getTemplate('widgets', 'pagination', this.baseTemplate);
17848
17849	var totalItems = 12;
17850	var totalPages = 0;
17851	var itemsPerPage = 12;
17852	var pageBasePath = '/';
17853	var currentPage = 1;
17854	
17855	if (this.mfe.context == 'search') {
17856		totalItems = parseInt(this.mfe.contextObject.getTotalMatches());
17857		itemsPerPage = parseInt(this.mfe.contextObject.getItemsPerPage());
17858		totalPages = Math.ceil(totalItems / itemsPerPage);
17859		currentPage = parseInt(this.mfe.contextParams.page);
17860		
17861		pageBasePath = this.mfe.pagePath + '?';
17862		if (typeof this.mfe.contextParams.query !== 'undefined' && this.mfe.contextParams.query.length > 0) {
17863			pageBasePath += 'q=' + encodeURIComponent(this.mfe.contextParams.query) + '&';
17864		}
17865		if (typeof this.mfe.contextParams.authors !== 'undefined' && this.mfe.contextParams.authors.length > 0) {
17866			//pageBasePath += 'q=' + encodeURIComponent(this.mfe.contextParams.query) + '&';
17867		}
17868		if (typeof this.mfe.contextParams.tags !== 'undefined' && this.mfe.contextParams.tags.length > 0) {
17869			pageBasePath += 't=' + encodeURIComponent(this.mfe.contextParams.tags) + '&';
17870		}
17871		if (typeof this.mfe.contextParams.storylines !== 'undefined' && this.mfe.contextParams.storylines.length > 0) {
17872			//pageBasePath += 'q=' + encodeURIComponent(this.mfe.contextParams.query) + '&';
17873		}
17874		
17875		pageBasePath += 'p=';
17876	}
17877		
17878	var templateVars = {
17879		'currentPage': currentPage,
17880		'totalItems': totalItems,
17881		'totalPages': totalPages,
17882		'pages': [],
17883		'prev': null,
17884		'next': null,
17885		'showNothingFound': this.getSettingConfig('show-nothing-found')
17886	};
17887	
17888	if (currentPage > 1) {
17889		templateVars.prev = {
17890			'number': (currentPage - 1),
17891			'path': pageBasePath + encodeURIComponent((currentPage - 1))
17892		};
17893	}
17894	
17895	if (currentPage < totalPages) {
17896		templateVars.next = {
17897			'number': (currentPage + 1),
17898			'path': pageBasePath + encodeURIComponent((currentPage + 1))
17899		};
17900	}
17901	
17902	for (var i = 0; i < totalPages; i++) {
17903		var pageNo = i + 1;
17904		
17905		templateVars.pages.push({
17906			'number': pageNo,
17907			'path': pageBasePath + encodeURIComponent(pageNo)
17908		});
17909	}
17910	
17911	var baseTemplateHtml = baseTemplate(templateVars);
17912	return baseTemplateHtml;
17913};
17914
17915Mfe.Widgets['pagination'].prototype.onAttach = function() {};
17916Mfe.Widgets['pagination'].prototype.onSettingChanged = function(settingName, settingValue) {};
17917Mfe.Widgets['pagination'].prototype.enterEditMode = function(setting) {};
17918
17919Mfe.Widgets['payment-check'] = function(mfe, widgetId, options) {
17920	this.mfe = mfe;
17921	this.name = 'payment-check';
17922	this.baseTemplate = 'base-default';
17923	
17924	Mfe.Widget.apply(this, arguments);
17925	
17926	this.player = null;
17927};
17928Mfe.Widgets['payment-check'].inherits(Mfe.Widget);
17929Mfe.Widgets['payment-check'].title = 'Payment check';
17930Mfe.Widgets['payment-check'].getSettings = function() {
17931	return [
17932		{ "type": "text", "name": "redirect-payment-mmd-success", "default": "", "description": "Redirect MMD payments - success" },
17933		{ "type": "text", "name": "redirect-payment-mmd-success-gift", "default": "", "description": "Redirect MMD payments - success gift" },
17934		{ "type": "text", "name": "redirect-payment-mmd-cancelled", "default": "", "description": "Redirect MMD payments - cancelled" },
17935		{ "type": "text", "name": "redirect-payment-donation-success", "default": "", "description": "Redirect donation payments - success" },
17936		{ "type": "text", "name": "redirect-payment-donation-cancelled", "default": "", "description": "Redirect donation payments - cancelled" },
17937	];
17938};
17939
17940Mfe.Widgets['payment-check'].prototype.onRender = function() {
17941	var baseTemplate = this.mfe.getTemplate('widgets', 'payment-check', this.baseTemplate);
17942	var templateVars = {};
17943	var baseTemplateHtml = baseTemplate(templateVars);
17944	return baseTemplateHtml;
17945};
17946
17947Mfe.Widgets['payment-check'].prototype.onAttach = function() {
17948	var queryParams = Mfe.Utils.Text.parseQueryParams(window.location.search.substring(1));
17949	
17950	var action = 'check';
17951	if (typeof queryParams['action'] !== 'undefined') {
17952		action = queryParams['action'];
17953	}
17954	
17955	if (typeof queryParams['pid'] !== 'undefined') {
17956		var paymentId = queryParams['pid'];
17957	} else if (typeof queryParams['ref'] !== 'undefined') {
17958		var paymentId = queryParams['ref'];
17959	}
17960	
17961	if (paymentId.substring(0, 5) == 'MMDR-') {
17962		this.paymentType = 'mmd-rental';
17963		this.paymentId = paymentId.substring(5);
17964	} else if (paymentId.substring(0, 2) == 'D-') {
17965		this.paymentType = 'donation';
17966		this.donationId = paymentId.substring(2);
17967	} else if (paymentId.substring(0, 3) == 'ds-') {
17968		this.paymentType = 'donation';
17969		this.donationId = paymentId;
17970	} else if (paymentId.substring(0, 3) == 'dr-') {
17971		this.paymentType = 'donation';
17972		this.donationId = paymentId;
17973	}
17974
17975	if (action == 'check') {
17976		if (this.paymentType == 'mmd-rental') {
17977			this.checkPayment();
17978		} else if (this.paymentType == 'donation') {
17979			this.checkPayment();
17980		}
17981	} else if (action == 'activatePayForward') {
17982		this.activatePayForward();
17983	}
17984};
17985
17986Mfe.Widgets['payment-check'].prototype.checkPayment = function() {
17987	var self = this;
17988	if (this.paymentType == 'mmd-rental') {
17989		var siteName = this.mfe.siteBundle.getName();
17990		Mfe.Api.MediaDistribution.getRentalStatus(siteName, this.paymentId, function(result, response) {
17991			if (result !== true) {
17992				alert('Could not check payment status');
17993				return;
17994			}
17995
17996			if (response.paymentStatus == 'paid') {
17997				if (response.type == 'payforward') {
17998					var redirectUrl = self.getOption('redirect-payment-mmd-success-gift', '/');
17999				} else {
18000					var redirectUrl = self.getOption('redirect-payment-mmd-success', '/');
18001				}
18002				window.location.href = redirectUrl + 'MMDR-' + self.paymentId;
18003				return;
18004			} else if (response.paymentStatus == 'cancelled') {
18005				var redirectUrl = self.getOption('redirect-payment-mmd-cancelled', '/');
18006				window.location.href = redirectUrl;
18007				return;
18008			} else if (response.paymentStatus == 'refused') {
18009				alert('Payment has been refused, going back!');
18010				return;
18011			} else if (response.paymentStatus == 'timeout') {
18012				alert('Payment has timedout, going back!');
18013				return;
18014			}
18015			
18016			self.checkPaymentTimeout = setTimeout(function(){
18017				self.checkPayment();
18018			}, 1000);
18019		});
18020	} else if (this.paymentType == 'donation') {
18021		var siteName = this.mfe.siteBundle.getName();
18022		
18023		Mfe.Api.Donations.getStatus(siteName, this.donationId, function(result, paymentStatus) {
18024
18025			if (result !== true) {
18026				//alert('Could not check payment status');
18027				return;
18028			}
18029			
18030			if (paymentStatus == 'paid' || paymentStatus === 'active') {
18031				var redirectUrl = self.getOption('redirect-payment-donation-success', '/');
18032				window.location.href = redirectUrl + '?ref=' + self.donationId;
18033				return;
18034			} else if (paymentStatus == 'cancelled') {
18035				var redirectUrl = self.getOption('redirect-payment-donation-cancelled', '/');
18036				window.location.href = redirectUrl;
18037				return;
18038			} else if (paymentStatus == 'refused') {
18039				var redirectUrl = self.getOption('redirect-payment-donation-cancelled', '/');
18040				window.location.href = redirectUrl;
18041				return;
18042			} else if (paymentStatus == 'timeout') {
18043				var redirectUrl = self.getOption('redirect-payment-donation-cancelled', '/');
18044				window.location.href = redirectUrl;
18045				return;
18046			}
18047			
18048			self.checkPaymentTimeout = setTimeout(function(){
18049				self.checkPayment();
18050			}, 1000);
18051		});
18052	}
18053};
18054
18055Mfe.Widgets['payment-check'].prototype.activatePayForward = function() {
18056	var self = this;
18057	if (this.paymentType == 'mmd-rental') {
18058		var siteName = this.mfe.siteBundle.getName();
18059		Mfe.Api.MediaDistribution.activatePayForward(siteName, this.paymentId, function(result, response) {
18060			if (result !== true) {
18061				alert('Could not check activate pay forward');
18062				return;
18063			}
18064			
18065			alert(result);
18066
18067			/*if (response.paymentStatus == 'paid') {
18068				if (response.type == 'payforward') {
18069					var redirectUrl = self.getOption('redirect-payment-mmd-success-gift', '/');
18070				} else {
18071					var redirectUrl = self.getOption('redirect-payment-mmd-success', '/');
18072				}
18073				window.location.href = redirectUrl + 'MMDR-' + self.paymentId;
18074				return;
18075			} else if (response.paymentStatus == 'cancelled') {
18076				var redirectUrl = self.getOption('redirect-payment-mmd-cancelled', '/');
18077				window.location.href = redirectUrl;
18078				return;
18079			} else if (response.paymentStatus == 'refused') {
18080				alert('Payment has been refused, going back!');
18081				return;
18082			} else if (response.paymentStatus == 'timeout') {
18083				alert('Payment has timedout, going back!');
18084				return;
18085			}
18086			
18087			alert(response.paymentStatus);
18088			
18089			self.checkPaymentTimeout = setTimeout(function(){
18090				self.checkPayment();
18091			}, 1000);*/
18092		});
18093	}
18094};
18095
18096Mfe.Widgets['player'] = function(mfe, widgetId, options) {
18097	this.mfe = mfe;
18098	this.name = 'player';
18099	this.baseTemplate = 'base-default';
18100	
18101	Mfe.Widget.apply(this, arguments);
18102	
18103	this.mode = 'mmd';
18104	this.mmdHasRentalCode = false;
18105	
18106	this.player = null;
18107};
18108Mfe.Widgets['player'].inherits(Mfe.Widget);
18109Mfe.Widgets['player'].title = 'Player';
18110Mfe.Widgets['player'].getSettings = function() {
18111	return [
18112		{ "type": "text", "name": "payment-redirect-url", "default": "", "description": "Redirect to URL after payment" },
18113		{ "type": "text", "name": "media-identifier", "default": "", "description": "Media identifier" },
18114		{ "type": "text", "name": "media-cover-image", "default": "", "description": "Media cover image" },
18115		{ "type": "options", "name": "mode", "default": "mmd", "description": "Input style", "options": [
18116				{ "value": "mmd", "label": "MMD" },  
18117				{ "value": "simple", "label": "Simple player" }
18118			]
18119		},
18120		{ "type": "text", "name": "lang-simple-start-video", "default": "Bekijk trailer", "description": "Simple start video text" },
18121		{ "type": "text", "name": "lang-mmd-home-content", "default": "", "description": "Main content" },
18122		{ "type": "text", "name": "lang-mmd-button-main-rent", "default": "Huur en kijk direct", "description": "Main Rental button text" },
18123		{ "type": "text", "name": "lang-mmd-button-main-gift", "default": "Geef cadeau", "description": "Main Gift button text" },
18124		{ "type": "text", "name": "lang-mmd-button-main-trailer", "default": "Bekijk trailer", "description": "Main Trailer button text" },
18125		
18126		{ "type": "text", "name": "lang-mmd-rent-info-title-html", "default": "Rent <strong>DOWN to EARTH</strong> for &euro;4,99", "description": "Rent Info title text" },
18127		{ "type": "text", "name": "lang-mmd-rent-info-description-html", "default": "", "description": "Rent Info description text" },
18128		{ "type": "text", "name": "lang-mmd-rent-info-button-back", "default": "Back", "description": "Rent Info Back-button text" },
18129		{ "type": "text", "name": "lang-mmd-rent-info-button-continue", "default": "Continue to payment", "description": "Rent Info continue-button text" },
18130		
18131		{ "type": "text", "name": "lang-mmd-rent-title-html", "default": "Rent <strong>DOWN to EARTH</strong> for &euro;4,99", "description": "Rent title  text" },
18132		{ "type": "text", "name": "lang-mmd-rent-description-html", "default": "You will be able to watch DOWN to EARTH online for 36 hours.<br />Payments are securely processed by Mollie.", "description": "Rent description text" },
18133		
18134		{ "type": "text", "name": "lang-mmd-rent-input-label-email", "default": "Your email address", "description": "Rent input label email text" },
18135		{ "type": "text", "name": "lang-mmd-rent-input-placeholder-email", "default": "e.g. [email protected]", "description": "Rent input placeholder email text" },
18136		{ "type": "text", "name": "lang-mmd-rent-button-back", "default": "Back", "description": "Rent Back-button text" },
18137		{ "type": "text", "name": "lang-mmd-rent-button-continue", "default": "Continue to payment", "description": "Rent Continue-button text" },
18138		{ "type": "text", "name": "lang-mmd-gift-title-html", "default": "Rent <strong>DOWN to EARTH</strong> for &euro;4,99", "description": "Gift title text" },
18139		{ "type": "text", "name": "lang-mmd-gift-description-html", "default": "The recipient will be able to watch DOWN to EARTH online for 36 hours.<br />Payments are securely processed by Mollie.", "description": "Gift description text" },
18140		{ "type": "text", "name": "lang-mmd-gift-input-label-email-sender", "default": "Your email address", "description": "Gift input label email text" },
18141		{ "type": "text", "name": "lang-mmd-gift-input-label-email-recipient", "default": "Recipient email", "description": "Gift input label email text" },
18142		{ "type": "text", "name": "lang-mmd-gift-input-label-name-sender", "default": "Your name", "description": "Gift input label sender email text" },
18143		{ "type": "text", "name": "lang-mmd-gift-input-label-name-recipient", "default": "Recipient name", "description": "Gift input label recipient email text" },
18144		{ "type": "text", "name": "lang-mmd-gift-input-placeholder-email-sender", "default": "e.g. [email protected]", "description": "Gift input placeholder email text" },
18145		{ "type": "text", "name": "lang-mmd-gift-input-placeholder-email-recipient", "default": "e.g. [email protected]", "description": "Gift input placeholder email text" },
18146		{ "type": "text", "name": "lang-mmd-gift-input-placeholder-name-sender", "default": "e.g. Elon Musk", "description": "Gift input placeholder sender name text" },
18147		{ "type": "text", "name": "lang-mmd-gift-input-placeholder-name-recipient", "default": "e.g. Berry", "description": "Gift input placeholder recipient name text" },
18148		{ "type": "text", "name": "lang-mmd-gift-button-back", "default": "Back", "description": "Gift Back-button text" },
18149		{ "type": "text", "name": "lang-mmd-gift-button-continue", "default": "Continue to payment", "description": "Gift Continue-button text" },
18150		
18151
18152		{ "type": "text", "name": "lang-mmd-gift-info-title-html", "default": "Rent <strong>DOWN to EARTH</strong> for &euro;4,99", "description": "Gift Info title text" },
18153		{ "type": "text", "name": "lang-mmd-gift-info-description-html", "default": "", "description": "Gift Info description text" },
18154		{ "type": "text", "name": "lang-mmd-gift-info-button-back", "default": "Back", "description": "Gift Info Back-button text" },
18155		{ "type": "text", "name": "lang-mmd-gift-info-button-continue", "default": "Continue to payment", "description": "Gift Info continue-button text" },
18156		
18157	];
18158};
18159
18160Mfe.Widgets['player'].prototype.onRender = function() {
18161	var mode = this.getSettingConfig('mode', 'mmd');
18162	
18163	var mediaIdentifier = '';
18164	
18165	if (mode == 'simple') {
18166		this.baseTemplate = 'simple';
18167		mediaIdentifier = this.getSettingConfig('media-identifier', '');
18168	}
18169	
18170	var mediaCoverImage = this.getSettingConfig('media-cover-image', '');
18171	
18172	var baseTemplate = this.mfe.getTemplate('widgets', 'player', this.baseTemplate);
18173	var templateVars = {
18174		'mediaIdentifier': mediaIdentifier,
18175		'mediaCoverImage': mediaCoverImage,
18176		'langSimpleStartVideo': this.getSettingConfig('lang-simple-start-video', 'Bekijk trailer'),
18177		'langMmdHomeContent': this.getSettingConfig('lang-mmd-home-content', ''),
18178		'langMmdButtonMainRent': this.getSettingConfig('lang-mmd-button-main-rent', 'Huur en kijk direct'),
18179		'langMmdButtonMainGift': this.getSettingConfig('lang-mmd-button-main-gift', 'Geef cadeau'),
18180		'langMmdButtonMainTrailer': this.getSettingConfig('lang-mmd-button-main-trailer', 'Bekijk trailer'),
18181		'langMmdRentTitleHtml': this.getSettingConfig('lang-mmd-rent-title-html', 'Rent <strong>DOWN to EARTH</strong> for &euro;4,99'),
18182		'langMmdRentDescriptionHtml': this.getSettingConfig('lang-mmd-rent-description-html', 'You will be able to watch DOWN to EARTH online for 36 hours.<br />Payments are securely processed by Mollie.'),
18183		'langMmdRentInputLabelEmail': this.getSettingConfig('lang-mmd-rent-input-label-email', 'Your email address'),
18184		'langMmdRentInputPlaceholderEmail': this.getSettingConfig('lang-mmd-rent-input-placeholder-email', 'e.g. [email protected]'),
18185		'langMmdRentButtonBack': this.getSettingConfig('lang-mmd-rent-button-back', 'Back'),
18186		'langMmdRentButtonContinue': this.getSettingConfig('lang-mmd-rent-button-continue', 'Continue to payment'),
18187		'langMmdRentInfoTitleHtml': this.getSettingConfig('lang-mmd-rent-info-title-html', 'Rent <strong>DOWN to EARTH</strong> for &euro;4,99'),
18188		'langMmdRentInfoDescriptionHtml': this.getSettingConfig('lang-mmd-rent-info-description-html', 'You will be able to watch DOWN to EARTH online for 36 hours.<br />Payments are securely processed by Mollie.'),
18189		/*'langMmdRentInfoInputLabelEmail': this.getSettingConfig('lang-mmd-rent-info-input-label-email', 'Your email address'),
18190		'langMmdRentInfoInputPlaceholderEmail': this.getSettingConfig('lang-mmd-rent-info-input-placeholder-email', 'e.g. [email protected]'),*/
18191		'langMmdRentInfoButtonBack': this.getSettingConfig('lang-mmd-rent-info-button-back', 'Back'),
18192		'langMmdRentInfoButtonContinue': this.getSettingConfig('lang-mmd-rent-info-button-continue', 'Continue to payment'),
18193		'langMmdGiftTitleHtml': this.getSettingConfig('lang-mmd-gift-title-html', 'Rent <strong>DOWN to EARTH</strong> for &euro;4,99'),
18194		'langMmdGiftDescriptionHtml': this.getSettingConfig('lang-mmd-gift-description-html', 'The recipient will be able to watch DOWN to EARTH online for 36 hours.<br />Payments are securely processed by Mollie.'),
18195		'langMmdGiftInputLabelEmailSender': this.getSettingConfig('lang-mmd-gift-input-label-email-sender', 'Your email address'),
18196		'langMmdGiftInputLabelEmailRecipient': this.getSettingConfig('lang-mmd-gift-input-label-email-recipient', 'Your email address'),
18197		'langMmdGiftInputLabelNameSender': this.getSettingConfig('lang-mmd-gift-input-label-name-sender', 'Your email address'),
18198		'langMmdGiftInputLabelNameRecipient': this.getSettingConfig('lang-mmd-gift-input-label-name-recipient', 'Your email address'),
18199		'langMmdRentInputPlaceholderEmailSender': this.getSettingConfig('lang-mmd-gift-input-placeholder-email-sender', 'e.g. [email protected]'),
18200		'langMmdRentInputPlaceholderEmailRecipient': this.getSettingConfig('lang-mmd-gift-input-placeholder-email-recipient', 'e.g. [email protected]'),
18201		'langMmdRentInputPlaceholderNameSender': this.getSettingConfig('lang-mmd-gift-input-placeholder-name-sender', 'e.g. [email protected]'),
18202		'langMmdRentInputPlaceholderNameRecipient': this.getSettingConfig('lang-mmd-gift-input-placeholder-name-recipient', 'e.g. [email protected]'),
18203		'langMmdGiftButtonBack': this.getSettingConfig('lang-mmd-rent-button-back', 'Back'),
18204		'langMmdGiftButtonContinue': this.getSettingConfig('lang-mmd-rent-button-continue', 'Continue to payment'),
18205		
18206		'langMmdGiftInfoTitleHtml': this.getSettingConfig('lang-mmd-gift-info-title-html', 'Rent <strong>DOWN to EARTH</strong> for &euro;4,99'),
18207		'langMmdGiftInfoDescriptionHtml': this.getSettingConfig('lang-mmd-gift-info-description-html', 'You will be able to watch DOWN to EARTH online for 36 hours.<br />Payments are securely processed by Mollie.'),
18208		'langMmdGiftInfoButtonBack': this.getSettingConfig('lang-mmd-gift-info-button-back', 'Back'),
18209		'langMmdGiftInfoButtonContinue': this.getSettingConfig('lang-mmd-gift-info-button-continue', 'Continue to payment'),
18210
18211	}; 
18212	var baseTemplateHtml = baseTemplate(templateVars);
18213	return baseTemplateHtml;
18214};
18215
18216Mfe.Widgets['player'].prototype.initJsHls = function(cb) {
18217	var self = this;
18218	
18219	var beforeEl = document.getElementsByTagName('script')[0];
18220	var scriptEl = document.createElement('script');
18221	scriptEl.async=1;
18222	scriptEl.src='/static/js/libs/hls.js';
18223	scriptEl.onload = function(){};
18224	beforeEl.parentNode.insertBefore(scriptEl,beforeEl);
18225};
18226
18227Mfe.Widgets['player'].prototype.initJsFingerprint = function(cb) {
18228	var self = this;
18229	
18230	var beforeEl = document.getElementsByTagName('script')[0];
18231	var scriptEl = document.createElement('script');
18232	scriptEl.async=1;
18233	scriptEl.src='/static/js/libs/fingerprint2.js';
18234	scriptEl.onload = function(){};
18235	beforeEl.parentNode.insertBefore(scriptEl,beforeEl);
18236};
18237
18238Mfe.Widgets['player'].prototype.onAttach = function() {
18239	var self = this;
18240	
18241	this.initJsHls();
18242	this.initJsFingerprint();
18243	
18244	var mode = this.getSettingConfig('mode', 'mmd');
18245	
18246	if (mode == 'simple') {
18247		
18248		this.$el.find('.player-poster').on('click', function(e){
18249			var mediaIdentifier = self.getSettingConfig('media-identifier', '');
18250			self.loadMediaUsingIdentifier(mediaIdentifier);
18251		});
18252	} else {
18253		
18254	}
18255	
18256	
18257	this.$el.find('.mmd .screens > .has-rented button.play').on('click', function(e){
18258		self.showMmdScreen('play', { 'action': 'play' });
18259	});
18260	
18261	this.$el.find('.mmd .screens > .home button.rent').on('click', function(e){
18262		self.showMmdScreen('rent-info', { 'action': 'rent-info' });
18263	});
18264	
18265	this.$el.find('.mmd .screens > .home button[data-action="rent"]').on('click', function(e){
18266		self.showMmdScreen('rent-info', {});
18267	});
18268	
18269	this.$el.find('.mmd .screens > .home button[data-action="trailer"]').on('click', function(e){
18270		self.showMmdScreen('trailer', {});
18271	});
18272	
18273	this.$el.find('.mmd .screens > .home button[data-action="gift"]').on('click', function(e){
18274		self.showMmdScreen('rent-payforward-info', { });
18275	});
18276	
18277	/*this.$el.find('.mmd button.rent').on('click', function(e){
18278		self.showMmdScreen('login', { 'action': 'rent' });
18279	});*/
18280	
18281	this.$el.find('.mmd .rent-payforward button[data-action="back"]').on('click', function(e){
18282		self.showMmdScreen('home', {});
18283	});
18284	
18285	this.$el.find('.mmd .rent button[data-action="back"], .mmd .rent-info button[data-action="back"], .mmd .rent-payforward-info button[data-action="back"]').on('click', function(e){
18286		self.showMmdScreen('home', {});
18287	});
18288	
18289	this.$el.find('.mmd .rent-info button[data-action="continue"]').on('click', function(e){
18290		self.showMmdScreen('rent', {});
18291	});
18292	
18293	this.$el.find('.mmd .rent-payforward-info button[data-action="continue"]').on('click', function(e){
18294		self.showMmdScreen('rent-payforward', {});
18295	});
18296	
18297	this.$el.find('.close-trailer').on('click', function(e) {
18298		if (self.player && self.player.destroy) {
18299			self.player.destroy();
18300		}
18301		$('html').removeClass('player-video-playing');
18302		self.showMmdScreen('home', {});
18303	});
18304	
18305	this.$el.find('.mmd .rent button[data-action="rent"]').on('click', function(e){
18306		var $emailInputEl = self.$el.find('.mmd .rent input[name="email"]');
18307		
18308		var fieldEmail = $emailInputEl.val();
18309		var fieldRentalProductId = '1';
18310		
18311		var siteName = self.mfe.siteBundle.getName();
18312		
18313		var redirectUrl = self.getOption('payment-redirect-url', '');
18314		if (redirectUrl.substring(0, 1) == '/') {
18315			redirectUrl = 'https://' + document.domain + redirectUrl;
18316		}
18317		
18318		var pageLanguage;
18319		if (self.mfe.currentPage.pageLanguage) {
18320			pageLanguage = self.mfe.currentPage.pageLanguage;
18321		} else if (self.mfe.currentPage.language) {
18322			pageLanguage = self.mfe.currentPage.language;
18323		}
18324
18325		Mfe.Api.MediaDistribution.rent(siteName, pageLanguage, fieldEmail, fieldRentalProductId, redirectUrl, 'normal', '', '','', '', function(result, response) {
18326			if (result !== true) {
18327				alert('Could not create this payment');
18328				return;
18329			}
18330			
18331			if (response.type == 'redirect') {
18332				if (response.url === null) {
18333					alert('Could not create payment. Please try again later.');
18334					return;
18335				}
18336					
18337				window.location.href = response.url;
18338			}
18339		});
18340	});
18341	
18342	this.$el.find('.mmd .rent-payforward button[data-action="rent"]').on('click', function(e){
18343		var $nameInputEl = self.$el.find('.mmd .rent-payforward input[name="name"]');
18344		var $emailInputEl = self.$el.find('.mmd .rent-payforward input[name="email"]');
18345		var $recipientNameInputEl = self.$el.find('.mmd .rent-payforward input[name="recipientName"]');
18346		var $recipientEmailInputEl = self.$el.find('.mmd .rent-payforward input[name="recipientEmail"]');
18347		
18348		var fieldEmail = $emailInputEl.val();
18349		var fieldName = $nameInputEl.val();
18350		var fieldRecipientEmail = $recipientEmailInputEl.val();
18351		var fieldRecipientName = $recipientNameInputEl.val();
18352		
18353		var fieldRentalProductId = '1';
18354		
18355		var siteName = self.mfe.siteBundle.getName();
18356		
18357		var redirectUrl = self.getOption('payment-redirect-url', '');
18358		if (redirectUrl.substring(0, 1) == '/') {
18359			redirectUrl = 'https://' + document.domain + redirectUrl;
18360		}
18361		
18362		var pageLanguage;
18363		if (self.mfe.currentPage.pageLanguage) {
18364			pageLanguage = self.mfe.currentPage.pageLanguage;
18365		} else if (self.mfe.currentPage.language) {
18366			pageLanguage = self.mfe.currentPage.language;
18367		}
18368
18369		Mfe.Api.MediaDistribution.rent(siteName, pageLanguage, fieldEmail, fieldRentalProductId, redirectUrl, 'payforward', fieldName, fieldRecipientEmail, fieldRecipientName, '', function(result, response) {
18370			if (result !== true) {
18371				alert('Could not create this payment');
18372				return;
18373			}
18374			
18375			if (response.type == 'redirect') {
18376				if (response.url === null) {
18377					alert('Could not create payment. Please try again later.');
18378					return;
18379				}
18380					
18381				window.location.href = response.url;
18382			}
18383		});
18384	});
18385
18386	// Load video depending on mode
18387	var queryParams = Mfe.Utils.Text.parseQueryParams(window.location.search.substring(1));
18388	
18389	if (mode == 'mmd') {
18390		var initialScreen = 'home';
18391		if (this.mode == 'mmd') {
18392			if (typeof queryParams.t !== 'undefined' && queryParams.t.substring(0,5) == 'MMDR-') {
18393				this.mmdHasRentalCode = true;
18394				this.rentalCode = queryParams.t.substring(5);
18395				initialScreen = 'has-rented';
18396			}
18397		}
18398		
18399		var hash = null;
18400		if (typeof this.mfe.pageHash !== 'undefined' && this.mfe.pageHash !== null) {
18401			hash = this.mfe.pageHash;
18402		} else if (window.location.hash) {
18403			hash = window.location.hash;
18404		}
18405		
18406		if (hash == '#rent') {
18407			this.showMmdScreen('rent-info');
18408		} else if (hash == '#gift') {
18409			this.showMmdScreen('rent-payforward-info');
18410		} else {
18411			this.showMmdScreen(initialScreen);
18412		}
18413		
18414	}
18415};
18416
18417Mfe.Widgets['player'].prototype.showMmdScreen = function(screen, options) {
18418	var self = this;
18419	
18420	this.$el.find('.mmd .screens > *').removeClass('show');
18421	
18422	if (screen == 'trailer') {
18423		this.$el.find('.mmd').hide();
18424		this.$el.find('.player').addClass('show');
18425		this.$el.find('.close-trailer').addClass('show');
18426		
18427		this.loadMediaUsingIdentifier('trailer-en');
18428		
18429	} else if (screen == 'rent') {
18430		this.$el.find('.player').removeClass('show');
18431		this.$el.find('.close-trailer').removeClass('show');
18432		this.$el.find('.mmd').show();
18433		this.$el.find('.mmd .screens .' + screen).addClass('show');
18434		
18435		// Load video
18436		//this.loadMediaUsingIdentifier('docu-nl');
18437	} else if (screen == 'rent-info') {
18438		this.$el.find('.player').removeClass('show');
18439		this.$el.find('.close-trailer').removeClass('show');
18440		this.$el.find('.mmd').show();
18441		this.$el.find('.mmd .screens .' + screen).addClass('show');
18442		
18443		// Load video
18444		//this.loadMediaUsingIdentifier('docu-nl');
18445	} else if (screen == 'has-rented') {
18446		this.$el.find('.mmd').hide();
18447		this.$el.find('.mmd').show();
18448		this.$el.find('.mmd .screens .' + screen).addClass('show');
18449	} else if (screen == 'play') {
18450		this.$el.find('.mmd').hide();
18451		this.$el.find('.player').addClass('show');
18452		this.$el.find('.close-trailer').removeClass('show');
18453
18454		// Load video
18455		this.loadMediaUsingIdentifier('docu-nl');
18456	} else {
18457		this.$el.find('.player').removeClass('show');
18458		this.$el.find('.mmd').show();
18459		this.$el.find('.close-trailer').removeClass('show');
18460		this.$el.find('.mmd .screens .' + screen).addClass('show');
18461	}
18462};
18463
18464Mfe.Widgets['player'].prototype.showMmdPurchaseScreen = function(email) {
18465	
18466};
18467
18468Mfe.Widgets['player'].prototype.loadMediaUsingIdentifier = function(mmdMediaIdentifier) {
18469	var self = this;
18470	var mode = this.getSettingConfig('mode', 'mmd');
18471
18472	self.player = new Mobypicture.Player(self.$el.find('.player'));
18473	self.player.on('modeChange', function(mode){
18474		if (mode == 'playing') {
18475			$('html').addClass('player-video-playing');
18476		} else {
18477			$('html').removeClass('player-video-playing');
18478		}
18479	});
18480	
18481	self.player.on('ended', function(){
18482		
18483		if (self.player.isModeFullScreen === true) {
18484			self.player.exitFullscreen();
18485		}
18486		
18487		if (mode == 'simple') {
18488			self.$el.find('.player-poster').show();
18489		} else {
18490			self.$el.find('.mmd').show();
18491			self.$el.find('.player').removeClass('show');
18492			self.$el.find('.close-trailer').removeClass('show');
18493		}
18494		
18495	});
18496	self.player.on('hideControls', function(){
18497
18498	});
18499	self.player.on('showControls', function(){
18500		
18501	});
18502	
18503	self.player.setUiMode('loading');
18504
18505	var media = Mfe.Api.MediaDistribution.getMedia(this.mfe.siteBundle.getName(), mmdMediaIdentifier, function(result, response) {
18506		if (result !== true) {
18507			self.player.setUiMode('error', 'Could not find media, are you sure it exists?');
18508			return;
18509		}
18510
18511		self.player.load('mmd', response, { 'rentalTicket': self.rentalCode, 'autoplay': true });
18512	});
18513};
18514
18515Mfe.Widgets['player'].prototype.onSettingChanged = function(settingName, settingValue) {
18516
18517};
18518
18519Mfe.Widgets['player'].prototype.purchaseAccess = function(email, productId) {
18520	
18521};
18522
18523Mfe.Widgets['player'].prototype.loginMmd = function(email) {
18524	
18525};
18526
18527Mfe.Widgets['player'].prototype.enterEditMode = function(setting) {
18528	
18529};
18530Mfe.Widgets['popup'] = function(mfe, widgetId, options) {
18531	this.mfe = mfe;
18532	this.name = 'popup';
18533	this.state = 'default';
18534	Mfe.Widget.apply(this, arguments);
18535        
18536};
18537Mfe.Widgets['popup'].inherits(Mfe.Widget);
18538Mfe.Widgets['popup'].prototype.onRender = function(isPreload) {
18539	// Check if this intro has not been rendered ever
18540	/*if (isEmpty(isPreload) === true || isPreload === false) {
18541		this.mfe.addBodyClass('mfe-w-popup-active');
18542	}*/
18543
18544	return this.renderContent();
18545};
18546
18547Mfe.Widgets['popup'].prototype.display = function(renderHtml) {
18548	this.setElementHtml(renderHtml);
18549};
18550
18551Mfe.Widgets['popup'].prototype.renderContent = function() {
18552	var templateVars = {};
18553	
18554	var htmlTemplate = this.mfe.getTemplate('widgets', 'popup', 'base-default');
18555	var html = htmlTemplate(templateVars);
18556	
18557	return html;
18558};
18559
18560Mfe.Widgets['popup'].prototype.onAttach = function(mfe, $el) {
18561	var self = this;
18562	
18563	this.isActive = true;
18564        
18565        let hasDisabledCookie = false;
18566	var choice = Mfe.Utils.UserAgent.getCookie('cookie-popup-tpm-bid');
18567	if (typeof choice === 'undefined') {
18568            hasDisabledCookie =  false;
18569	} else {
18570            hasDisabledCookie = true;
18571	}
18572        
18573        if (hasDisabledCookie === false) {
18574            var htmlTemplate = this.mfe.getTemplate('widgets', 'popup', 'tpm');
18575            var html = htmlTemplate({});
18576
18577            let $pageDimEl = $('#page-dim');
18578            let $popupContainerEl = $(html);
18579
18580            $pageDimEl.addClass('show');
18581            $popupContainerEl.insertBefore($pageDimEl);
18582
18583            $popupContainerEl.on('click', function() {
18584                $('#popup-container').remove();
18585                $pageDimEl.removeClass('show');
18586                Mfe.Utils.UserAgent.setCookie('cookie-popup-tpm-bid', '1', 1000, document.domain);
18587            });
18588
18589            /*$popupContainerEl.find('button').on('click', function() {
18590                $('#popup-container').remove();
18591                $pageDimEl.removeClass('show');
18592                Mfe.Utils.UserAgent.setCookie('cookie-popup-tpm-bid', '1', 1000, document.domain);
18593            });*/
18594
18595        }
18596
18597};
18598
18599Mfe.Widgets['postgroup-list'] = function(mfe, widgetId, options) {
18600	this.mfe = mfe;
18601	this.name = 'postgroup-list';
18602	this.baseTemplate = 'base-default';
18603	Mfe.Widget.apply(this, arguments);
18604};
18605Mfe.Widgets['postgroup-list'].inherits(Mfe.Widget);
18606Mfe.Widgets['postgroup-list'].prototype.onRender = function() {
18607	var baseTemplate = this.mfe.getTemplate('widgets', 'postgroup-list', this.baseTemplate);
18608
18609	var templateVars = {
18610		'postGroups': []
18611	};
18612	
18613	var postGroups = this.mfe.siteBundle.getCmsBlogGroups();
18614	for (var i = 0; i < postGroups.length; i++) {
18615		var postGroup = postGroups[i];
18616		templateVars.postGroups.push(postGroup.getTemplateVars());
18617	}
18618
18619	
18620	var baseTemplateHtml = baseTemplate(templateVars);
18621	return baseTemplateHtml;
18622};
18623
18624Mfe.Widgets['postgroup-list'].prototype.onAttach = function() {
18625
18626};
18627
18628Mfe.Widgets['quote'] = function(mfe, widgetId, options) {
18629	this.mfe = mfe;
18630	this.name = 'quote';
18631	this.baseTemplate = 'base-default';
18632	Mfe.Widget.apply(this, arguments);
18633};
18634Mfe.Widgets['quote'].inherits(Mfe.Widget);
18635Mfe.Widgets['quote'].title = 'Quote';
18636Mfe.Widgets['quote'].getSettings = function() {
18637	return [
18638		{ "type": "text", "name": "quote-text", "default": null, "description": "Quote text" },
18639		{ "type": "text", "name": "quote-source", "default": null, "description": "Quote source" },
18640		{ "type": "text", "name": "quote-source-url", "default": null, "description": "Quote source URL" },
18641		{ "type": "font", "name": "font", "default": null, "description": "Font" },
18642		{ "type": "font", "name": "font-source", "default": null, "description": "Font for source" }
18643	];
18644};
18645Mfe.Widgets['quote'].prototype.onRender = function() {
18646	var baseTemplate = this.mfe.getTemplate('widgets', 'quote', this.baseTemplate);
18647	
18648	var fontConfig = this.getOption('font', null);
18649	if (fontConfig !== null) {
18650		var fontCssVars = Mfe.Fonts.generateFontConfigCssVars('quote-text', fontConfig, this.mfe);
18651	}
18652	
18653	var fontSourceConfig = this.getOption('font-source', null);
18654	if (fontSourceConfig !== null) {
18655		var fontSourceCssVars = Mfe.Fonts.generateFontConfigCssVars('quote-source', fontSourceConfig, this.mfe);
18656	}
18657	
18658	var templateVars = {
18659		'editable': (this.mfe.viewMode == 'edit'),
18660		'quoteText': this.getSettingConfig('quote-text'),
18661		'quoteSource': this.getSettingConfig('quote-source'),
18662		'quoteSourceUrl': this.getSettingConfig('quote-source-url'),
18663		'fontCssVars': fontCssVars,
18664		'fontSourceCssVars': fontSourceCssVars
18665	};
18666	
18667	var baseTemplateHtml = baseTemplate(templateVars);
18668	return baseTemplateHtml;
18669};
18670
18671Mfe.Widgets['quote'].prototype.onAttach = function() {
18672	var self = this;
18673	if (this.mfe.viewMode == 'edit') {
18674		var $editableEls = this.$el.find(' > *');
18675		var $editableEl = $($editableEls[0]);
18676		
18677		$editableEl.on('blur', function(e) {
18678
18679			$editableEl.attr('contenteditable', false);
18680			$editableEl.removeClass('mfe-editable-editing');
18681
18682			self.mfe.exitEditMode();
18683		});
18684	}
18685};
18686
18687Mfe.Widgets['quote'].prototype.enterEditMode = function(setting) {
18688	if (setting == 'text') {
18689		this.mode = 'edit';
18690		
18691		var $editableEls = this.$el.find(' > *');
18692		var $editableEl = $($editableEls[0]);
18693		
18694		$editableEl.attr('contenteditable', true);
18695		$editableEl.addClass('mfe-editable-editing');
18696		
18697		$editableEl.focus();
18698	}
18699};
18700
18701Mfe.Widgets['search-input'] = function(mfe, widgetId, options) {
18702	this.mfe = mfe;
18703	this.name = 'search-input';
18704	this.baseTemplate = 'base-default';
18705	Mfe.Widget.apply(this, arguments);
18706};
18707Mfe.Widgets['search-input'].inherits(Mfe.Widget);
18708Mfe.Widgets['search-input'].title = 'Search input';
18709Mfe.Widgets['search-input'].getSettings = function() {
18710	return [
18711		{ "type": "text", "name": "image-url", "default": null, "description": "Image URL" },
18712		{ "type": "text", "name": "link-url", "default": null, "description": "Link URL" },
18713		{ "type": "text", "name": "placeholder", "default": null, "description": "Placeholder" },
18714		{ "type": "text", "name": "search-icon", "default": 'fas fa-search', "description": "Search icon" },
18715		{ "type": "text", "name": "clear-icon", "default": 'fa fa-times', "description": "Clear icon" },
18716		{ "type": "boolean", "name": "cover-layout", "default": null, "description": "Cover the whole layout", "default": false }
18717	];
18718};
18719Mfe.Widgets['search-input'].prototype.onRender = function() {
18720	var baseTemplate = this.mfe.getTemplate('widgets', 'search-input', this.baseTemplate);
18721
18722	var searchQuery = '';
18723	if (isEmpty(this.mfe.contextParams) === false && isEmpty(this.mfe.contextParams.query) === false && this.mfe.contextParams.query.length > 0) {
18724		searchQuery = this.mfe.contextParams.query;
18725	} else if (isEmpty(this.mfe.contextParams) === false && isEmpty(this.mfe.contextParams.tags) === false) {
18726		searchQuery = this.mfe.contextParams.tags;
18727	}
18728	
18729	var templateVars = {};
18730	
18731	if (isEmpty(this.mfe.contextObject) === false && this.mfe.contextObject.class  == 'queryresult') {
18732		var templateVars = {
18733			'totalMatches': this.mfe.contextObject.getTotalMatches(),
18734			'searchQuery': searchQuery
18735		};
18736	}
18737        
18738        templateVars.placeholder = this.getOption('placeholder', 'Search for...');
18739        templateVars.searchIcon = this.getOption('search-icon', 'fal fa-search');
18740        templateVars.clearIcon = this.getOption('clear-icon', 'fa fa-times');
18741
18742	var baseTemplateHtml = baseTemplate(templateVars);
18743	return baseTemplateHtml;
18744};
18745
18746Mfe.Widgets['search-input'].prototype.onAttach = function() {
18747	this.attachHandlers();
18748};
18749
18750Mfe.Widgets['search-input'].prototype.attachHandlers = function() {
18751	var self = this;
18752        
18753	this.$el.find('.input input').on('keydown', function(e){
18754		// Start new search
18755		if (e.originalEvent.keyCode == 13) {
18756		    self.mfe.executeSiteAction('search', { 'query': self.$el.find('.input input').val() } );
18757		}
18758	});
18759	
18760        
18761	this.$el.find('.input .icon').on('click', function(e){
18762	    self.mfe.executeSiteAction('search', { 'query': self.$el.find('.input input').val() } );
18763	});
18764	
18765	this.$el.find('.input .actions button').on('click', function(e){
18766		self.$el.find('.input input').val('');
18767	});
18768	
18769};
18770
18771Mfe.Widgets['share-buttons'] = function(mfe, widgetId, options) {
18772	this.mfe = mfe;
18773	this.name = 'share-buttons';
18774	this.baseTemplate = 'base-default';
18775	Mfe.Widget.apply(this, arguments);
18776};
18777Mfe.Widgets['share-buttons'].inherits(Mfe.Widget);
18778Mfe.Widgets['share-buttons'].title = 'Share buttons';
18779Mfe.Widgets['share-buttons'].getSettings = function() {
18780	return [
18781		{ "type": "options", "name": "widget-style", "default": "default", "description": "Style", "options": 
18782			[ 
18783				{ "value": "default", "label": "Default" },  
18784				{ "value": "horizontal", "label": "Horizontal" }
18785			]
18786		}
18787	];
18788};
18789
18790Mfe.Widgets['share-buttons'].prototype.getShareUrl = function() {
18791	return 'https://' + this.mfe.options.domain + this.mfe.fullPath;
18792};
18793
18794Mfe.Widgets['share-buttons'].prototype.onRender = function() {
18795	var baseTemplate = this.mfe.getTemplate('widgets', 'share-buttons', this.baseTemplate);
18796	
18797	var twitterUsername = '';
18798	if (isEmpty(this.mfe.siteConfig.twitterUsername) === false) {
18799		twitterUsername = this.mfe.siteConfig.twitterUsername;
18800	}
18801	
18802	var title = this.mfe.getContextTitle();
18803	
18804	var optionStyle = this.getOption('style', 'default');
18805	
18806	var templateVars = {
18807		'style': optionStyle,
18808		'shareUrl': this.getShareUrl(),
18809		'title': title,
18810		'twitterTitle': '"' + title + '"' + (twitterUsername.length > 0 ? ' via ' + twitterUsername : ''),
18811		'summary': this.mfe.getContextSummary(),
18812		'twitterUsername': this.mfe.siteConfig.twitterUsername
18813	};
18814	
18815	var baseTemplateHtml = baseTemplate(templateVars);
18816	return baseTemplateHtml;
18817};
18818
18819Mfe.Widgets['share-buttons'].prototype.onAttach = function() {
18820	
18821};
18822Mfe.Widgets['text'] = function(mfe, widgetId, options) {
18823	this.mfe = mfe;
18824	this.name = 'text';
18825	this.baseTemplate = 'base-default';
18826	Mfe.Widget.apply(this, arguments);
18827};
18828Mfe.Widgets['text'].inherits(Mfe.Widget);
18829Mfe.Widgets['text'].title = 'Text';
18830Mfe.Widgets['text'].getSettings = function() {
18831	return [
18832		{ "type": "text", "name": "text", "default": null, "description": "Text" },
18833		{ "type": "boolean", "name": "allow-html-enabled", "default": false, "description": "Allow HTML in text" },
18834		{ "type": "text", "name": "link-url", "default": null, "description": "Link URL" },
18835		{ "type": "font", "name": "font", "default": null, "description": "Font" },
18836		{ "type": "options", "name": "text-align", "default": "left", "description": "Align text", "options": [ { "value": "left", "label": "Left" },  { "value": "center", "label": "Center" },  { "value": "right", "label": "Right" } ] },
18837	];
18838};
18839Mfe.Widgets['text'].prototype.onRender = function() {
18840	var baseTemplate = this.mfe.getTemplate('widgets', 'text', this.baseTemplate);
18841
18842	var optionText = this.getOption('text', '');
18843	var optionTextTranslationId = this.getOption('text-translation-id', '');
18844	
18845	var text = '';
18846	if (optionText.length > 0) {
18847		text = optionText;
18848	} else if (optionTextTranslationId.length > 0) {
18849		text = this.mfe.getTranslation(optionTextTranslationId);
18850	}
18851
18852	var fontConfig = this.getOption('font', null);
18853	if (fontConfig !== null) {
18854		var fontCssVars = Mfe.Fonts.generateFontConfigCssVars('text', fontConfig, this.mfe);
18855	}
18856	
18857	var templateVars = {
18858		'editable': (this.mfe.viewMode == 'edit'),
18859		'textAlign': this.getSettingConfig('text-align'),
18860		'text': text,
18861		'isAllowHtmlEnabled': this.getSettingConfig('allow-html-enabled', false),
18862		'linkUrl': this.getOption('link-url', null),
18863		'fontCssVars': fontCssVars
18864	};
18865	
18866	var baseTemplateHtml = baseTemplate(templateVars);
18867	return baseTemplateHtml;
18868};
18869
18870Mfe.Widgets['text'].prototype.onAttach = function() {
18871	var self = this;
18872	if (this.mfe.viewMode == 'edit') {
18873		var $editableEls = this.$el.find(' > *');
18874		var $editableEl = $($editableEls[0]);
18875		
18876		$editableEl.on('blur', function(e) {
18877
18878			$editableEl.attr('contenteditable', false);
18879			$editableEl.removeClass('mfe-editable-editing');
18880
18881			self.mfe.exitEditMode();
18882		});
18883	}
18884};
18885
18886Mfe.Widgets['text'].prototype.enterEditMode = function(setting) {
18887	if (setting == 'text') {
18888		this.mode = 'edit';
18889		
18890		var $editableEls = this.$el.find(' > *');
18891		var $editableEl = $($editableEls[0]);
18892		
18893		$editableEl.attr('contenteditable', true);
18894		$editableEl.addClass('mfe-editable-editing');
18895		
18896		$editableEl.focus();
18897	}
18898};
18899
18900Mfe.Widgets['usergroup-team'] = function(mfe, widgetId, options) {
18901	this.mfe = mfe;
18902	this.name = 'usergroup-team';
18903	this.baseTemplate = 'base-default';
18904	Mfe.Widget.apply(this, arguments);
18905};
18906Mfe.Widgets['usergroup-team'].inherits(Mfe.Widget);
18907Mfe.Widgets['usergroup-team'].title = 'Usergroup Team';
18908Mfe.Widgets['usergroup-team'].getSettings = function() {
18909	var settings = {
18910		'sections': [
18911			{ 
18912				'name': 'general', 
18913				'title': 'General', 
18914				'settings': [
18915					{ "type": "options", "name": "style", "default": "default", "description": "Style", "options": [ 
18916							{ "value": "default", "label": "Default" },  
18917							{ "value": "pattern-1-2-2-1", "label": "Pattern (1-2,2-1)" } ,
18918							{ "value": "first-large", "label": "First large" } 
18919						]
18920					},
18921					{ "type": "options", "name": "item-template-blogpost", "default": "item-blogpost-default", "description": "Blogpost template", "options": [ { "value": "item-blogpost-default", "label": "Default" },  { "value": "item-blogpost-fulllink", "label": "Fully clickable" } ] }
18922				]
18923			},
18924			{ 
18925				'name': 'data', 
18926				'title': 'Data', 
18927				'settings': [
18928					{ "type": "userGroupsTeam", "name": "data-usergroupteam-id", "default": [], "description": "Data source usergroup team" }
18929				]
18930			}
18931		]
18932	};
18933	
18934	return settings;
18935};
18936
18937Mfe.Widgets['usergroup-team'].prototype.onRender = function() {
18938	var fetchResult = this.fetch();
18939	if (isEmpty(fetchResult) === false) {
18940		return this.renderWidget(fetchResult);
18941	}
18942	
18943	var baseTemplate = this.mfe.getTemplate('widgets', 'usergroup-team', this.baseTemplate);
18944	var templateVars = {
18945		'showFilters': true
18946	};
18947	
18948	var baseTemplateHtml = baseTemplate(templateVars);
18949	return baseTemplateHtml;
18950};
18951
18952Mfe.Widgets['usergroup-team'].prototype.onAttach = function() {
18953
18954	this.attachHandlers();
18955};
18956
18957Mfe.Widgets['usergroup-team'].prototype.fetch = function(lastItemId) {
18958	var self = this;
18959	
18960	var dataUserGroupTeamId = parseInt(this.getOption('data-usergroupteam-id', ''));
18961	
18962	
18963	var team = Mfe.Api.UserGroups.getTeam(this.mfe.siteBundle.getName(), dataUserGroupTeamId, function(result, team) {
18964		self.currentTeam = team;
18965		self.display(self.renderWidget(team));
18966	});
18967
18968	if (team !== null) {
18969		this.currentTeam = team;
18970		return team;
18971	}
18972	
18973	return null;
18974};
18975
18976Mfe.Widgets['usergroup-team'].prototype.display = function(html) {
18977	this.setElementHtml(html);
18978};
18979
18980
18981Mfe.Widgets['usergroup-team'].prototype.saveWidgetState = function() {
18982	var widgetState = { 'team': null };
18983	
18984	if (isEmpty(this.currentTeam) === false) {
18985		widgetState.team = this.currentTeam.getData();
18986	}
18987	
18988	return widgetState;
18989};
18990
18991Mfe.Widgets['usergroup-team'].prototype.restoreWidgetState = function(state) {
18992	this.currentTeam = new Mfe.Classes.SiteUserGroupTeam(state.team);
18993};
18994
18995Mfe.Widgets['usergroup-team'].prototype.renderWidget = function(team) {
18996	var baseTemplate = this.mfe.getTemplate('widgets', 'usergroup-team', this.baseTemplate);
18997	var templateVars = {
18998		'showFilters': true,
18999		'team': team.getTemplateVars(),
19000		'teamMembersHtml': this.renderTeamMembers(team.getMembers())
19001	};
19002	
19003	var baseTemplateHtml = baseTemplate(templateVars);
19004	
19005	return baseTemplateHtml;
19006};
19007
19008Mfe.Widgets['usergroup-team'].prototype.renderTeamMembers = function(teamMembers) {
19009	var membersHtmlArr = [];
19010	
19011	var memberTemplate = this.mfe.getTemplate('widgets', 'usergroup-team', 'item-member');
19012	
19013	for (var i = 0; i < teamMembers.length; i++) {
19014		var teamMember = teamMembers[i];
19015		var templateVars = teamMember.getTemplateVars();
19016		
19017		membersHtmlArr.push(memberTemplate(templateVars));
19018	}
19019	
19020	return membersHtmlArr.join('');
19021};
19022
19023Mfe.Widgets['usergroup-team'].prototype.applyFilters = function() {
19024	
19025};
19026
19027Mfe.Widgets['usergroup-team'].prototype.attachHandlers = function() {
19028	
19029};
19030Mfe.Widgets['video-player'] = function(mfe, widgetId, options) {
19031	this.mfe = mfe;
19032	this.name = 'video-player';
19033	this.baseTemplate = 'base-default';
19034	Mfe.Widget.apply(this, arguments);
19035};
19036Mfe.Widgets['video-player'].inherits(Mfe.Widget);
19037Mfe.Widgets['video-player'].title = 'Video player';
19038Mfe.Widgets['video-player'].getSettings = function() {
19039    return [
19040            { "type": "text", "name": "url", "default": null, "description": "Url of video" },
19041    ];
19042};
19043Mfe.Widgets['video-player'].prototype.onRender = function() {
19044	var baseTemplate = this.mfe.getTemplate('widgets', 'video-player', this.baseTemplate);
19045
19046	var optionFullLink = this.getOption('full-link', 'false');
19047	if (optionFullLink ===  false || optionFullLink == 'false') {
19048		optionFullLink = false;
19049	} else {
19050		optionFullLink = true;
19051	}
19052
19053	var templateVars = {
19054		'editable': (this.mfe.viewMode == 'edit'),
19055		'title': this.getOption('title', ''),
19056		'text': this.getOption('text', ''),
19057		'linkText': this.getOption('link-text', ''),
19058		'linkUrl': this.getOption('link-url', ''),
19059		'fullLink': optionFullLink
19060	};
19061	
19062	var baseTemplateHtml = baseTemplate(templateVars);
19063	return baseTemplateHtml;
19064};
19065
19066Mfe.Widgets['video-player'].prototype.onAttach = function() {
19067	var self = this;
19068        
19069        var $contentAreaEl = this.$el.parents('.content-area.hero');
19070        
19071        this.player = new MPPlayer(this.$el.find('.mpplayer'));
19072        this.player.on('play', function(){
19073            if ($contentAreaEl.length == 0) {
19074                return;
19075            }
19076            
19077            $contentAreaEl.attr('data-video-player-state', 'playing');
19078        });
19079        this.player.setSources([
19080                { 
19081                        'language': 'en',
19082                        'videos': [
19083                                { 'type': 'hls', 'resolutions': [ { 'size': '480', 'url': 'https://vhx-adaptive-hap.akamaized.net/-ctx--user_id,4517372--platform_id,27--video_id,311155--channel_id,28393--plan,public-/vods3cf/0/amlst:c-28393/v-311155/1457104,1457105,1457106,1457107,1457108,1457109/chunklist_b2568937.m3u8' }, { 'size': '720', 'url': '' }, { 'size': '1920', 'url': '' }] },
19084                                { 'type': 'dash', 'resolutions': [ { 'size': '480', 'url': '' }, { 'size': '720', 'url': '' }, { 'size': '1920', 'url': '' }] }
19085                        ],
19086                        'captions': [
19087                                { 'type': 'webvtt', 'languages': [ { 'language': 'en', 'url': '' }, { 'language': 'nl', 'url': '' }, { 'language': 'fr', 'url': '' }] },
19088                        ]
19089                },
19090                { 
19091                        'language': 'nl',
19092                        'videos': [
19093                                { 'type': 'hls', 'resolutions': [ { 'size': '480', 'url': '' }, { 'size': '720', 'url': '' }, { 'size': '1920', 'url': '' }] },
19094                                { 'type': 'dash', 'resolutions': [ { 'size': '480', 'url': '' }, { 'size': '720', 'url': '' }, { 'size': '1920', 'url': '' }] }
19095                        ],
19096                        'captions': [
19097                                { 'type': 'webvtt', 'languages': [ { 'language': 'en', 'url': '' }, { 'language': 'nl', 'url': '' }, { 'language': 'fr', 'url': '' }] },
19098                        ]
19099                }
19100        ], false);
19101};
19102
19103Mfe.Widgets['video-player'].prototype.enterEditMode = function(setting) {
19104    if (setting == 'video-player') {
19105        this.mode = 'edit';
19106
19107        var $editableEls = this.$el.find(' > *');
19108        var $editableEl = $($editableEls[0]);
19109
19110        $editableEl.attr('contenteditable', true);
19111        $editableEl.addClass('mfe-editable-editing');
19112
19113        $editableEl.focus();
19114    }
19115};
19116
19117Mfe.Utils.DOM = {
19118	'ratioToPercentage': function (ratio) {
19119		var ratioParts = ratio.split(':');
19120		if (ratioParts.length != 2) {
19121			return false;
19122		}
19123
19124		var ratioPercentage = (parseInt(ratioParts[1], 10) / parseInt(ratioParts[0], 10)) * 100;
19125
19126		return Math.round(ratioPercentage, 3);
19127	},
19128	'scrollToLeft': function(element, to, duration) {
19129		var start = element.scrollLeft,
19130			change = to - start,
19131			currentTime = 0,
19132			increment = 20;
19133
19134		var animateScroll = function(){        
19135			currentTime += increment;
19136			var val = Mfe.Utils.Math.easeInOutQuad(currentTime, start, change, duration);
19137			element.scrollLeft = val;
19138			if(currentTime < duration) {
19139				setTimeout(animateScroll, increment);
19140			}
19141		};
19142		animateScroll();
19143	}
19144}
19145Mfe.Utils.Math = {
19146	'rand': function(min, max) {
19147		min = Math.ceil(min);
19148		max = Math.floor(max);
19149		return Math.floor(Math.random() * (max - min)) + min;
19150	},
19151	'ratioToPercentage': function (ratio) {
19152		var ratioParts = ratio.split(':');
19153		if (ratioParts.length != 2) {
19154			return false;
19155		}
19156
19157		var ratioPercentage = (parseInt(ratioParts[1], 10) / parseInt(ratioParts[0], 10)) * 100;
19158
19159		return Math.round(ratioPercentage, 3);
19160	},
19161	'easeInOutQuad': function (t, b, c, d) {
19162	  t /= d/2;
19163		if (t < 1) return c/2*t*t + b;
19164		t--;
19165		return -c/2 * (t*(t-2) - 1) + b;
19166	},
19167	'round': function(num, scale) {
19168		if(!("" + num).includes("e")) {
19169		  return +(Math.round(num + "e+" + scale)  + "e-" + scale);
19170		} else {
19171		  var arr = ("" + num).split("e");
19172		  var sig = ""
19173		  if(+arr[1] + scale > 0) {
19174			sig = "+";
19175		  }
19176		  return +(Math.round(+arr[0] + "e" + sig + (+arr[1] + scale)) + "e-" + scale);
19177		}
19178	}
19179}
19180Mfe.Utils.MD5 = function(string) {
19181
19182	function RotateLeft(lValue, iShiftBits) {
19183		return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));
19184	}
19185
19186	function AddUnsigned(lX, lY) {
19187		var lX4, lY4, lX8, lY8, lResult;
19188		lX8 = (lX & 0x80000000);
19189		lY8 = (lY & 0x80000000);
19190		lX4 = (lX & 0x40000000);
19191		lY4 = (lY & 0x40000000);
19192		lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
19193		if (lX4 & lY4) {
19194			return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
19195		}
19196		if (lX4 | lY4) {
19197			if (lResult & 0x40000000) {
19198				return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
19199			} else {
19200				return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
19201			}
19202		} else {
19203			return (lResult ^ lX8 ^ lY8);
19204		}
19205	}
19206
19207	function F(x, y, z) {
19208		return (x & y) | ((~x) & z);
19209	}
19210	function G(x, y, z) {
19211		return (x & z) | (y & (~z));
19212	}
19213	function H(x, y, z) {
19214		return (x ^ y ^ z);
19215	}
19216	function I(x, y, z) {
19217		return (y ^ (x | (~z)));
19218	}
19219
19220	function FF(a, b, c, d, x, s, ac) {
19221		a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
19222		return AddUnsigned(RotateLeft(a, s), b);
19223	}
19224	;
19225
19226	function GG(a, b, c, d, x, s, ac) {
19227		a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
19228		return AddUnsigned(RotateLeft(a, s), b);
19229	}
19230	;
19231
19232	function HH(a, b, c, d, x, s, ac) {
19233		a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
19234		return AddUnsigned(RotateLeft(a, s), b);
19235	}
19236	;
19237
19238	function II(a, b, c, d, x, s, ac) {
19239		a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
19240		return AddUnsigned(RotateLeft(a, s), b);
19241	}
19242	;
19243
19244	function ConvertToWordArray(string) {
19245		var lWordCount;
19246		var lMessageLength = string.length;
19247		var lNumberOfWords_temp1 = lMessageLength + 8;
19248		var lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64;
19249		var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16;
19250		var lWordArray = Array(lNumberOfWords - 1);
19251		var lBytePosition = 0;
19252		var lByteCount = 0;
19253		while (lByteCount < lMessageLength) {
19254			lWordCount = (lByteCount - (lByteCount % 4)) / 4;
19255			lBytePosition = (lByteCount % 4) * 8;
19256			lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition));
19257			lByteCount++;
19258		}
19259		lWordCount = (lByteCount - (lByteCount % 4)) / 4;
19260		lBytePosition = (lByteCount % 4) * 8;
19261		lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);
19262		lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
19263		lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
19264		return lWordArray;
19265	}
19266	;
19267
19268	function WordToHex(lValue) {
19269		var WordToHexValue = "", WordToHexValue_temp = "", lByte, lCount;
19270		for (lCount = 0; lCount <= 3; lCount++) {
19271			lByte = (lValue >>> (lCount * 8)) & 255;
19272			WordToHexValue_temp = "0" + lByte.toString(16);
19273			WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length - 2, 2);
19274		}
19275		return WordToHexValue;
19276	}
19277	;
19278
19279	function Utf8Encode(string) {
19280		string = string.replace(/\r\n/g, "\n");
19281		var utftext = "";
19282
19283		for (var n = 0; n < string.length; n++) {
19284
19285			var c = string.charCodeAt(n);
19286
19287			if (c < 128) {
19288				utftext += String.fromCharCode(c);
19289			}
19290			else if ((c > 127) && (c < 2048)) {
19291				utftext += String.fromCharCode((c >> 6) | 192);
19292				utftext += String.fromCharCode((c & 63) | 128);
19293			}
19294			else {
19295				utftext += String.fromCharCode((c >> 12) | 224);
19296				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
19297				utftext += String.fromCharCode((c & 63) | 128);
19298			}
19299
19300		}
19301
19302		return utftext;
19303	}
19304	;
19305
19306	var x = Array();
19307	var k, AA, BB, CC, DD, a, b, c, d;
19308	var S11 = 7, S12 = 12, S13 = 17, S14 = 22;
19309	var S21 = 5, S22 = 9, S23 = 14, S24 = 20;
19310	var S31 = 4, S32 = 11, S33 = 16, S34 = 23;
19311	var S41 = 6, S42 = 10, S43 = 15, S44 = 21;
19312
19313	string = Utf8Encode(string);
19314
19315	x = ConvertToWordArray(string);
19316
19317	a = 0x67452301;
19318	b = 0xEFCDAB89;
19319	c = 0x98BADCFE;
19320	d = 0x10325476;
19321
19322	for (k = 0; k < x.length; k += 16) {
19323		AA = a;
19324		BB = b;
19325		CC = c;
19326		DD = d;
19327		a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478);
19328		d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756);
19329		c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB);
19330		b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE);
19331		a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF);
19332		d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A);
19333		c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613);
19334		b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501);
19335		a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8);
19336		d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF);
19337		c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1);
19338		b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE);
19339		a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122);
19340		d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193);
19341		c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E);
19342		b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821);
19343		a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562);
19344		d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340);
19345		c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51);
19346		b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA);
19347		a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D);
19348		d = GG(d, a, b, c, x[k + 10], S22, 0x2441453);
19349		c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681);
19350		b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8);
19351		a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6);
19352		d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6);
19353		c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87);
19354		b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED);
19355		a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905);
19356		d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8);
19357		c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9);
19358		b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A);
19359		a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942);
19360		d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681);
19361		c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122);
19362		b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C);
19363		a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44);
19364		d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9);
19365		c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60);
19366		b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70);
19367		a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6);
19368		d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA);
19369		c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085);
19370		b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05);
19371		a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039);
19372		d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5);
19373		c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8);
19374		b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665);
19375		a = II(a, b, c, d, x[k + 0], S41, 0xF4292244);
19376		d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97);
19377		c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7);
19378		b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039);
19379		a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3);
19380		d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92);
19381		c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D);
19382		b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1);
19383		a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F);
19384		d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0);
19385		c = II(c, d, a, b, x[k + 6], S43, 0xA3014314);
19386		b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1);
19387		a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82);
19388		d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235);
19389		c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB);
19390		b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391);
19391		a = AddUnsigned(a, AA);
19392		b = AddUnsigned(b, BB);
19393		c = AddUnsigned(c, CC);
19394		d = AddUnsigned(d, DD);
19395	}
19396
19397	var temp = WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d);
19398
19399	return temp.toLowerCase();
19400}
19401Mfe.Utils.Text = {
19402	'parseHostname': function(url) {
19403		var hostname;
19404		if (url.indexOf("//") > -1) {
19405			hostname = url.split('/')[2];
19406		} else {
19407			hostname = url.split('/')[0];
19408		}
19409		
19410		return hostname;
19411	},
19412	'generateString': function(allowedChars, length) {
19413		var chars = allowedChars.split('');
19414		var str = '';
19415		for (var i = 0; i < length; i++) {
19416			var randIndex = Mfe.Utils.Math.rand(0, chars.length - 1);
19417			str = str + chars[randIndex];
19418		}
19419		return str;
19420	},
19421	'parseDimensionValue': function(text, returnUnit) {
19422		var value = null;
19423		var unit = null;
19424		
19425		if (text.substring(text.length - 2, text.length) == 'px') {
19426			value = text.substring(0, text.length - 2);
19427			unit = 'px';
19428		} else if (text.substring(text.length - 1, text.length) == '%') {
19429			value = text.substring(0, text.length - 1);
19430			unit = '%';
19431		}
19432		
19433		if (isEmpty(returnUnit) === false && returnUnit === true) {
19434			return { 'value': value, 'unit': unit };
19435		}
19436		
19437		return parseInt(value) || 0;
19438	},
19439	'slugify': function(val) {
19440		
19441		return val.replace(/[-[\]{}()*+?.~,\\^$|#\s]/g, '\\$&');
19442	},
19443	'parseQueryParams': function(query) { 
19444		var result = {};
19445		query.split("&").forEach(function(part) {
19446		  var item = part.split("=");
19447		  result[item[0]] = decodeURIComponent(item[1]);
19448		});
19449		return result;
19450	},
19451	'countWords': function(text) {
19452		var singleLine = text.replace("\r\n", ' ');
19453		var singleLine = singleLine.replace("\r", ' ');
19454		var singleLine = singleLine.replace("\n", ' ');
19455		var singleLine = singleLine.replace("\t", ' ');
19456		var singleLine = singleLine.replace('  ', ' ');
19457		
19458		var words = text.split(' ');
19459		
19460		return words.length;
19461	},
19462	'escapeHtml': function (text) {
19463
19464	  var map = {
19465		'&': '&amp;',
19466		'<': '&lt;',
19467		'>': '&gt;',
19468		'"': '&quot;',
19469		"'": '&#039;',
19470                '=': '&#x3D;'
19471	  };
19472
19473	  return text.replace(/[&<>"']/g, function(m) { return map[m]; });
19474	},
19475	'unescapeHtml': function(text) {
19476
19477	  var map = {
19478		'&amp;': '&',
19479		'&lt;': '<',
19480		'&gt;': '>',
19481		'&quot;': '"',
19482		'&#039;': "'",
19483		'&#x3D;': '='
19484	  };
19485
19486	  return text.replace(/&amp;|&lt;|&gt;|&quot;|&#039;|&#x3D;/g, function(m) { return map[m]; });		
19487	},
19488	'decodeHtmlEntities': function(str) {
19489		var entitiesMap = {
19490			'&nbsp;': ' ',
19491			'&hellip;': String.fromCharCode(8230),
19492			'&rsquo;': String.fromCharCode(8217),
19493			'&euml;': String.fromCharCode(203)
19494		}
19495		return str.replace(/&(#\d+|[a-z]*);/g, function(match, dec) {
19496			if (entitiesMap[match]) {
19497				return entitiesMap[match];
19498			}
19499			
19500			if (isNaN(match) === true) {
19501				return match;
19502			}
19503			
19504			return String.fromCharCode(dec);
19505		});
19506	}
19507}
19508Mfe.Utils.UserAgent = {
19509	'isSafari': function() {
19510		var REGEXP_USERAGENT = /(Macintosh|iPhone|iPod|iPad).*AppleWeb
19510Kit/i;
19511		return navigator && REGEXP_USERAGENT.test(navigator.userAgent);
19512	},    
19513	'isIE11': function() {
19514		/*Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko*/
19515		var REGEXP_USERAGENT = /(Trident\/7\.0).*rv\:11\.0/i;
19516		return navigator && REGEXP_USERAGENT.test(navigator.userAgent);
19517	}, 
19518	'getTimeZone': function() {
19519		var timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
19520		
19521		return timezone;
19522	},
19523	'getRequestPath': function() {
19524		return document.location.pathname;
19525	},
19526	'getCookie': function(name) {
19527		match = document.cookie.match(new RegExp(name + '=([^;]+)'));
19528		if (match) return match[1];
19529	},
19530	'setCookie': function(name, value, days, domain) {
19531		var expires = "";
19532		if (days) {
19533			var date = new Date();
19534			date.setTime(date.getTime() + (days*24*60*60*1000));
19535			expires = "; expires=" + date.toUTCString();
19536		}
19537		
19538		document.cookie = name + "=" + value + expires + "; domain="+domain+"; path=/";
19539	},
19540	'getUrlVars': function() { 
19541		var query = location.search.substr(1);
19542		var result = {};
19543		query.split("&").forEach(function(part) {
19544		  var item = part.split("=");
19545		  result[item[0]] = decodeURIComponent(item[1]);
19546		});
19547		return result;
19548	},
19549	'getScrollbarWidth': function() {
19550		var outer = document.createElement("div");
19551		outer.style.visibility = "hidden";
19552		outer.style.width = "100px";
19553		outer.style.msOverflowStyle = "scrollbar"; // needed for WinJS apps
19554
19555		document.body.appendChild(outer);
19556
19557		var widthNoScroll = outer.offsetWidth;
19558		// force scrollbars
19559		outer.style.overflow = "scroll";
19560
19561		// add innerdiv
19562		var inner = document.createElement("div");
19563		inner.style.width = "100%";
19564		outer.appendChild(inner);        
19565
19566		var widthWithScroll = inner.offsetWidth;
19567
19568		// remove divs
19569		outer.parentNode.removeChild(outer);
19570
19571		return widthNoScroll - widthWithScroll;
19572	}
19573};
19574Mfe.Utils.WebfontLoader = function (options) {
19575	this.options = options;
19576
19577	this.fonts = {"googleFonts": {}};
19578	this.loadedFonts = {"googleFonts": {}};
19579
19580	this.autoLoad = true;
19581	if (isEmpty(this.options.autoLoad) === false) {
19582		this.autoLoad = this.options.autoLoad;
19583	}
19584	
19585	var self = this;
19586	
19587	this.targetFrame = null;
19588	if (isEmpty(this.options.targetFrame) === false) {
19589	    this.targetFrame = this.options.targetFrame;
19590	}
19591};
19592
19593Mfe.Utils.WebfontLoader.prototype.onWebFontActive = function(family, fvd) {
19594	var source = 'googleFonts';
19595	
19596	if (isEmpty(this.loadedFonts[source][family]) === true) {
19597		this.loadedFonts[source][family] = [];
19598	}
19599
19600	this.loadedFonts[source][family].push(fvd);
19601}
19602
19603Mfe.Utils.WebfontLoader.prototype.registerFontFamily = function (source, family, style) {
19604	if (source == 'premium') {
19605		return;
19606	}
19607	
19608	if (isEmpty(this.fonts[source][family]) === true) {
19609		this.fonts[source][family] = [];
19610	}
19611	
19612	if (this.fonts[source][family].indexOf(style) < 0) {
19613		this.fonts[source][family].push(style);
19614	}
19615	
19616	
19617	/*
19618
19619	var fontWeightMapping = {
19620		'thin': 100,
19621		'normal': 400,
19622		'medium': 500,
19623		'bold': 700
19624	};
19625	var fontWeight;
19626	if (isNotEmpty(fontWeightMapping[weight]) === true) {
19627		fontWeight = fontWeightMapping[weight];
19628	} else {
19629		fontWeight = weight;
19630	}
19631
19632	var webFontsFamilyArr = this.fonts[source][family];
19633	if (webFontsFamilyArr.indexOf(weight) < 0) {
19634		webFontsFamilyArr.push(weight);
19635	}*/
19636
19637	if (this.autoLoad === true) {
19638		this.loadFonts();
19639	}
19640}
19641
19642Mfe.Utils.WebfontLoader.prototype.registerFontFamilyByConfig = function (fontConfig) {
19643	if (isEmpty(fontConfig) === true) {
19644		return;
19645	}
19646
19647	if (fontConfig.source == 'customFonts') {
19648		return;
19649	}
19650	
19651	if (isEmpty(fontConfig.familyId) === false) {
19652		//var fontFamilies = [];
19653		//for (var i = 0; i < fontConfig.families.length; i++) {
19654			var fontFamily = fontConfig.familyId;
19655			
19656			//fontFamilies.push("'" + fontFamily.name + "'");
19657			if (fontConfig.source != 'system' && typeof fontConfig.style !== 'undefined') {
19658				this.registerFontFamily(fontConfig.source, fontFamily, fontConfig.style);
19659			}
19660		//}
19661	}
19662	
19663	if (this.autoLoad === true) {
19664	    this.loadFonts(null);
19665	}
19666}
19667
19668Mfe.Utils.WebfontLoader.prototype.loadFonts = function (frameContext) {
19669	if (typeof WebFont === 'undefined' || isEmpty(WebFont) === true) {
19670		//console.log('WebFont-module is not loaded');
19671		return;
19672	}
19673	
19674	var hasFontsToLoad = false;
19675	var webFontConfig = {
19676		google: {families: []}
19677	};
19678	
19679	if (isEmpty(frameContext) === false) {
19680	    webFontConfig.context = frameContext;
19681	} else if (isEmpty(this.targetFrame) === false) { 
19682	    webFontConfig.context = this.targetFrame;
19683	}
19684	
19685	// Google Fonts
19686	var googleFamilies = Object.keys(this.fonts.googleFonts);
19687	for (var i = 0; i < googleFamilies.length; i++) {
19688		var googleFamily = googleFamilies[i];
19689		var familyStyles = this.fonts.googleFonts[googleFamily];
19690
19691
19692		var familyStylesToLoad = [];
19693		for (var j = 0; j < familyStyles.length; j++) {
19694			var familyStyle = familyStyles[j];
19695
19696			// Check which ones are already loaded
19697			if (this.isFontLoaded('googleFonts', googleFamily, familyStyle) === false) {
19698				familyStylesToLoad.push(familyStyle);
19699				
19700			}
19701		}
19702		
19703		if (familyStylesToLoad.length > 0) {
19704			webFontConfig.google.families.push(googleFamily + ':' + this.fonts.googleFonts[googleFamily].join(','));
19705			hasFontsToLoad = true;
19706		}
19707	}
19708	
19709	if (hasFontsToLoad === false) {
19710		return;
19711	}
19712	
19713	var self = this;
19714	webFontConfig.fontactive = function(family, fvd){
19715		self.onWebFontActive(family, fvd);
19716	};
19717	
19718	WebFont.load(webFontConfig);
19719}
19720
19721Mfe.Utils.WebfontLoader.prototype.isFontLoaded = function (source, family, style) {
19722	var fvdStyle = 'n';
19723	var fvdWeight = '4';
19724	if (style.substring(3,4) == 'i') {
19725		fvdStyle = 'i';
19726	}
19727	fvdWeight = style.substring(0,1);
19728	
19729	var fvd = fvdStyle + fvdWeight;
19730	if (isEmpty(this.loadedFonts[source][family]) === true) {
19731		return false;
19732	}
19733
19734	if (this.loadedFonts[source][family].indexOf(fvd) >= 0) {
19735		return true;
19736	}
19737
19738	return false;
19739}
19740
19741Mfe.Utils.WebfontLoader.prototype.isRegistered = function (source, family, style, weight) {
19742	var fixedWeight;
19743	if (weight == 'bold') {
19744		fixedWeight = 700;
19745	} else {
19746		fixedWeight = weight;
19747	}
19748
19749	var fvd = style.substring(0, 1) + fixedWeight.toString().substring(0, 1);
19750	if (isEmpty(this.fonts[source]) === true) {
19751		return false;
19752	}
19753	
19754	if (isEmpty(this.fonts[source][family]) === true) {
19755		return false;
19756	}
19757
19758	if (this.fonts[source][family].indexOf(fvd) >= 0) {
19759		return true;
19760	}
19761
19762	return false;
19763}
19764
19765Mfe.Utils.WebfontLoader.prototype.generateGoogleFontsUrl = function () {
19766	return '//fonts.googleapis.com/css?family=' + this.generateGoogleFontsFamilies();
19767}
19768
19769Mfe.Utils.WebfontLoader.prototype.generateGoogleFontsFamilies = function () {
19770	var familyParts = [];
19771	
19772	var familyIds = Object.keys(this.fonts.googleFonts);
19773	
19774	if (familyIds.length == 0) {
19775		return '';
19776	}
19777	
19778	for (var i = 0; i < familyIds.length; i++) {
19779		var familyId = familyIds[i];
19780		var familyStyles = this.fonts.googleFonts[familyId];
19781		
19782		
19783		familyParts.push(encodeURIComponent(familyId) + ':' + familyStyles.join(','));
19784	}
19785	
19786	var families = familyParts.join('|');
19787	
19788	return families;
19789}
19790
19791Mfe.Utils.WebfontLoader.prototype.getGoogleFontsFamilies = function () {
19792	var familyParts = [];
19793	
19794	var familyIds = Object.keys(this.fonts.googleFonts);
19795	
19796	if (familyIds.length == 0) {
19797		return '';
19798	}
19799	
19800	for (var i = 0; i < familyIds.length; i++) {
19801		var familyId = familyIds[i];
19802		var familyStyles = this.fonts.googleFonts[familyId];
19803		
19804		familyParts.push(familyId + ':' + familyStyles.join(','));
19805	}
19806	
19807	return familyParts;
19808}
19809Mfe.Fonts.GoogleFonts = {
19810	'fontFamilies': {
19811		'Source Sans Pro': {
19812			'id': 'Source Sans Pro',
19813			'title': 'Source Sans Pro',
19814			'styles': [
19815				'200',
19816				'200i',
19817				'300',
19818				'300i',
19819				'400',
19820				'400i',
19821				'600',
19822				'600i',
19823				'700',
19824				'700i',
19825				'900',
19826				'900i'
19827			]
19828		},
19829		'Exo 2': {
19830			'id': 'Exo 2',
19831			'title': 'Exo 2',
19832			'styles': [
19833				'100',
19834				'100i',
19835				'200',
19836				'200i',
19837				'300',
19838				'300i',
19839				'400',
19840				'400i',
19841				'500',
19842				'500i',
19843				'600',
19844				'600i',
19845				'700',
19846				'700i',
19847				'800',
19848				'800i',
19849				'900',
19850				'900i'
19851			]
19852		},
19853		'Oswald': {
19854			'id': 'Oswald',
19855			'title': 'Oswald',
19856			'styles': [
19857				'400',
19858				'400i',
19859				'700',
19860				'700i'
19861			]
19862		},
19863		'Oswald': {
19864			'id': 'Oswald',
19865			'title': 'Oswald',
19866			'styles': [
19867				'400',
19868				'400i',
19869				'700',
19870				'700i'
19871			]
19872		},
19873		'Work Sans': {
19874			'id': 'Work Sans',
19875			'title': 'Work Sans',
19876			'styles': [
19877				'400',
19878				'400i',
19879				'700',
19880				'700i'
19881			]
19882		},
19883		'Lato': {
19884			'id': 'Lato',
19885			'title': 'Lato',
19886			'styles': [
19887				'100',
19888				'100i',
19889				'300',
19890				'300i',
19891				'400',
19892				'400i',
19893				'700',
19894				'700i',
19895				'900',
19896				'900i'
19897			]
19898		},
19899		'Montserrat': {
19900			'id': 'Montserrat',
19901			'title': 'Montserrat',
19902			'styles': [
19903				'400',
19904				'400i',
19905				'700',
19906				'700i'
19907			]
19908		},
19909		'Archivo': {
19910			'id': 'Archivo',
19911			'title': 'Archivo',
19912			'styles': [
19913				'400',
19914				'400i',
19915				'700',
19916				'700i'
19917			]
19918		},
19919		'Arimo': {
19920			'id': 'Arimo',
19921			'title': 'Arimo',
19922			'styles': [
19923				'400',
19924				'400i',
19925				'700',
19926				'700i'
19927			]
19928		},
19929		'Open Sans': {
19930			'id': 'Open Sans',
19931			'title': 'Open Sans',
19932			'styles': [
19933				'300',
19934				'300i',
19935				'400',
19936				'400i',
19937				'600',
19938				'600i',
19939				'700',
19940				'700i',
19941				'800',
19942				'800i'
19943			]
19944		},
19945		'Poppins': {
19946			'id': 'Poppins',
19947			'title': 'Poppins',
19948			'styles': [
19949				'100',
19950				'100i',
19951				'200',
19952				'200i',
19953				'300',
19954				'300i',
19955				'400',
19956				'400i',
19957				'500',
19958				'500i',
19959				'600',
19960				'600i',
19961				'700',
19962				'700i',
19963				'800',
19964				'800i',
19965				'900',
19966				'900i'
19967			]
19968		},
19969		'Questrial': {
19970			'id': 'Questrial',
19971			'title': 'Questrial',
19972			'styles': [
19973				'400'
19974			]
19975		},
19976		'Raleway': {
19977			'id': 'Raleway',
19978			'title': 'Raleway',
19979			'styles': [
19980				'400',
19981				'400i',
19982				'700',
19983				'700i'
19984			]
19985		},
19986		'Roboto': {
19987			'id': 'Roboto',
19988			'title': 'Roboto',
19989			'styles': [
19990				'100',
19991				'100i',
19992				'300',
19993				'300i',
19994				'400',
19995				'400i',
19996				'500',
19997				'500i',
19998				'700',
19999				'700i',
20000				'900',
20001				'900i'
20002			]
20003		},
20004		'Roboto Condensed': {
20005			'id': 'Roboto Condensed',
20006			'title': 'Roboto Condensed',
20007			'styles': [
20008				'300',
20009				'300i',
20010				'400',
20011				'400i',
20012				'700',
20013				'700i'
20014			]
20015		},
20016		'Quicksand': {
20017			'id': 'Quicksand',
20018			'title': 'Quicksand',
20019			'styles': [
20020				'400',
20021				'400i',
20022				'500',
20023				'500i',
20024				'700',
20025				'700i'
20026			]
20027		},
20028		'Muli': {
20029			'id': 'Muli',
20030			'title': 'Muli',
20031			'styles': [
20032				'200',
20033				'200i',
20034				'300',
20035				'300i',
20036				'400',
20037				'400i',
20038				'600',
20039				'600i',
20040				'700',
20041				'700i',
20042				'800',
20043				'800i',
20044				'900',
20045				'900i'
20046			]
20047		},
20048		'Tienne': {
20049			'id': 'Tienne',
20050			'title': 'Tienne',
20051			'styles': [
20052				'400',
20053				'700',
20054				'900'
20055			]
20056		},
20057		'Ultra': {
20058			'id': 'Ultra',
20059			'title': 'Ultra',
20060			'styles': [
20061				'400'
20062			]
20063		}
20064	},
20065	'getAvailableFonts': function() {
20066		var fonts = [];
20067		var fontIds = Object.keys(Mfe.Fonts.GoogleFonts.fontFamilies);
20068		for (var i = 0; i < fontIds.length; i++) {
20069			var fontId = fontIds[i];
20070			fonts.push(Mfe.Fonts.GoogleFonts.fontFamilies[fontId]);
20071		}
20072		
20073		return fonts;
20074	}
20075};
20076Mfe.Templates.store = {"plugins":{},"widgets":{"cms-cover":{"base-default-blogpost":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1280 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.program(4, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t<figure style=\\\"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1280 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"'); \"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\"><\/figure>\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1024 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.program(7, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t<figure style=\\\"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1024 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"'); \"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\"><\/figure>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1;
20076\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t<figure style=\\\"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"'); \"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\"><\/figure>\\n\t\t\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<h1><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/h1>\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"group\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div>\";\n},\"14\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCoverImage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<div class=\\\"overlay\\\"><\/div>\\n\t<div class=\\\"figure-overlay\\\"><\/div>\\n\t<div class=\\\"item-content\\\">\\n\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showTitle : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCategory : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t<\/div>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkEnabled : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(14, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/div>\";\n},\"useData\":true}","base-default-event":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure style=\\\"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1280 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"');\\\"><\/figure>\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\\\">
20076\\n\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCoverImage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t<div class=\\\"overlay\\\"><\/div>\\n\t<div class=\\\"figure-overlay\\\"><\/div>\\n\t<div class=\\\"item-content\\\">\\n\t\t<h1><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/h1>\\n\t\t<div class=\\\"date\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.multiDaySpan : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\"\n    + container.escapeExpression(((helper = (helper = helpers.startDate || (depth0 != null ? depth0.startDate : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"startDate\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}","base-default-page":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCoverImage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure style=\\\"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1920 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"'); \"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\"><\/figure>\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCoverImage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure style=\\\"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1024 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"'); \"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\"><\/figure>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1920 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(4, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<div class=\\\"overlay\\\"><\/div>\\n\t<div class=\\\"figure-overlay\\\"><\/div>\\n\t<div class=\\\"item-content\\\">\\n\t\t<h1><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/h1>
20076\\n\t<\/div>\\n<\/div>\\n\";\n},\"useData\":true}","base-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"content base-default\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<figure style=\\\"\\\"><\/figure>\\n\t<div class=\\\"overlay\\\"><\/div>\\n\t<div class=\\\"figure-overlay\\\"><\/div>\\n\t<div class=\\\"item-content\\\">\\n\t\t<h1>\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/h1>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}","base-rustic-blogpost":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<h1><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/h1>\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t<div class=\\\"date\\\">\\n\t\t\t\"\n    + container.escapeExpression((helpers.dateFormatShortLocal || (depth0 && depth0.dateFormatShortLocal) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatShortLocal\",\"hash\":{},\"data\":data}))\n    + \"\\n\t\t<\/div>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t<div class=\\\"cover\\\">\\n\t\t<figure>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1280 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<caption><\/caption>\\n\t\t<\/figure>\\n\t<\/div>\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1280 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\" \/>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1024 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.program(11, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1024 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\" \/>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1;
20076\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"12\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\" \/>\\n\t\t\t\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-rustic\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"item-content\\\">\\n\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showTitle : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<\/div>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCoverImage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n<\/div>\";\n},\"useData\":true}","base-rustic-page":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<h1><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/h1>\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t<div class=\\\"date\\\">\\n\t\t\t\"\n    + container.escapeExpression((helpers.dateFormatShortLocal || (depth0 && depth0.dateFormatShortLocal) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatShortLocal\",\"hash\":{},\"data\":data}))\n    + \"\\n\t\t<\/div>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t<div class=\\\"cover\\\"><figure>\\n\t\t\t\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1280 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<caption><\/caption>\\n\t\t<\/figure><\/div>\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1280 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\" \/>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1;
20076\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1024 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.program(11, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1024 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\" \/>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"12\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\" \/>\\n\t\t\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-rustic\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\\n\t<div class=\\\"item-content\\\">\\n\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showTitle : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<\/div>\\n\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCoverImage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n<\/div>\";\n},\"useData\":true}","base-rustic-event":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<h1 class=\\\"align-\"\n    + container.escapeExpression(((helper = (helper = helpers.titleTextAlign || (depth0 != null ? depth0.titleTextAlign : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"titleTextAlign\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/h1>\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t<div class=\\\"date\\\">\\n\t\t\t\"\n    + container.escapeExpression((helpers.dateFormatShortLocal || (depth0 && depth0.dateFormatShortLocal) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatShortLocal\",\"hash\":{},\"data\":data}))\n    + \"\\n\t\t<\/div>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t<div class=\\\"cover\\\">\\n\t\t<figure>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1280 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<caption><\/caption>\\n\t\t<\/figure>\\n\t<\/div>\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1280 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\" \/>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1024 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.program(11, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1024 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\" \/>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"12\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.focusPointCssVars : stack1), depth0))\n    + \"\\\" \/>\\n\t\t\t\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-rustic\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"item-content\\\">
20076\\n\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showTitle : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<\/div>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCoverImage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n<\/div>\";\n},\"useData\":true}"},"cms-fragments":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \" setting-text-image-no-wrap-around\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.hasMultipleLanguages : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"    <div class=\\\"language-picker\\\">\\n\t\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.availableLanguages : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"    <\/div>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},depth0,((stack1 = (data && data.root)) && stack1.currentLanguage),{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\\n\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    return \"\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},depth0,\"\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.program(15, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (data && data.root)) && stack1.currentLanguage),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.program(13, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t    <div class=\\\"button\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (data && data.root)) && stack1.currentLanguage),depth0,{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" data-language=\\\"\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\"><span><i class=\\\"fas fa-globe\\\"><\/i>Read in English<\/span><\/div>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    return \" selected\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t    \\n\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t    <div class=\\\"button\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (data && data.root)) && stack1.currentLanguage),depth0,{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" data-language=\\\"\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\"><img src=\\\"\"\n    + container.escapeExpression((helpers.langToFlagUrl || (depth0 && depth0.langToFlagUrl) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},depth0,{\"name\":\"langToFlagUrl\",\"hash\":{},\"data\":data}))\n    + \"\\\" \/> Read in \"\n    + container.escapeExpression((helpers.langToFriendlyLang || (depth0 && depth0.langToFriendlyLang) || helpers.helperMissing).call(depth0 != null ? depth0 : {},depth0,{\"name\":\"langToFriendlyLang\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\";\n},\"17\":function(container,depth0,helpers,partials,data) {\n    return \"<article>\";\n},\"19\":function(container,depth0,helpers,partials,data) {\n    return \"<\/article>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.allowTextWrap : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n    \\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showLanguagePicker : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n    \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.addArticleTag : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n    \"\n    + ((stack1 = ((helper = (helper = helpers.fragmentsHtml || (depth0 != null ? depth0.fragmentsHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"fragmentsHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n    \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.addArticleTag : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(19, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n<\/div>\";\n},\"useData\":true}","item-fragment":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"fragment cms-text\\\">\\n\t<div class=\\\"fragment-content\\\">\\n\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.html || (depth0 != null ? depth0.html : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"html\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t<\/div>\\n<\/div>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"CMSQuoteWidget\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.program(6, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"fragment cms-quote\\\">\\n\t<div class=\\\"fragment-content\\\">\\n\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.html || (depth0 != null ? depth0.html : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"html\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t<\/div>\\n<\/div>\\n\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"CMSImageWidget\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.program(22, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"fragment cms-image\\\">\\n\t<figure class=\\\"fragment-content\\\">
20076\\n            \\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageLink : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"                \\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageSource : depth0),\"upload\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.program(12, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"                \\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageLink : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"                \\n                \\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageCopyright : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<\/figure>\\n<\/div>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"                    <a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageLink || (depth0 != null ? depth0.imageLink : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageLink\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.media : depth0)) != null ? stack1.files : stack1)) != null ? stack1[\"0\"] : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" alt=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageCopyright || (depth0 != null ? depth0.imageCopyright : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageCopyright\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\\n\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageSource : depth0),\"url\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"13\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t<img src=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" alt=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageCopyright || (depth0 != null ? depth0.imageCopyright : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageCopyright\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\\n\t\t\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n    return \"                    <\/a>\\n\";\n},\"17\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t<figcaption class=\\\"copyright\\\">\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageCopyrightUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(18, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\"\n    + container.escapeExpression(((helper = (helper = helpers.imageCopyright || (depth0 != null ? depth0.imageCopyright : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageCopyright\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageCopyrightUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(20, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t<\/figcaption>\\n\";\n},\"18\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageCopyrightUrl || (depth0 != null ? depth0.imageCopyrightUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageCopyrightUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\";\n},\"20\":function(container,depth0,helpers,partials,data) {\n    return \"<\/a>\";\n},\"22\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"CMSTextImageWidget\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(23, data, 0),\"inverse\":container.program(34, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"23\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"fragment cms-text-image\\\">\\n\t<div class=\\\"fragment-content\\\">\\n\t\t<div class=\\\"image\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageAlignment : depth0),\"left\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(24, data, 0),\"inverse\":container.program(26, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageSource : depth0),\"upload\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(29, data, 0),\"inverse\":container.program(31, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<\/div>\\n\t\t<div class=\\\"text\\\">\\n\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.html || (depth0 != null ? depth0.html : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"html\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\\n\";\n},\"24\":function(container,depth0,helpers,partials,data) {\n    return \" left\";\n},\"26\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageAlignment : depth0),\"right\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(27, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"27\":function(container,depth0,helpers,partials,data) {\n    return \" right\";\n},\"29\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.media : depth0)) != null ? stack1.files : stack1)) != null ? stack1[\"0\"] : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" \/>\\n\";\n},\"31\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageSource : depth0),\"url\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(32, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"32\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t<img src=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\\n\t\t\";\n},\"34\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"CMSEmbedWidget\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(35, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"35\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"fragment cms-embed \"\n    + container.escapeExpression(((helper = (helper = helpers.embedVendor || (depth0 != null ? depth0.embedVendor : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"embedVendor\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \"\n    + container.escapeExpression(((helper = (helper = helpers.embedStatusClass || (depth0 != null ? depth0.embedStatusClass : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"embedStatusClass\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.embedVendor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(36, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.embedOembedUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(38, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \">\\n\t<div class=\\\"fragment-content\\\">\\n\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.embedHtml || (depth0 != null ? depth0.embedHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"embedHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t<\/div>\\n<\/div>\\n\";\n},\"36\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"data-oembed-vendor=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.embedVendor || (depth0 != null ? depth0.embedVendor : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"embedVendor\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"\";\n},\"38\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"data-oembed-url=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.embedOembedUrl || (depth0 != null ? depth0.embedOembedUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"embedOembedUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"CMSTextWidget\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true}"},"cms-metadata":{"base-default-blogpost":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t<div class=\\\"who\\\">\\n\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showText : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkAuthorToSearch : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showAuthorAvatar : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.author : stack1)) != null ? stack1.fullName : stack1), depth0))\n    + \"\\n\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkAuthorToSearch : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t<\/div>\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    return \"<span>Written by <\/span>\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<a href=\\\"\"\n    + container.escapeExpression((helpers.searchHref || (depth0 && depth0.searchHref) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.author : stack1)) != null ? stack1.fullName : stack1),{\"name\":\"searchHref\",\"hash\":{},\"data\":data}))\n    + \"\\\" class=\\\"author\\\">\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<div class=\\\"avatar\\\" style=\\\"background-image: url(\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.author : stack1)) != null ? stack1.avatarUrl : stack1), depth0))\n    + \");\\\"><\/div>\\n\t\t\t\t\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    return \"<\/a>\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t  \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t  \"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showAuthor : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    return \"on\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n    return \"Posted on\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"category \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showText : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(16, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showText : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(18, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<span>\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/span>\\n\t\t<\/div>\\n\";\n},\"16\":function(container,depth0,helpers,partials,data) {\n    return \"with-text\";\n},\"18\":function(container,depth0,helpers,partials,data) {\n    return \"\\n\t\t\tin \";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<div class=\\\"line\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showAuthor : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<div class=\\\"when\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showText : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<div class=\\\"date\\\">\\n\t\t\t\t\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"\\n\t\t\t<\/div>\\n\t\t<\/div>
20076\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCategory : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<\/div>\\n\t<!--<div class=\\\"read-time\\\">\\n\t\tRead time:\\n\t\t<span class=\\\"eta\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.readTime : stack1)) != null ? stack1.minutes : stack1), depth0))\n    + \"<\/span> minutes (<span class=\\\"eta\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.readTime : stack1)) != null ? stack1.words : stack1), depth0))\n    + \"<\/span> words)\\n\t<\/div>-->\\n<\/div>\";\n},\"useData\":true}","base-default-event":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<div class=\\\"line\\\">\\n\t\t<div class=\\\"who\\\">\\n\t\t\tWHEN?\\n\t\t\t<a href=\\\"#\\\" class=\\\"author\\\">\\n\t\t\t\t<div class=\\\"avatar\\\" style=\\\"background-image: url(\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.author : stack1)) != null ? stack1.avatarUrl : stack1), depth0))\n    + \");\\\"><\/div>\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.author : stack1)) != null ? stack1.fullName : stack1), depth0))\n    + \"\\n\t\t\t<\/a>\\n\t\t<\/div>\\n\t\t<div class=\\\"when\\\">\\n\t\t\ton\\n\t\t\t<div class=\\\"date\\\">\\n\t\t\t\t\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}","base-default-media":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<div class=\\\"line\\\">\\n\t\t<div class=\\\"what\\\">\\n\t\t\t<h1>\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/h1>\\n\t\t<\/div>\\n\t\t<div class=\\\"when\\\">\\n\t\t\t<div class=\\\"date\\\">\\n\t\t\t\t\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n\t<!--<div class=\\\"read-time\\\">\\n\t\tRead time:\\n\t\t<span class=\\\"eta\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.readTime : stack1)) != null ? stack1.minutes : stack1), depth0))\n    + \"<\/span> minutes (<span class=\\\"eta\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.readTime : stack1)) != null ? stack1.words : stack1), depth0))\n    + \"<\/span> words)\\n\t<\/div>-->\\n<\/div>\";\n},\"useData\":true}"},"cms-storyline":{"base-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<h2>\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/h2>\\n\t<p>\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/p>\\n\t<ul>\\n\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.itemsHtml || (depth0 != null ? depth0.itemsHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemsHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t<\/ul>\\n<\/div>\";\n},\"useData\":true}","item-blogpost":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"<\/a>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<li>\\n\t\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.contextContentId : depth0),\"!=\",(depth0 != null ? depth0.id : depth0),{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t<div class=\\\"title\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div>\\n\t\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.contextContentId : depth0),\"!=\",(depth0 != null ? depth0.id : depth0),{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n<\/li>\";\n},\"useData\":true}"},"cms-summary":{"base-default-blogpost":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"\\n<\/div>\";\n},\"useData\":true}","base-default-page":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"\\n<\/div>\";\n},\"useData\":true}"},"cms-tags":{"base-default-blogpost":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t<div class=\\\"tags\\\">\\n\t\t\t<span>More about:<\/span>\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.tags : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<\/div>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t<a href=\\\"\"\n    + container.escapeExpression((helpers.searchHref || (depth0 && depth0.searchHref) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.tag : depth0),{\"name\":\"searchHref\",\"hash\":{},\"data\":data}))\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"tag\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/a>\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(data && data.last),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.program(5, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    return \" \/ \";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<div class=\\\"line\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.tags : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<\/div>\\n<\/div>\";\n},\"useData\":true}"},"comments":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t<button data-action=\\\"show-facebook-comments\\\" class=\\\"ui-button text\\\"><div>Facebook reactions<span class=\\\"fb-comments-count\\\" data-href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.commentUrl || (depth0 != null ? depth0.commentUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"commentUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/span><\/div><\/button>
20076\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"content\\\">\\n\t<div class=\\\"platforms\\\">\\n\"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCommentsImmediately : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<\/div>\\n\t<div class=\\\"comments\\\" style=\\\"width: 100%;\\\">\\n\t\t\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}","comments-facebook":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"fb-comments\\\" style=\\\"width: 100%;\\\" data-width=\\\"100%\\\" data-href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.commentUrl || (depth0 != null ? depth0.commentUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"commentUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-numposts=\\\"5\\\"><\/div>\";\n},\"useData\":true}"},"content-grid":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \" is-loading\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t<nav class=\\\"tabs\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.tabs : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<\/nav>\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t<button \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(data && data.first),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \">\"\n    + container.escapeExpression(((helper = (helper = helpers.label || (depth0 != null ? depth0.label : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"label\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/button>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    return \"class=\\\"selected\\\" \";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"--items-per-row: \"\n    + container.escapeExpression(((helper = (helper = helpers.itemsPerRow || (depth0 != null ? depth0.itemsPerRow : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemsPerRow\",\"hash\":{},\"data\":data}) : helper)))\n    + \";\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"--gutter-x: \"\n    + container.escapeExpression(((helper = (helper = helpers.gutterX || (depth0 != null ? depth0.gutterX : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"gutterX\",\"hash\":{},\"data\":data}) : helper)))\n    + \";\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"--gutter-y: \"\n    + container.escapeExpression(((helper = (helper = helpers.gutterY || (depth0 != null ? depth0.gutterY : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"gutterY\",\"hash\":{},\"data\":data}) : helper)))\n    + \";\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.placeholderItems : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(14, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"14\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t<li class=\\\"placeholder\\\"><div class=\\\"container\\\"><div class=\\\"wrapper\\\"><\/div><\/div><\/li>\\n\";\n},\"16\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t<button class=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.loadM
20076oreClasses || (depth0 != null ? depth0.loadMoreClasses : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"loadMoreClasses\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-action=\\\"load-more\\\"><div>\"\n    + container.escapeExpression(((helper = (helper = helpers.loadMoreText || (depth0 != null ? depth0.loadMoreText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"loadMoreText\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div><\/button>\\n\";\n},\"18\":function(container,depth0,helpers,partials,data) {\n    return \"\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default style-\"\n    + container.escapeExpression(((helper = (helper = helpers.style || (depth0 != null ? depth0.style : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"style\",\"hash\":{},\"data\":data}) : helper)))\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.tabs : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<ul style=\\\"\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.itemsPerRow : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" --items-per-row-perc: \"\n    + container.escapeExpression(((helper = (helper = helpers.itemsPerRowPerc || (depth0 != null ? depth0.itemsPerRowPerc : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemsPerRowPerc\",\"hash\":{},\"data\":data}) : helper)))\n    + \"; \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.gutterX : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.gutterY : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.itemsHtml || (depth0 != null ? depth0.itemsHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemsHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t<\/ul>\\n\t\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showLoadMore : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(16, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\\n\t<div class=\\\"paging\\\">\\n\t\t\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.totalMatches : depth0),\">\",(depth0 != null ? depth0.itemsPerPage : depth0),{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(18, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}","item-blogpost-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure>\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure>\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"group mfe-wc-blogpost-group\\\" data-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\"><div class=\\\"inner\\\">\"\n    + ((stack1 = (helpers.ifKeyInObject || (depth0 && depth0.ifKeyInObject) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1),(depth0 != null ? depth0.blogCategoryMapping : depth0),{\"name\":\"ifKeyInObject\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.program(9, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/div><\/div>\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return container.escapeExpression(helpers.lookup.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.blogCategoryMapping : depth0),((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1),{\"name\":\"lookup\",\"hash\":{},\"data\":data}));\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.label : stack1), depth0));\n},\"11\":function(container,depth0,helpers,partials,data) {\n    return \"<div class=\\\"date mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" template-fulllink\\\" data-blog-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">
20076\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"<div class=\\\"figure-overlay\\\"><\/div><\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"meta\\\">\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCategory : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t<\/div>\\n\t\t\t\t<div class=\\\"title\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div>\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showSummary : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-blogpost-fulllink":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" style=\\\"\"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" background-repeat: no-repeat; background-position: 50% 50%; background-size: cover !important;\\\"><\/figure>\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    return \" lazy\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"data-bg=\\\"url(\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \")\\\"\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"');\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1;
20076\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" style=\\\"\"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" background-repeat: no-repeat; background-position: 50% 50%; background-size: cover !important;\\\"><\/figure>\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"data-bg=\\\"url(\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \")\\\"\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"');\";\n},\"14\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"group mfe-wc-blogpost-group\\\" data-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\"><div class=\\\"inner\\\">\\n\t\t\t\t\t\t\"\n    + ((stack1 = (helpers.ifKeyInObject || (depth0 && depth0.ifKeyInObject) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1),(depth0 != null ? depth0.blogCategoryMapping : depth0),{\"name\":\"ifKeyInObject\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.program(17, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\t<\/div><\/div>\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return container.escapeExpression(helpers.lookup.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.blogCategoryMapping : depth0),((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1),{\"name\":\"lookup\",\"hash\":{},\"data\":data}));\n},\"17\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.label : stack1), depth0));\n},\"19\":function(container,depth0,helpers,partials,data) {\n    return \"<div class=\\\"date mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\";\n},\"21\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" template-fulllink\\\" data-blog-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">
20076\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"<div class=\\\"figure-overlay\\\"><\/div><\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCategory : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(14, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(19, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t<div class=\\\"title\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div>\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showSummary : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(21, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-media-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"photo\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<figure style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.media : depth0)) != null ? stack1.thumbnail : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-media style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" aspect-ratio\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.mediaID || (depth0 != null ? depth0.mediaID : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mediaID\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"  title=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.source : depth0),\"mobypicture\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\\n\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-usergroupteam-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"photo\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<figure style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.media : depth0)) != null ? stack1.thumbnail : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-media style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" aspect-ratio\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.mediaID || (depth0 != null ? depth0.mediaID : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mediaID\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.source : depth0),\"mobypicture\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\\n\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-page-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure>\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;
20076\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"group mfe-wc-blogpost-group\\\" data-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.label : stack1), depth0))\n    + \"<\/div><\/div><div class=\\\"date mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"title\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/a><\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-page-fulllink":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure>\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;
20076\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" template-fulllink\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"group mfe-wc-blogpost-group\\\" data-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.label : stack1), depth0))\n    + \"<\/div><\/div><div class=\\\"date mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"title\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-page-menu":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-page style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" template-fulllink\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\"><figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure><\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<h2><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/h2>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-blogpost-alt":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"group mfe-wc-blogpost-group\\\" data-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.label : stack1), depth0))\n    + \"<\/div><\/div>\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"<div class=\\\"date mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" template-fulllink\\\" data-blog-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\"><figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure><\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"meta\\\">\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCategory : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t<\/div>\\n\t\t\t\t<div class=\\\"title\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div>\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showSummary : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-event-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"day\\\">\"\n    + container.escapeExpression((helpers.dateOfMonth || (depth0 && depth0.dateOfMonth) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.startDate : depth0),{\"name\":\"dateOfMonth\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"month\\\">\"\n    + container.escapeExpression((helpers.dateMonthYear || (depth0 && depth0.dateMonthYear) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.startDate : depth0),{\"name\":\"dateMonthYear\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"day\\\">\"\n    + container.escapeExpression((helpers.dateOfMonth || (depth0 && depth0.dateOfMonth) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.startDateUtc : depth0),{\"name\":\"dateOfMonth\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"month\\\">\"\n    + container.escapeExpression((helpers.dateMonthYear || (depth0 && depth0.dateMonthYear) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.startDateUtc : depth0),{\"name\":\"dateMonthYear\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isSameDay : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.program(6, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"6\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t\t\t\t\"\n    + container.escapeExpression((helpers.dateFormatShort || (depth0 && depth0.dateFormatShort) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.startDate : depth0),{\"name\":\"dateFormatShort\",\"hash\":{},\"data\":data}))\n    + \"\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isSameDay : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.program(9, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"9\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t\t\t\t\"\n    + container.escapeExpression((helpers.dateFormatShort || (depth0 && depth0.dateFormatShort) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.startDateUtc : depth0),{\"name\":\"dateFormatShort\",\"hash\":{},\"data\":data}))\n    + \"\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t\t\t\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.location : stack1)) != null ? stack1.venue : stack1), depth0))\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.location : stack1)) != null ? stack1.city : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"12\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t\t\t,\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-event style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" aspect-ratio\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.mediaID || (depth0 != null ? depth0.mediaID : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mediaID\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">\\n\t\t\t\t<figure style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure>\\n\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<div class=\\\"item-date\\\">
20076\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.disableTimezones : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.description : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<div class=\\\"item-extra\\\">\\n\t\t\t\t<div class=\\\"time\\\">\\n\t\t\t\t\t<i class=\\\"fa fa-clock\\\"><\/i>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.disableTimezones : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t<\/div>\\n\t\t\t\t<div class=\\\"location\\\">\\n\t\t\t\t\t<i class=\\\"fa fa-map-marker\\\"><\/i>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.location : stack1)) != null ? stack1.venue : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\t\\n\t\t\t\t\t\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.location : stack1)) != null ? stack1.city : stack1), depth0))\n    + \"\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-media-nice":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"photo\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<figure style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.media : depth0)) != null ? stack1.thumbnail : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-media template-media-nice style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" aspect-ratio\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.mediaID || (depth0 != null ? depth0.mediaID : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mediaID\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.source : depth0),\"mobypicture\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-menu-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<li class=\\\"type-menu style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t\\n\t\t\t<div class=\\\"media\\\">\\n\t\t\t\t<figure>\\n\t\t\t\t\t<img src=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\\n\t\t\t\t<\/figure>\\n\t\t\t<\/div>\\n\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-menu-features":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t<a class=\\\"container\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"url\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"\t<div class=\\\"container\\\">\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t\t<div class=\\\"icon\\\"><i class=\\\"fas fa-\"\n    + container.escapeExpression(((helper = (helper = helpers.icon || (depth0 != null ? depth0.icon : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"icon\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/i><\/div>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t\t<img src=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\\n\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n    return \"\t<\/a>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    return \"\t<\/div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-menu template-features style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">
20076\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.url : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t\\n\t\t\t<div class=\\\"media\\\">\\n\t\t\t\t<figure>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.icon : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.program(7, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t<\/figure>\\n\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<div class=\\\"info\\\">\\n\\n\t\t\t\t<h2>\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/h2>\\n\t\t\t\t<p>\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/p>\\n\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.url : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.program(11, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/li>\";\n},\"useData\":true}","item-menu-logos":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<a target=\\\"_blank\\\" rel=\\\"external\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"url\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"<\/a>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-menu style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t\\n\t\t\t<div class=\\\"media\\\">\\n\t\t\t\t<figure>\\n\t\t\t\t    \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.url : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t    <img src=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>
20076\\n\t\t\t\t    \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.url : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\\n\t\t\t\t<\/figure>\\n\t\t\t<\/div>\\n\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-blogpost-team":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" style=\\\"\"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" background-repeat: no-repeat; background-position: 50% 50%; background-size: cover !important;\\\"><\/figure>\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    return \" lazy\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"data-bg=\\\"url(\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \")\\\"\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"');\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" style=\\\"\"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" background-repeat: no-repeat; background-position: 50% 50%; background-size: cover !important;\\\"><\/figure>\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"data-bg=\\\"url(\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \")\\\"\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"');\";\n},\"14\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"group mfe-wc-blogpost-group\\\" data-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\"><div class=\\\"inner\\\">\\n\t\t\t\t\t\t\"\n    + ((stack1 = (helpers.ifKeyInObject || (depth0 && depth0.ifKeyInObject) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1),(depth0 != null ? depth0.blogCategoryMapping : depth0),{\"name\":\"ifKeyInObject\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.program(17, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\t<\/div><\/div>\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return container.escapeExpression(helpers.lookup.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.blogCategoryMapping : depth0),((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1),{\"name\":\"lookup\",\"hash\":{},\"data\":data}));\n},\"17\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.label : stack1), depth0));\n},\"19\":function(container,depth0,helpers,partials,data) {\n    return \"<div class=\\\"date mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\";\n},\"21\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"summary\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div><\/div>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" template-team\\\" data-blog-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"<div class=\\\"figure-overlay\\\"><\/div><\/div>\\n\t\t\t<div class=\\\"item-content\\\">
20076\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showCategory : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(14, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(19, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t<div class=\\\"title\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div>\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showSummary : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(21, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-menu-vertical":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<li class=\\\"type-page style-\"\n    + container.escapeExpression(((helper = (helper = helpers.style || (depth0 != null ? depth0.style : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"style\",\"hash\":{},\"data\":data}) : helper)))\n    + \" template-fulllink\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-query-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.queryId || (depth0 != null ? depth0.queryId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"queryId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\"><figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure><\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<h2><div class=\\\"inner\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div><\/h2>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"url\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}"},"content-grid_1":{"item-blogpost-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\"><figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure><\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"group mfe-wc-blogpost-group\\\" data-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div><div class=\\\"date mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.publicationDateLocal || (depth0 != null ? depth0.publicationDateLocal : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"publicationDateLocal\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"title\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/a><\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-blogpost-fulllink":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" template-fulllink\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\"><figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><\/figure><\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"group mfe-wc-blogpost-group\\\" data-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div><div class=\\\"date mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"title\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-media-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.mediaSubType : depth0),\"photo\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t<figure style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.media : stack1)) != null ? stack1.thumbnails : stack1)) != null ? stack1.square : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-media style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" aspect-ratio\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.mediaID || (depth0 != null ? depth0.mediaID : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mediaID\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.mediaType : depth0),\"mobypicture\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t\t\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/a><\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.description : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}"},"content-list":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \" is-loading\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"<nav>\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.placeholderItems : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"6\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t<li class=\\\"placeholder\\\"><div class=\\\"container\\\"><div class=\\\"wrapper\\\"><\/div><\/div><\/li>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t<a href=\\\"#\\\" class=\\\"load-more\\\" data-action=\\\"load-more\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.loadM
20076oreText || (depth0 != null ? depth0.loadMoreText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"loadMoreText\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/a>\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    return \"<\/nav>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.addNavTag : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t<ul>\\n\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.itemsHtml || (depth0 != null ? depth0.itemsHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemsHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<\/ul>\\n\t\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showLoadMore : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.addNavTag : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n<\/div>\";\n},\"useData\":true}","item-blogpost-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\"><figure  style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure><\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"group mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"title\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/a><\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-blogpost-faux":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\\n\t\t\t\t\t\t\t<div class=\\\"widget cms-tags no-makeup\\\">\\n\t\t\t\t\t\t\t\t<span>This story features:<\/span>\\n\t\t\t\t\t\t\t\t<div class=\\\"line\\\">\\n\t\t\t\t\t\t\t\t<div class=\\\"tags\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.tags : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\t<\/div>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t\t\t\t\t<a href=\\\"\/search?t=\"\n    + container.escapeExpression(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"tag\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.tag || (depth0 != null ? depth0.tag : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"tag\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/a>
20076\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(data && data.last),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.program(5, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    return \" \/ \";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost template-faux style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"widget cms-cover\\\">\\n\t\t\t\t<div class=\\\"content base-default\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t\t\t<figure style=\\\"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1024 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"');\\\"><\/figure>\\n\t\t\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t\t\t\t<div class=\\\"figure-overlay\\\"><\/div>\\n\t\t\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t\t\t<h1><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/h1>\\n\t\t\t\t\t\t<div class=\\\"group\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item-content content-area\\\">\\n\t\t\t\t<div class=\\\"wrapper\\\">\\n\t\t\t\t\t<div class=\\\"widget cms-metadata\\\">\\n\t\t\t\t\t\t<div class=\\\"line\\\">\\n\t\t\t\t\t\t\t<div class=\\\"who\\\">\\n\t\t\t\t\t\t\t\tWritten by \\n\t\t\t\t\t\t\t\t<a href=\\\"\"\n    + container.escapeExpression((helpers.searchHref || (depth0 && depth0.searchHref) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.author : stack1)) != null ? stack1.id : stack1),{\"name\":\"searchHref\",\"hash\":{},\"data\":data}))\n    + \"\\\" class=\\\"author\\\">\\n\t\t\t\t\t\t\t\t\t<div class=\\\"avatar\\\" style=\\\"background-image: url(\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.author : stack1)) != null ? stack1.avatarUrl : stack1), depth0))\n    + \");\\\"><\/div>\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.author : stack1)) != null ? stack1.fullName : stack1), depth0))\n    + \"\\n\t\t\t\t\t\t\t\t<\/a>\\n\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\t<div class=\\\"when\\\">\\n\t\t\t\t\t\t\t\ton\\n\t\t\t\t\t\t\t\t<div class=\\\"date\\\">\\n\t\t\t\t\t\t\t\t\t\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"\\n\t\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<div class=\\\"sub-content\\\">\\n\t\t\t\t\t\t<div class=\\\"left\\\">\\n\t\t\t\t\t\t\t<div class=\\\"widget cms-fragments\\\">\\n\t\t\t\t\t\t\t\t<div class=\\\"content base-default\\\">\"\n    + ((stack1 = ((helper = (helper = helpers.fragmentsHtml || (depth0 != null ? depth0.fragmentsHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"fragmentsHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/div>\\n\t\t\t\t\t\t\t<\/div>\\n\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t<div class=\\\"right\\\">\\n\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.tags : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<a class=\\\"overlay\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t\t\t\t<div class=\\\"ui-button special\\\"><div>Read more<\/div><\/div>\\n\t\t\t\t\t<\/a>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-blogpost-line":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"item-index\\\" data-item-index=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.itemNumber || (depth0 != null ? depth0.itemNumber : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemNumber\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/div>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" style-line\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showItemNumbers : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-blogpost-modern":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost template-modern style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"group mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div>\\n\t\t\t\t<h4 class=\\\"title\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/h4>\\n\t\t\t\t<div class=\\\"date\\\">\"\n    + container.escapeExpression((helpers.dateFormatShortLocal || (depth0 && depth0.dateFormatShortLocal) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatShortLocal\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"media\\\"><figure  style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure><\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-blogpost-popular":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"item-index\\\" data-item-index=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.itemNumber || (depth0 != null ? depth0.itemNumber : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemNumber\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/div>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" style-popular\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showItemNumbers : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/a><\/div>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-media-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.mediaSubType : depth0),\"photo\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t<figure style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.media : stack1)) != null ? stack1.thumbnails : stack1)) != null ? stack1.square : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-media style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" aspect-ratio\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.mediaID || (depth0 != null ? depth0.mediaID : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mediaID\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.mediaType : depth0),\"mobypicture\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/a><\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.description : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}"},"content-popular":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \" is-loading\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.placeholderItems : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"4\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t<li class=\\\"placeholder\\\"><div class=\\\"container\\\"><div class=\\\"wrapper\\\"><\/div><\/div><\/li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default style-\"\n    + container.escapeExpression(((helper = (helper = helpers.style || (depth0 != null ? depth0.style : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"style\",\"hash\":{},\"data\":data}) : helper)))\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t<ul>\\n\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.itemsHtml || (depth0 != null ? depth0.itemsHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemsHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<\/ul>\\n<\/div>\";\n},\"useData\":true}","item-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" style=\\\"\"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" background-repeat: no-repeat; background-position: 50% 50%; background-size: cover !important;\\\"><\/figure>\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    return \" lazy\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"data-bg=\\\"url(\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \")\\\"\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"');\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1;
20076\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" style=\\\"\"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" background-repeat: no-repeat; background-position: 50% 50%; background-size: cover !important;\\\"><\/figure>\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"data-bg=\\\"url(\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \")\\\"\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"');\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"<div class=\\\"figure-overlay\\\"><\/div><\/div>\\n\t\t\t<div class=\\\"item-index\\\" data-item-index=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.itemNumber || (depth0 != null ? depth0.itemNumber : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemNumber\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"group mfe-wc-blogpost-group\\\" data-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><div class=\\\"date mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateLocal : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"title\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div>\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}"},"content-roll":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \" is-loading\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.placeholderItems : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"4\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t<li class=\\\"placeholder\\\"><div class=\\\"container\\\"><div class=\\\"wrapper\\\"><\/div><\/div><\/li>\\n\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    return \"\t<a href=\\\"#\\\" class=\\\"load-more\\\" data-action=\\\"load-more\\\">Load more<\/a>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t<ul>\\n\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.itemsHtml || (depth0 != null ? depth0.itemsHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemsHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<li class=\\\"filler\\\"><\/li>\\n\t<\/ul>\\n\t\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showLoadMore : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/div>\";\n},\"useData\":true}"},"content-scroller":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \" is-loading\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.placeholderItems : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"4\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t<li class=\\\"placeholder\\\"><div class=\\\"container\\\"><div class=\\\"wrapper\\\"><\/div><\/div><\/li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default style-\"\n    + container.escapeExpression(((helper = (helper = helpers.style || (depth0 != null ? depth0.style : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"style\",\"hash\":{},\"data\":data}
20076) : helper)))\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t<div class=\\\"scroll\\\">\\n\t\t<ul>\\n\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.itemsHtml || (depth0 != null ? depth0.itemsHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemsHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<\/ul>\\n\t<\/div>\\n\t<button class=\\\"nav-arrow nav-left\\\"><div class=\\\"icon\\\"><i class=\\\"fas fa-chevron-left\\\"><\/i><\/div><\/button>\\n\t<button class=\\\"nav-arrow nav-right\\\"><div class=\\\"icon\\\"><i class=\\\"fas fa-chevron-right\\\"><\/i><\/div><\/button>\\n<\/div>\\n\";\n},\"useData\":true}","item-blogpost-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\"><figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure><\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"group mfe-wc-blogpost-group\\\" data-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div><div class=\\\"date mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"title\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/a><\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-blogpost-fulllink":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" style=\\\"\"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" background-repeat: no-repeat; background-position: 50% 50%; background-size: cover !important;\\\"><\/figure>\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    return \" lazy\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"data-bg=\\\"url(\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \")\\\"\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"');\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<figure class=\\\"coverimage imgbox\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" style=\\\"\"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.enableLazyLoad : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" background-repeat: no-repeat; background-position: 50% 50%; background-size: cover !important;\\\"><\/figure>\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"data-bg=\\\"url(\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \")\\\"\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"');\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" template-fulllink\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.categoryBlockCssVars || (depth0 != null ? depth0.categoryBlockCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"categoryBlockCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">
20076\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"<div class=\\\"figure-overlay\\\"><\/div><\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"group mfe-wc-blogpost-group\\\" data-group-id=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.id : stack1), depth0))\n    + \"\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.blogGroup : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div><div class=\\\"date mfe-wc-blogpost-date\\\">\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.publicationDateUtc : depth0),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"title\\\"><div class=\\\"inner\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div><\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}","item-media-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"photo\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t<figure style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.media : depth0)) != null ? stack1.thumbnail : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<li class=\\\"type-media style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" aspect-ratio\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.mediaID || (depth0 != null ? depth0.mediaID : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mediaID\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"media\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.source : depth0),\"mobypicture\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/a><\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}"},"content-slider":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \" is-loading\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \" nav-right-enabled\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    return \" show-overlay\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    return \"\t<button class=\\\"nav-arrow nav-left\\\"><i class=\\\"far fa-chevron-left\\\"><\/i><\/button>\\n\t<button class=\\\"nav-arrow nav-right\\\"><i class=\\\"far fa-chevron-right\\\"><\/i><\/button>\\n\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n    return \"\t<button class=\\\"nav-arrow nav-left\\\"><i class=\\\"fas fa-chevron-left\\\"><\/i><\/button>\\n\t<button class=\\\"nav-arrow nav-right\\\"><i class=\\\"fas fa-chevron-right\\\"><\/i><\/button>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    return \"\t<div class=\\\"scroll\\\">\\n\t\t<span>Scroll<\/span>\\n\t\t<i class=\\\"fa fa-arrow-alt-down\\\"><\/i>\\n\t<\/div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.rightNavEnabled : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" nav-position-\"\n    + container.escapeExpression(((helper = (helper = helpers.navPosition || (depth0 != null ? depth0.navPosition : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"navPosition\",\"hash\":{},\"data\":data}) : helper)))\n    + \" nav-style-\"\n    + container.escapeExpression(((helper = (helper = helpers.navStyle || (depth0 != null ? depth0.navStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"navStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \" nav-size-\"\n    + container.escapeExpression(((helper = (helper = helpers.navSize || (depth0 != null ? depth0.navSize : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"navSize\",\"hash\":{},\"data\":data}
20076) : helper)))\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showOverlay : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t<div class=\\\"stage-container\\\">\\n\t\t<div class=\\\"stage anim-done anim-in\\\">\\n\t\t\t<div class=\\\"slide left-slide\\\">\"\n    + ((stack1 = ((helper = (helper = helpers.leftSlideHtml || (depth0 != null ? depth0.leftSlideHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"leftSlideHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/div>\\n\t\t\t<div class=\\\"slide current-slide\\\">\"\n    + ((stack1 = ((helper = (helper = helpers.currentSlideHtml || (depth0 != null ? depth0.currentSlideHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"currentSlideHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/div>\\n\t\t\t<div class=\\\"slide right-slide\\\">\"\n    + ((stack1 = ((helper = (helper = helpers.rightSlideHtml || (depth0 != null ? depth0.rightSlideHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"rightSlideHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n\t<div class=\\\"slides\\\">\\n\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.slidesHtml || (depth0 != null ? depth0.slidesHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"slidesHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t<\/div>\\n\t<div class=\\\"overlay\\\"><\/div>\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.navStyle : depth0),\"chevron-regular\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.program(9, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showScrollInfo : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/div> \";\n},\"useData\":true}","item-blogpost-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"item type-blogpost style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title font-heavy\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/a><\/div>\\n\t\t\t\t<div class=\\\"summary\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.summary : stack1), depth0))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}","item-blogpost-simple":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"item type-blogpost style-simple\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<figure style=\\\"background: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box1024 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/a><\/div>\\n\t\t\t\t<a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/a>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}","item-event-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"item type-event style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<figure style=\\\"background-image: url('\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box640 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"');\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<div class=\\\"title\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.title : stack1), depth0))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"date-time\\\"><div class=\\\"icon\\\"><i class=\\\"far fa-clock\\\"><\/i><\/div>9 mei 2018<\/div>\\n\t\t\t\t<div class=\\\"location\\\"><div class=\\\"icon\\\"><i class=\\\"far fa-location-arrow\\\"><\/i><\/div>Westergas fabriek<\/div>\\n\t\t\t<\/div>\\n\t\t\t<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}","item-menuitem-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t<p>\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/p>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t<a class=\\\"ui-button\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"url\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.buttonText || (depth0 != null ? depth0.buttonText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"buttonText\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/a>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"item type-menuitem style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<h1 class=\\\"title\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/h1>
20076\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.description : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.buttonText : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}","item-datasetrecord-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t<p>\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/p>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t<a class=\\\"ui-button\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"url\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.buttonText || (depth0 != null ? depth0.buttonText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"buttonText\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/a>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"item type-menuitem style-\"\n    + container.escapeExpression(((helper = (helper = helpers.itemStyle || (depth0 != null ? depth0.itemStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"itemStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-item-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<figure class=\\\"coverimage imgbox\\\" style=\\\"background: url('\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"') no-repeat 50% 50% \/ cover!important;\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a><\/figure>\\n\t\t\t<div class=\\\"item-content\\\">\\n\t\t\t\t<h1 class=\\\"title\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/h1>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.description : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.buttonText : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}"},"donation":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \"hide\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"checked=\\\"checked\\\"\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"frequency-input-monthly\\\" class=\\\"ui-radio\\\" name=\\\"frequency\\\" value=\\\"monthly\\\" type=\\\"radio\\\" \"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.defaultFrequency : depth0),\"monthly\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"><label for=\\\"frequency-input-monthly\\\">Monthly<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"frequency-input-quarterly\\\" class=\\\"ui-radio\\\" name=\\\"frequency\\\" value=\\\"quarterly\\\" type=\\\"radio\\\" \"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.defaultFrequency : depth0),\"quarterly\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"><label for=\\\"frequency-input-quarterly\\\">Quarterly<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"frequency-input-yearly\\\" class=\\\"ui-radio\\\" name=\\\"frequency\\\" value=\\\"yearly\\\" type=\\\"radio\\\" \"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.defaultFrequency : depth0),\"yearly\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"><label for=\\\"frequency-input-yearly\\\">Yearly<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return ((stack1 = ((helper = (helper = helpers.amountLabel || (depth0 != null ? depth0.amountLabel : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"amountLabel\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\");\n},\"13\":function(container,depth0,helpers,partials,data) {\n    return \"Choose an amount\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-single-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" type=\\\"radio\\\" \"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.defaultAmount : depth0),depth0,{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"><label for=\\\"amount-input-single-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\">&euro; \"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \",-<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"17\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"item mobile\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-single-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" type=\\\"radio\\\"><label for=\\\"amount-input-single-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\">&euro; \"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \",-<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"19\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<div class=\\\"amount-frequency monthly\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.monthly : stack1)) != null ? stack1.desktop : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(20, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.monthly : stack1)) != null ? stack1.mobile : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\";\n},\"20\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-monthly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" type=\\\"radio\\\"><label for=\\\"amount-input-monthly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\">&euro; \"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \",-<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"22\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"item mobile\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-monthly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" type=\\\"radio\\\"><label for=\\\"amount-input-monthly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\">&euro; \"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \",-<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"24\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<div class=\\\"amount-frequency quarterly\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.quarterly : stack1)) != null ? stack1.desktop : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(25, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.quarterly : stack1)) != null ? stack1.mobile : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(27, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\";\n},\"25\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-quarterly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" type=\\\"radio\\\"><label for=\\\"amount-input-quarterly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\">&euro; \"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \",-<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"27\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"item mobile\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-quarterly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" type=\\\"radio\\\"><label for=\\\"amount-input-quarterly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\">&euro; \"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \",-<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"29\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<div class=\\\"amount-frequency yearly\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.yearly : stack1)) != null ? stack1.desktop : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(30, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.yearly : stack1)) != null ? stack1.mobile : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(32, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\";\n},\"30\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-yearly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" type=\\\"radio\\\"><label for=\\\"amount-input-yearly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\">&euro; \"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \",-<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"32\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"item mobile\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-yearly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\" type=\\\"radio\\\"><label for=\\\"amount-input-yearly-\"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \"\\\">&euro; \"\n    + container.escapeExpression(container.lambda(depth0, depth0))\n    + \",-<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"34\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t<p>
20076\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.destinationsLabel : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(35, data, 0),\"inverse\":container.program(37, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/p>\\n\t\t<div class=\\\"destination\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.destinations : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(39, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t<div class=\\\"filler\\\"><\/div>\\n\t\t\t<div class=\\\"filler\\\"><\/div>\\n\t\t\t<div class=\\\"filler\\\"><\/div>\\n\t\t\t<div class=\\\"filler\\\"><\/div>\\n\t\t\t<div class=\\\"filler\\\"><\/div>\\n\t\t\t<div class=\\\"filler\\\"><\/div>\\n\t\t\t<div class=\\\"filler\\\"><\/div>\\n\t\t<\/div>\\n\";\n},\"35\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.destinationsLabel || (depth0 != null ? depth0.destinationsLabel : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"destinationsLabel\",\"hash\":{},\"data\":data}) : helper)));\n},\"37\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"You can choose where your \"\n    + container.escapeExpression(((helper = (helper = helpers.donateEntity || (depth0 != null ? depth0.donateEntity : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"donateEntity\",\"hash\":{},\"data\":data}) : helper)))\n    + \" goes\";\n},\"39\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"destination-input-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"ui-radio\\\" name=\\\"destination\\\" value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"radio\\\"><label for=\\\"destination-input-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.iconSource : depth0),\"fa\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(40, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\t\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\";\n},\"40\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t\t<i class=\\\"fas fa-\"\n    + container.escapeExpression(((helper = (helper = helpers.icon || (depth0 != null ? depth0.icon : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"icon\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/i>\\n\";\n},\"42\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t<div class=\\\"fieldset\\\">\\n\\n\t\t\t\t<div class=\\\"field\\\" data-field=\\\"nameFirst\\\">\\n\t\t\t\t\t<div class=\\\"label\\\">First name *<\/div>\\n\t\t\t\t\t<div class=\\\"input\\\"><input maxlength=\\\"100\\\" name=\\\"nameFirst\\\" value=\\\"\\\" type=\\\"text\\\"><div class=\\\"feedback left \\\"><\/div><\/div>\\n\t\t\t\t<\/div>\\n\t\t\t\t\\n\t\t\t\t<div class=\\\"field\\\" data-field=\\\"nameLast\\\">\\n\t\t\t\t\t<div class=\\\"label\\\">Last name *<\/div>\\n\t\t\t\t\t<div class=\\\"input\\\"><input maxlength=\\\"100\\\" name=\\\"nameLast\\\" value=\\\"\\\" type=\\\"text\\\"><div class=\\\"feedback left \\\"><\/div><\/div>\\n\t\t\t\t<\/div>\\n\t\t\t\t\\n\t\t\t<\/div>\\n\\n\";\n},\"44\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t\t\t\t<option value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/option>\\n\";\n},\"46\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<div class=\\\"fieldset\\\">\\n\t\t\t\t<div class=\\\"field\\\" data-field=\\\"newsletter\\\">\\n\t\t\t\t\t<div class=\\\"input\\\">\\n\t\t\t\t\t\t<label>\\n\t\t\t\t\t\t\t<div class=\\\"ui-checkbox no-ml\\\">\\n\t\t\t\t\t\t\t\t<input type=\\\"checkbox\\\" name=\\\"newsletter\\\" \/>\\n\t\t\t\t\t\t\t\t<span><i class=\\\"fas fa-check\\\"><\/i><\/span>\\n\t\t\t\t\t\t\t<\/div>
20076\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.newsletterHtml : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(47, data, 0),\"inverse\":container.program(49, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\t\t<\/label>\\n\t\t\t\t\t\t<div class=\\\"feedback left\\\"><\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\";\n},\"47\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.newsletterHtml || (depth0 != null ? depth0.newsletterHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"newsletterHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"49\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t\t\t\tI am happy for Movement On The Ground and the partners involved in this campaign to save my details and send me the latest information on how I can help by email.\\n\";\n},\"51\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t<div class=\\\"fieldset\\\">\\n\t\t\t\t<div class=\\\"field\\\" data-field=\\\"terms\\\">\\n\t\t\t\t\t<div class=\\\"input\\\">\\n\t\t\t\t\t\t<label>\\n\t\t\t\t\t\t\t<div class=\\\"ui-checkbox no-ml\\\">\\n\t\t\t\t\t\t\t\t<input type=\\\"checkbox\\\" name=\\\"terms\\\" \/>\\n\t\t\t\t\t\t\t\t<span><i class=\\\"fas fa-check\\\"><\/i><\/span>\\n\t\t\t\t\t\t\t<\/div>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.termsHtml : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(52, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\t\t<\/label>\\n\t\t\t\t\t\t<div class=\\\"feedback left\\\"><\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\";\n},\"52\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.termsHtml || (depth0 != null ? depth0.termsHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"termsHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"54\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t<p class=\\\"fineprint\\\">Payments are securely processed using <a href=\\\"https:\/\/www.mollie.com\/\\\">Mollie<\/a>. No payment details will be stored by us.<\/p>\\n\";\n},\"56\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t<button class=\\\"ui-button special \"\n    + container.escapeExpression(((helper = (helper = helpers.buttonPaymentClasses || (depth0 != null ? depth0.buttonPaymentClasses : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"buttonPaymentClasses\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-action=\\\"payment\\\"><div>Select payment method <i class=\\\"fas fa-angle-right\\\"><\/i><\/div><\/button>\\n\";\n},\"58\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t<button class=\\\"ui-button special \"\n    + container.escapeExpression(((helper = (helper = helpers.buttonPayClasses || (depth0 != null ? depth0.buttonPayClasses : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"buttonPayClasses\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-action=\\\"submit\\\"><div>Continue to payment <i class=\\\"fas fa-angle-right\\\"><\/i><\/div><\/button>\\n\";\n},\"60\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"payment-method-input-ideal\\\" class=\\\"ui-radio\\\" name=\\\"payment-method\\\" value=\\\"ideal\\\" type=\\\"radio\\\"><label for=\\\"payment-method-input-ideal\\\">iDeal<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"62\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"payment-method-input-creditcard\\\" class=\\\"ui-radio\\\" name=\\\"payment-method\\\" value=\\\"creditcard\\\" type=\\\"radio\\\"><label for=\\\"payment-method-input-creditcard\\\">Creditcard<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"64\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"payment-method-input-paypal\\\" class=\\\"ui-radio\\\" name=\\\"payment-method\\\" value=\\\"paypal\\\" type=\\\"radio\\\"><label for=\\\"payment-method-input-paypal\\\">Paypal<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"66\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"payment-method-input-sofort\\\" class=\\\"ui-radio\\\" name=\\\"payment-method\\\" value=\\\"sofort\\\" type=\\\"radio\\\"><label for=\\\"payment-method-input-sofort\\\">Sofort<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"68\":function(container,depth0,helpers,partials,data) {\n    return \"\";\n},\"70\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-creditcard-mastercard\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-creditcard\\\" value=\\\"mastercard\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-creditcard-mastercard\\\">\\n\t\t\t\t\t<svg xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" width=\\\"32\\\" height=\\\"32\\\" viewBox=\\\"0 0 32 32\\\"><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><rect width=\\\"32\\\" height=\\\"32\\\" fill=\\\"#000\\\" rx=\\\"8\\\"><\/rect><g transform=\\\"translate(6 10)\\\"><circle cx=\\\"6\\\" cy=\\\"6\\\" r=\\\"6\\\" fill=\\\"#E7001A\\\"><\/circle><circle cx=\\\"14\\\" cy=\\\"6\\\" r=\\\"6\\\" fill=\\\"#F49B1C\\\"><\/circle><path fill=\\\"#E7001A\\\" d=\\\"M10.012 1.536A6.118 6.118 0 0 1 12 6.078a5.919 5.919 0 0 1-1.988 4.402A5.856 5.856 0 0 1 8 6.078c0-1.819.773-3.435 2.012-4.542z\\\" opacity=\\\".3\\\"><\/path><\/g><\/g><\/svg>\\n\t\t\t\t\t<span>Mastercard<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-creditcard-visa\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-creditcard\\\" value=\\\"visa\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-creditcard-visa\\\">\\n\t\t\t\t\t<svg xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" xmlns:xlink=\\\"http:\/\/www.w3.org\/1999\/xlink\\\" width=\\\"32\\\" height=\\\"32\\\" viewBox=\\\"0 0 32 32\\\"><defs><path id=\\\"visa-a\\\" d=\\\"M15.73 17.442c-.014-1.114.987-1.736 1.741-2.106.775-.379 1.035-.622 1.032-.961-.006-.52-.618-.749-1.19-.758-1-.015-1.581.272-2.043.489l-.36-1.695c.463-.215 1.322-.403 2.212-.411 2.088 0 3.455 1.038 3.463 2.647.008 2.042-2.807 2.155-2.788 3.068.007.276.27.572.844.647.285.038 1.07.067 1.961-.346l.35 1.64A5.3 5.3 0 0 1 19.09 20c-1.966 0-3.35-1.052-3.36-2.558m8.58 2.417a.906.906 0 0 1-.846-.568l-2.984-7.17h2.087l.416 1.155h2.55l.242-1.155h1.84l-1.606 7.738H24.31m.292-2.09l.603-2.906h-1.65l1.047 2.905M13.2 19.858l-1.646-7.737h1.99l1.644 7.738H13.2m-2.943 0l-2.07-5.267-.838 4.478c-.098.5-.486.789-.917.789H3.047L3 19.634c.695-.152 1.484-.397 1.962-.658.293-.16.377-.3.473-.68L7.02 12.12h2.102l3.223 7.738h-2.089\\\"><\/path><\/defs><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><rect width=\\\"32\\\" height=\\\"32\\\" fill=\\\"#1D18F5\\\" rx=\\\"8\\\"><\/rect><use fill=\\\"#FFF\\\" transform=\\\"matrix(1 0 0 -1 0 32)\\\" xlink:href=\\\"#visa-a\\\"><\/use><\/g><\/svg>\\n\t\t\t\t\t<span>Visa<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t\\n\";\n},\"72\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t<a href=\\\"https:\/\/www.buckaroo.nl\/\\\">Buckaroo<\/a>.\\n\";\n},\"74\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t<a href=\\\"https:\/\/www.mollie.com\/\\\">Mollie<\/a>.\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<div class=\\\"form donation-form\\\" data-frequency=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.defaultFrequency || (depth0 != null ? depth0.defaultFrequency : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"defaultFrequency\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\\n\t\t<div class=\\\"frequency-choice \"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.hideFrequencyChoice : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t<p>I want to \"\n    + container.escapeExpression(((helper = (helper = helpers.donateVerb || (depth0 != null ? depth0.donateVerb : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"donateVerb\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/p>\\n\\n\t\t\t<div class=\\\"frequency\\\">\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"frequency-input-single\\\" class=\\\"ui-radio\\\" name=\\\"frequency\\\" value=\\\"single\\\" type=\\\"radio\\\" \"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.defaultFrequency : depth0),\"single\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"><label for=\\\"frequency-input-single\\\">One time<\/label>\\n\t\t\t\t<\/div>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.monthly : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.quarterly : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.yearly : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\\n\t\t<\/div>\\n\\n\t\t<p>\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.amountLabel : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.program(13, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/p>\\n\t\t\\n\t\t<div class=\\\"amount\\\" data-frequency=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.defaultFrequency || (depth0 != null ? depth0.defaultFrequency : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"defaultFrequency\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\\n\t\t\t<div class=\\\"amount-frequency single\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.single : stack1)) != null ? stack1.desktop : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.single : stack1)) != null ? stack1.mobile : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.monthly : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(19, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.quarterly : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(24, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.amountPresets : depth0)) != null ? stack1.yearly : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(29, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t<div class=\\\"item amount-custom\\\">\\n\t\t\t\t<input id=\\\"amount-input-custom\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"custom\\\" type=\\\"radio\\\"><label for=\\\"amount-input-custom\\\"><span>Other<\/span><div class=\\\"selected-input\\\"> &euro; <input style=\\\"display: hidden;\\\" type=\\\"text\\\" name=\\\"amountCustom\\\" \/><\/div><\/label>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t\t\\n\t\t<!--\\n\t\t<p>\\n\t\t<div class=\\\"ui-checkbox\\\"><input id=\\\"cover-transaction-costs\\\" name=\\\"cover-transaction-costs\\\" type=\\\"checkbox\\\" \/><label for=\\\"cover-transaction-costs\\\"><span><span><i class=\\\"far fa-check\\\"><\/i><\/span><\/span>I would like to take care of the transaction fees (adds 1.2%)<\/label><\/div>\\n\t\t<\/p>-->\\n\t\t\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showDestinations : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(34, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\\n\t\t<div class=\\\"user-info non-anonymous\\\">\\n\t\t\t\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showNameInput : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(42, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\\n\t\t\t<div class=\\\"fieldset\\\">\\n\t\t\t\t\\n\t\t\t\t<div class=\\\"field\\\" data-field=\\\"email\\\">\\n\t\t\t\t\t<div class=\\\"label\\\">Email *<\/div>\\n\t\t\t\t\t<div class=\\\"input\\\"><input maxlength=\\\"100\\\" name=\\\"email\\\" value=\\\"\\\" type=\\\"text\\\"><div class=\\\"feedback left \\\"><\/div><\/div>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<!--<div class=\\\"field\\\" data-field=\\\"organization\\\">\\n\t\t\t\t\t<div class=\\\"label\\\">Organisation<\/div>\\n\t\t\t\t\t<div class=\\\"input\\\"><input placeholder=\\\" - Optional - \\\" maxlength=\\\"100\\\" name=\\\"organization\\\" value=\\\"\\\" type=\\\"text\\\"><div class=\\\"feedback left\\\"><\/div><\/div>\\n\t\t\t\t<\/div>-->\\n\\n\t\t\t\t\\n\t\t\t\t<!--<div class=\\\"field\\\" data-field=\\\"destination\\\">\\n\t\t\t\t\t<div class=\\\"label\\\">I want to help with<\/div>\\n\t\t\t\t\t<div class=\\\"input\\\">\\n\t\t\t\t\t\t<select name=\\\"destination\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.destinations : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(44, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\t\t<\/select>\\n\t\t\t\t\t\t<div class=\\\"feedback left\\\"><\/div><\/div>\\n\t\t\t\t<\/div>-->\\n\t\t\t\t\\n\t\t\t\t<div class=\\\"field\\\" data-field=\\\"comment\\\">\\n\t\t\t\t\t<div class=\\\"label\\\">Remarks<\/div>\\n\t\t\t\t\t<div class=\\\"input\\\">\\n\t\t\t\t\t\t<input placeholder=\\\" - Optional - \\\" type=\\\"text\\\" name=\\\"comment\\\" maxlength=\\\"300\\\" \/>\\n\t\t\t\t\t\t<div class=\\\"feedback left\\\"><\/div><\/div>\\n\t\t\t\t<\/div>\\n\t\t\t\t\\n\t\t\t<\/div>\\n\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.askNewsletter : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(46, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.askTerms : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(51, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\\n\t\t<\/div>\\n\t\t\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.paymentProvider : depth0),\"mollie\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(54, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\\n\t\t\\n\t\t<div class=\\\"actions\\\">
20076\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.selectPaymentMethod : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(56, data, 0),\"inverse\":container.program(58, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<\/div>\\n\t<\/div>\\n\t<div class=\\\"form payment-method-form\\\">\\n\t\t\\n\t\t<div class=\\\"choose-payment-method\\\">\\n\t\t\t<p>I would like to \"\n    + container.escapeExpression(((helper = (helper = helpers.donateVerb || (depth0 != null ? depth0.donateVerb : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"donateVerb\",\"hash\":{},\"data\":data}) : helper)))\n    + \" using<\/p>\\n\t\t\t<div class=\\\"payment-method\\\">\\n\"\n    + ((stack1 = (helpers.ifIn || (depth0 && depth0.ifIn) || helpers.helperMissing).call(depth0 != null ? depth0 : {},\"ideal\",(depth0 != null ? depth0.allowPaymentMethods : depth0),{\"name\":\"ifIn\",\"hash\":{},\"fn\":container.program(60, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\\n\"\n    + ((stack1 = (helpers.ifIn || (depth0 && depth0.ifIn) || helpers.helperMissing).call(depth0 != null ? depth0 : {},\"creditcard\",(depth0 != null ? depth0.allowPaymentMethods : depth0),{\"name\":\"ifIn\",\"hash\":{},\"fn\":container.program(62, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\\n\"\n    + ((stack1 = (helpers.ifIn || (depth0 && depth0.ifIn) || helpers.helperMissing).call(depth0 != null ? depth0 : {},\"paypal\",(depth0 != null ? depth0.allowPaymentMethods : depth0),{\"name\":\"ifIn\",\"hash\":{},\"fn\":container.program(64, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\\n\"\n    + ((stack1 = (helpers.ifIn || (depth0 && depth0.ifIn) || helpers.helperMissing).call(depth0 != null ? depth0 : {},\"sofort\",(depth0 != null ? depth0.allowPaymentMethods : depth0),{\"name\":\"ifIn\",\"hash\":{},\"fn\":container.program(66, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t<\/div>\\n\t\t\\n\t\t<div class=\\\"payment-method-choices\\\" data-payment-method=\\\"creditcard\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.paymentProvider : depth0),\"mollie\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(68, data, 0),\"inverse\":container.program(70, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<!--<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-creditcard-amex\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-creditcard\\\" value=\\\"amex\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-creditcard-amex\\\">\\n\t\t\t\t\t<svg xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" xmlns:xlink=\\\"http:\/\/www.w3.org\/1999\/xlink\\\" width=\\\"32\\\" height=\\\"32\\\" viewBox=\\\"0 0 32 32\\\"><defs><radialGradient id=\\\"amex-b\\\" cx=\\\"32.922%\\\" cy=\\\"32.8%\\\" r=\\\"66.895%\\\" fx=\\\"32.922%\\\" fy=\\\"32.8%\\\"><stop offset=\\\"0%\\\" stop-color=\\\"#34BBF2\\\"><\/stop><stop offset=\\\"100%\\\" stop-color=\\\"#004DCF\\\"><\/stop><\/radialGradient><rect id=\\\"amex-a\\\" width=\\\"32\\\" height=\\\"32\\\" rx=\\\"8\\\"><\/rect><\/defs><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><mask id=\\\"amex-c\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#amex-a\\\"><\/use><\/mask><use fill=\\\"url(#amex-b)\\\" xlink:href=\\\"#amex-a\\\"><\/use><use fill=\\\"#0095FF\\\" xlink:href=\\\"#amex-a\\\"><\/use><g fill=\\\"#FFF\\\" fill-rule=\\\"nonzero\\\" mask=\\\"url(#amex-c)\\\"><path d=\\\"M1.89 12.833l-.72-1.553-.6 1.553h1.32zm14.163-.717c-.083.117-.235.12-.36.12h-1.2v-.837h1.2c.12 0 .292.007.36.12a.23.23 0 0 1 .24.239c0 .207-.072.34-.24.358zm8.402.717l-.72-1.553-.6 1.553h1.32zM9.092 14.626h-.96v-3.107l-1.44 3.107h-.84L4.53 11.519v3.107h-2.04l-.36-.837H.21l-.36.837H-1.23l1.68-3.944h1.44l1.68 3.705v-3.705h1.561l1.2 2.63 1.2-2.63h1.56v3.944zm3.84 0h-3.12v-3.944h3.12v.837h-2.16v.717h2.16v.836h-2.16v.717h2.16v.837zm4.561-2.868c0 .615-.425.94-.72 1.075.256.041.435.18.48.24.175.25.198.426.24.836v.717h-.96v-.478c-.05-.257-.027-.598-.24-.837-.1-.09-.314-.12-.6-.12h-1.08v1.435h-.96v-3.944h2.16c.527 0 .887.013 1.2.24.3.125.48.383.48.836zm1.44 2.868h-.96v-3.944h.96v3.944zm11.283 0h-1.32l-1.8-2.988v2.988h-1.921l-.48-.837h-1.92l-.36.837
20076h-1.08c-.495 0-1.08-.102-1.441-.478-.306-.293-.48-.747-.48-1.434 0-.615.104-1.15.48-1.554.34-.332.823-.478 1.44-.478h.96v.837h-.96c-.29.008-.486.06-.72.239-.117.169-.228.483-.24.956.012.363.097.667.24.836.18.186.446.234.72.24h.36l1.44-3.108h1.32l1.681 3.705v-3.705h1.44l1.68 2.749v-2.749h.96v3.944zm-31.446.717H.45l.36-.837h.72l.36.837h3.241v-.717l.36.717h1.56l.36-.717v.717h7.922v-1.434h.12c.138-.002.17.008.12.239v1.195h4.2v-.359c.294.197.81.356 1.441.359h1.8l.36-.837h.84l.36.837h3.361v-.837l.48.837h2.64V9.846h-2.64v.597l-.36-.597h-2.76v.597l-.36-.597h-3.6c-.625 0-1.164.085-1.561.358v-.358h-2.52v.358c-.325-.28-.703-.358-1.08-.358H6.93l-.72 1.434-.6-1.434h-2.88v.597l-.36-.597h-2.4l-1.201 2.629v2.868zm34.125 2.176h-1.8c-.126 0-.242.006-.36.12-.081.01-.12.1-.12.238 0 .125.085.222.24.24.071.057.18.066.36.119h.48c.546-.027.897.058 1.08.239.07.055.093.087.12.12v-1.076zm0 2.51c-.231.368-.682.538-1.32.597h-1.8v-.956h1.8c.203.052.33.029.36 0 .112-.106.159-.195.12-.359.039-.058-.008-.149-.12-.239-.027-.024-.127-.052-.24 0-.946-.082-2.061-.024-2.04-1.314-.021-.527.346-1.129 1.32-1.076h1.92v-.836h-1.8c-.493 0-.879.126-1.2.358v-.358h-2.521c-.453 0-.942.102-1.2.358v-.358h-4.681v.358c-.314-.3-.94-.358-1.2-.358h-3.12v.358c-.269-.317-.92-.358-1.321-.358h-3.48l-.72.836-.721-.836H5.77v5.497h5.04l.841-.837.72.837h3.12v-1.315h.24c.464.029.95.012 1.321-.12v1.435h2.64v-1.434h.12c.137-.001.152.005.12.12v1.314h7.802c.498-.003 1.014-.128 1.32-.359v.359h2.4c.559-.003 1.06-.074 1.44-.24v-1.075zm-3.72-1.435c.14.142.24.382.24.837 0 .799-.539 1.195-1.561 1.195h-1.8v-.837h1.8c.23-.009.36-.033.48-.12.026-.048.073-.136.12-.238a1.137 1.137 0 0 0-.12-.24.57.57 0 0 0-.36-.119c-.92-.025-2.04.032-2.04-1.195 0-.593.365-1.195 1.32-1.195h1.92v.837h-1.68c-.203.003-.316.01-.36.12-.157.018-.196.113-.24.238.044.148.133.25.24.24.114.088.223.098.36.119h.6c.46.005.817.094 1.08.358zm-8.762-.478c-.08.114-.236.12-.36.12h-1.2v-.837h1.2c.124 0 .291.004.36.12.167.008.24.123.24.239 0 .203-.073.331-.24.358zm.6.717a.81.81 0 0 1 .48.24c.166.244.185.423.24.716v.837h-.96v-.478c-.049-.253-.026-.604-.24-.837-.102-.092-.315-.126-.72-.12h-.96v1.435h-.96v-3.944h2.16c.525 0 .876.021 1.2.24.29.126.48.372.48.836 0 .616-.425.937-.72 1.075zm1.32-2.15h3.12v.836h-2.16v.717h2.16v.836h-2.16v.717h2.16v.837h-3.12v-3.944zm-6.481 1.672h-1.2V17.4h1.2c.364 0 .6.132.6.478 0 .307-.225.478-.6.478zm-2.16 1.793l-1.44-1.554 1.44-1.553v3.107zM9.97 19.67h-2.4v-.717h2.16v-.837H7.57V17.4h2.4l1.08 1.076-1.08 1.195zm7.441-1.673c0 1.08-.821 1.306-1.68 1.314h-1.2v1.315h-1.8L11.53 19.31l-1.2 1.315H6.61v-3.944h3.84l1.08 1.315 1.2-1.315h3.12c.717 0 1.561.207 1.561 1.315z\\\"><\/path><\/g><\/g><\/svg>\\n\t\t\t\t\t<span>American Express<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>-->\\n\t\t<\/div>\\n\t\t\\n\t\t<div class=\\\"payment-method-choices\\\" data-payment-method=\\\"ideal\\\">\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-ABNANL2A\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"ABNANL2A\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-ABNANL2A\\\">\\n\t\t\t\t\t<svg width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 32 32\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" xmlns:xlink=\\\"http:\/\/www.w3.org\/1999\/xlink\\\"><defs><rect id=\\\"ABNANL2A-a\\\" x=\\\"0\\\" y=\\\"0\\\" width=\\\"32\\\" height=\\\"32\\\" rx=\\\"8\\\"><\/rect><\/defs><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><mask id=\\\"ABNANL2A-b\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#ABNANL2A-a\\\"><\/use><\/mask><use fill=\\\"#ABD3C3\\\" xlink:href=\\\"#ABNANL2A-a\\\"><\/use><g mask=\\\"url(#ABNANL2A-b)\\\"><path fill=\\\"#009586\\\" d=\\\"M10 8h13v11.314L16.697 26 10 19.314z\\\"><\/path><path fill=\\\"#FCBF00\\\" d=\\\"M17.313 12.91L23 19.454 17.312 26z\\\"><\/path><\/g><\/g><\/svg>\\n\t\t\t\t\t<span>ABN AMRO<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-ASNBNL21\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"ASNBNL21\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-ASNBNL21\\\">\\n\t\t\t\t\t<svg width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 32 32\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\"><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><rect fill=\\\"#D10600\\\" width=\\\"32\\\" height=\\\"32\\\" rx=\\\"8\\\"><\/rect><g fill=\\\"#FFF\\\"><path d=\\\"M6 11.186C6 7.55 9.011 5 12.506 5c4.602 0 6.227 4.132 6.227 9.23 0 .042-3.2 2.61-3.2 7.075 0 3.461 1.575 4.566 3.157 5.19l.093.346s-8.65 1.76-8.65-6.426c0-2.95 1.655-4.393 1.655-7.005 0-.84-.755-2.015-2.398-2.015-1.564 0-2.426 1.12-2.426 1.997l-.33.006C6.253 12.75 6 11.986 6 11.
20076186zM26.245 23.059s-.096-1.566-1.081-1.566c-.883 0-1.37.774-1.37.774s1.02.788 1.02 2.013c0 1.266-2.654 2.51-3.793 2.72a5.099 5.099 0 0 1-.412-1.965c0-2.778 1.921-5.368 5.029-5.368 2.3 0 .991 3.47.991 3.47l-.384-.078M22.43 15.124a.955.955 0 1 1-1.908 0 .955.955 0 1 1 1.909 0M25.178 11.764s.555-2.004-.564-4.014l-.342.132c.117 1.769-.44 3.04-.44 3.032-.5-.188-1.534-.113-1.534-.113s-.621-1.221-.611-2.926l-.338-.12c-.511.912-.856 2.276-.704 3.276.288 1.847.514 1.34 2.557 2.964 2.218 1.765 1.265 3.726 1.265 3.726l.527.112s1.093-2.068 1.093-3.59c0-1.523-.91-2.48-.91-2.48\\\"><\/path><\/g><\/g><\/svg>\\n\t\t\t\t\t<span>ASN Bank<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-BUNQNL2A\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"BUNQNL2A\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-BUNQNL2A\\\">\\n\t\t\t\t\t<svg width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 32 32\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" xmlns:xlink=\\\"http:\/\/www.w3.org\/1999\/xlink\\\"><defs><rect id=\\\"BUNQNL2A-a\\\" x=\\\"0\\\" y=\\\"0\\\" width=\\\"32\\\" height=\\\"32\\\" rx=\\\"8\\\"><\/rect><\/defs><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><mask id=\\\"BUNQNL2A-b\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#BUNQNL2A-a\\\"><\/use><\/mask><use fill=\\\"#F2F2F2\\\" xlink:href=\\\"#BUNQNL2A-a\\\"><\/use><g mask=\\\"url(#BUNQNL2A-b)\\\"><path fill=\\\"#008F42\\\" d=\\\"M0-2h3v198H0z\\\"><\/path><path fill=\\\"#00AB47\\\" d=\\\"M3-2h3v198H3z\\\"><\/path><path fill=\\\"#52C638\\\" d=\\\"M6-2h3v198H6z\\\"><\/path><path fill=\\\"#96C65A\\\" d=\\\"M9-2h3v198H9z\\\"><\/path><path fill=\\\"#00C4B5\\\" d=\\\"M12-2h3v198h-3z\\\"><\/path><path fill=\\\"#00A2DC\\\" d=\\\"M15-2h2v198h-2z\\\"><\/path><path fill=\\\"#0A6CB8\\\" d=\\\"M17-2h3v198h-3z\\\"><\/path><path fill=\\\"#46597D\\\" d=\\\"M20-2h3v198h-3z\\\"><\/path><path fill=\\\"#FF001A\\\" d=\\\"M23-2h3v198h-3z\\\"><\/path><path fill=\\\"#FF6B00\\\" d=\\\"M26-2h3v198h-3z\\\"><\/path><path fill=\\\"#F7C000\\\" d=\\\"M29-2h3v198h-3z\\\"><\/path><\/g><g mask=\\\"url(#BUNQNL2A-b)\\\" fill-rule=\\\"nonzero\\\" fill=\\\"#FFF\\\"><path d=\\\"M14 14h1v2.692C15 17.966 13.88 19 12.5 19S10 17.966 10 16.692V14h1v2.692c0 .779.733 1.41 1.5 1.41s1.5-.631 1.5-1.41V14zM20 19h1v-2.692C21 15.034 19.88 14 18.5 14S16 15.034 16 16.308V19h1v-2.692c0-.779.733-1.41 1.5-1.41s1.5.631 1.5 1.41V19zM4 18.857H3v-2.571V11h1v2.858c.502-.36 1.325-.572 2-.572 1.656 0 3 1.28 3 2.857C9 17.72 7.656 19 6 19c-.717 0-1.484-.24-2-.64v.497zm1.925-4.571a1.867 1.867 0 0 0-1.875 1.857c0 1.025.84 1.857 1.875 1.857A1.867 1.867 0 0 0 7.8 16.143c0-1.025-.84-1.857-1.875-1.857zM27 13.443h1v2.571.143L27.996 21H27v-2.558c-.502.36-1.325.572-2 .572-1.656 0-3-1.28-3-2.857 0-1.577 1.344-2.857 3-2.857.717 0 1.484.24 2 .64v-.497zm-1.925 4.571a1.867 1.867 0 0 0 1.875-1.857c0-1.025-.84-1.857-1.875-1.857a1.867 1.867 0 0 0-1.875 1.857c0 1.025.84 1.857 1.875 1.857z\\\"><\/path><\/g><\/g><\/svg>\\n\t\t\t\t\t<span>bunq<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-HANDNL2A\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"HANDNL2A\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-HANDNL2A\\\">\\n\t\t\t\t\t<svg width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 32 32\\\" fill=\\\"none\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\"><mask id=\\\"HANDNL2A-a\\\" maskUnits=\\\"userSpaceOnUse\\\" x=\\\"0\\\" y=\\\"0\\\" width=\\\"32\\\" height=\\\"32\\\"><rect width=\\\"32\\\" height=\\\"32\\\" rx=\\\"8\\\" fill=\\\"url(#paint0_linear)\\\"><\/rect><\/mask><g mask=\\\"url(#HANDNL2A-a)\\\"><path fill=\\\"url(#paint1_linear)\\\" d=\\\"M0 0h32v32H0z\\\"><\/path><path d=\\\"M9.978 7v6.96h7.328V7h3.999v18.115h-4V17.29H9.979v7.825H6V7h3.978zM31.508 19.02c-.237.086-.475.129-.735.194-.259.043-.54.086-.821.13-.281.043-.584.086-.865.13-.26.042-.54.107-.8.194-.259.086-.497.194-.691.346a1.906 1.906 0 0 0-.476.54c-.108.216-.173.497-.173.843 0 .324.065.584.173.822.108.216.281.389.476.518.194.13.432.217.713.26.26.043.54.086.843.086.713 0 1.254-.108 1.643-.346.39-.237.67-.518.865-.843.194-.324.302-.67.345-.994.044-.346.065-.605.065-.822v-1.34c-.13.087-.324.195-.562.28
200761zm-7.09-5.102a4.036 4.036 0 0 1 1.427-1.34 6.162 6.162 0 0 1 1.945-.736 10.477 10.477 0 0 1 2.162-.216c.648 0 1.319.043 2.01.13.67.086 1.297.28 1.86.54.561.281 1.015.649 1.361 1.124.346.476.54 1.124.54 1.924v8.539c.022.67.022.692.152 1.21h-3.459c-.065-.28-.065-.302-.108-.518-.021-.216-.021-.519-.043-.735-.584.584-1.254 1.016-2.032 1.254a8.116 8.116 0 0 1-2.378.345c-.627 0-1.21-.086-1.751-.237a4.029 4.029 0 0 1-1.427-.714c-.41-.324-.713-.735-.95-1.21-.239-.497-.347-1.081-.347-1.751 0-.735.13-1.362.39-1.838.259-.475.605-.864 1.015-1.167.411-.281.887-.497 1.427-.648.54-.152 1.06-.26 1.6-.346.54-.087 1.08-.152 1.6-.195.518-.043.994-.13 1.405-.238.41-.108.735-.26.972-.454.238-.194.346-.475.325-.843 0-.389-.065-.691-.195-.93a1.508 1.508 0 0 0-.497-.54 1.981 1.981 0 0 0-.735-.26 5.888 5.888 0 0 0-.886-.064c-.714 0-1.254.151-1.665.454-.41.303-.648.821-.713 1.535h-3.654c.065-.8.281-1.513.649-2.075z\\\" fill=\\\"#fff\\\"><\/path><\/g><defs><linearGradient id=\\\"paint0_linear\\\" x1=\\\"0\\\" y1=\\\"32.111\\\" x2=\\\"32.112\\\" y2=\\\"-.647\\\" gradientUnits=\\\"userSpaceOnUse\\\"><stop stop-color=\\\"#0063A5\\\"><\/stop><stop offset=\\\"1\\\" stop-color=\\\"#008DC7\\\"><\/stop><\/linearGradient><linearGradient id=\\\"paint1_linear\\\" x1=\\\"0\\\" y1=\\\"32.111\\\" x2=\\\"32.112\\\" y2=\\\"-.647\\\" gradientUnits=\\\"userSpaceOnUse\\\"><stop stop-color=\\\"#0063A5\\\"><\/stop><stop offset=\\\"1\\\" stop-color=\\\"#008DC7\\\"><\/stop><\/linearGradient><\/defs><\/svg>\\n\t\t\t\t\t<span>Handelsbanken<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-INGBNL2A\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"INGBNL2A\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-INGBNL2A\\\">\\n\t\t\t\t\t<svg width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 32 32\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" xmlns:xlink=\\\"http:\/\/www.w3.org\/1999\/xlink\\\"><defs><rect id=\\\"INGBNL2A-a\\\" x=\\\"0\\\" y=\\\"0\\\" width=\\\"32\\\" height=\\\"32\\\" rx=\\\"8\\\"><\/rect><\/defs><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><mask id=\\\"INGBNL2A-b\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#INGBNL2A-a\\\"><\/use><\/mask><use fill=\\\"#FF5300\\\" xlink:href=\\\"#INGBNL2A-a\\\"><\/use><g mask=\\\"url(#INGBNL2A-b)\\\" fill=\\\"#FFF\\\"><path d=\\\"M10.664 50.395c-.875 0-.626 1.434-.875 2.085-.125.13-.254.39-.125.52h1.872s.125-1.171.125-1.431c-.125-.262-.502-.914-.997-1.174zm2.35-10.33c-.647-.506-1.683-1.013-3.237-1.52-.389-.127-1.295 0-1.685 0-1.038 1.773-1.422 3.422-2.2 5.323-.133.382-.391 1.143-.391 1.143-.644-.38-1.295-.632-1.945-.632-1.038 0-1.814.38-2.2 1.393-.386-.127-.905-.38-1.553-.255-.904.128-1.685.636-2.075 1.396-.386.506-.516 1.014-.386 1.521-.646.254-1.04.889-1.297 1.395-.257 1.013.651 2.79 1.039 3.171h1.294c-.26-1.141-.778-1.649-.39-2.79.262-.634 1.166-.887 1.427-1.016 0-.506-.65-.886-.516-1.396.255-.63 1.032-.63 1.81-.506-.13.763-.258 1.776-.388 2.79C.191 51.224.84 53 .84 53h1.423c-.13-.38-.259-.762-.259-1.141-.126-.382-.126-.634-.126-1.017.126-.506.126-1.013.126-1.39 1.296-.637.906.25 1.164.503 0 0 .522-1.14-.127-1.647-.13-.126-.908 0-.908-.126 0-.127.13-.508.259-.89.262-.508.39-.632.649-1.013.127-.126.515-.126 1.037 0 .128 0 .78.126 1.165.253-.13.38-.648 1.142-.774 1.523-.518 1.52-.518 3.296-.391 4.945h1.423c0-.89-.128-1.904 0-2.79.258-1.142.645-1.269.78-1.269.254 0 .515.253.649.51.255 1.265-.52 2.408-.52 3.549h1.036s.39-.127.518-.507c.258-.763.776-1.525.908-2.283.127-.634-.132-1.142-.522-1.902-.386-.51-.774-.89-1.68-1.524-.26-.505 0-1.139 0-1.139 0 .127.515-.128.776-.128 1.036.255 1.294.255 1.812.508.389.128.905.38 1.295.635.388.253.778 1.014 1.166 1.9 0 0 .259-1.647.259-2.155-.515-.505-1.037-1.013-1.815-1.394-.65-.508-2.07-.887-2.717-1.143 0 0 .258-.38.258-.632.778-.129 1.684-.129 2.073 0 1.296.381 2.849 1.143 3.498 1.649 0 0 .257-.506.257-.761 0 0-1.813-1.141-1.684-1.523-.517-.38-.907-.76-1.423-.888-.778-.124-2.333-.25-2.333-.25s.39-.507.78-.89H9.91c.516 0 1.81.383 2.586.763 1.169.505 1.813.886 1.945 1.139.126-.382.258-.886.39-1.14-1.426-.507-1.298-1.017-1.816-1.27zM10.1 36.577c.127-.388 0-.646.127-1.036 0-.26 0-.907.129-1.295-.256-.131-.771.13-1.15.13-.382 0-1.274 0-1.274.129.127.26.127.518.253.777.127.259.254.517.254 1.168 0 .388.13.778 0 1.294 0 0 1.661-.906 1.661-1.167zm-1.599-3.06c.259-.381 1.031-1.142 1.296-1.397-.265-.253-.39-.634-.52-.887-.517 0-2.463.759-2.463.759.39.635.65 1.272.908 2.031.26-.126.518-.253.779-.506zm4.886.65h-.767s-.254.994-.254 1.74c-.127.374-.258.622-.258.746-.254.497-.38.62-.633 1.243.379.124.764-.124 1.017-.124.255-.124.638-.25.769-.372.126-.126.509-.997.637-1.243v-.87c-.128-.25 0-.747 0-1.12-.128-.25-.385-.125-.51 0zm7.
20076037 9.345c-.13-.13-.13-.393-.266-.65-.26-.785-.128-1.177-.26-1.955h-1.053c-.265.128-.397 0-.659.128 0 .522.132.912.526 1.564.393.783 1.712.913 1.712.913zM7.036 31.419s.402-.25.402-.507c.671-.758 1.476-1.393 1.613-1.515-.272-.637-.405-.763-.81-1.141-.132.126-.803.504-.94.759-.265.126-.535.252-.674.382 0 .252.14.377.27.63 0 .253.14.885.14 1.392zm10.162 4.404c0-.125-.405-.125-.67-.125-.272 0-.535.125-.81.125-.267.373-.4.744-.534 1.24-.133.373-.403.62-.54.867 0 0 1.212-.247 1.48-.247.403-.247.669-.373.939-.869.135-.372.27-.494.135-.99zm16.39 10.088c-.258-.128-2.739-1.266-3.13-1.266-.783.126-2.085.126-2.873.507-.127-.381-.256-1.014 0-1.394.13-.255 1.437-.255 1.827-.255 1.437.129 2.219.38 2.61.38.392.38.785.38.914.38 0 0-.129-.76-.262-1.012-.52-.253-1.043-.379-1.436-.505-.651-.255-.91-.383-1.954-.507-.389 0-.389.124-1.172.124 0-.124.129-.253.26-.379.257-.378.523-.63.783-.885h2.083c.526.127.784.255 1.436.507.39 0 0-.63 0-1.014a1.75 1.75 0 0 0-.52-.38 6.398 6.398 0 0 1-1.438-.508c-.388-.124-1.169-.377-1.82-.251-.655.251-.655.127-1.182.38-.648.888-1.04 1.898-1.43 2.913 0 .252-.653 1.77-.653 2.025 0 .126-.127.38-.127.38-.525-.128-2.872-.506-3.523.125-.258.253-.522.507-.916 1.266-.52-.378-.913-.506-1.433-.506-.654 0-1.434.38-1.825 1.01 0 .13-1.044 2.028-.915 3.8.131 1.015.524 1.393 1.044 2.154h1.438c-.131-.506-.396-1.14-.655-1.9-.13-.633.131-1.772.259-2.785 0 0 .396-.252.783-.38.264-.253.391-.129.783-.129.134 0 .134.129.134.129-.526.507-.526 1.013-.653 1.772 0 .379.52 2.28 1.04 3.293h1.047s-.262-2.533-.13-2.786c0-.507.13-.886.26-1.266.26.126.519.126.78.252.391.257.391.507.391.886 0 .633 0 .76-.127 1.141v.634c0 .633.127 1.139.127 1.139h1.048c0-1.14.125-1.013.258-1.646.13-.508 0-.759.13-1.14a.93.93 0 0 1 .265-.633c.39-.253.65-.253 1.17-.124 0 .376 0 .757-.126 1.138-.136.632-.265 1.266-.527 1.899 0 .126-.127.379-.26.506h1.566s.258-.506.392-1.14c.385.38.912.127 1.17.127.396-.126.656-.507.913-.76-.517-.381-1.698-.256-1.698-.76-.256-.886 0-1.01 0-1.52 0-.758-.777-1.012-1.556-1.14-.265-.125-.787-.125-1.044-.125-.264.124-.528.507-.782.507 0 0-.526-.383-.919-.507-.26 0-1.044-.255-1.044-.255.134-.25.263-.505.392-.633.129-.124.525-.505.652-.505.264-.125.653 0 .919.126.647.127 1.172.255 1.3.255.132 0 .526.252.526.252.384-.252.384-.507.646-.507.781-.251 1.045-.38 1.825-.38.655 0 1.179 1.142 1.566 1.52.133.251 1.043 1.393 1.569 2.405.258-.127.39-.38.65-.38 0-.252-.13-1.265-.26-1.391-.39-1.142-1.172-1.395-1.172-1.647.256 0 .782.252 1.04.252.262.128.652.253 1.041.507.133.126.395.255.526.381.129.507.129.886.39 1.392 0 .126 0 .254.13.383.392-.762.783-.89 1.044-1.522-.26-1.14-.915-1.646-1.564-2.024zm-1.073 5.759c-.265.532-.532 1.062-.532 1.33h1.46c.4-.531.532-1.063.265-1.86-.395.132-1.193-.27-1.193.53zM18.523 39.099c.383-.126.635-.38 1.019-.507.251-.126.509-2.15.509-2.15s-.763.124-.893.252c-.128 0-.635 0-.888.253 0 .38 0 .758-.125 1.265-.256.38-.89.633-.89 1.265 0 0 .508.128.634.128.256-.128.508-.38.634-.506zM5.88 24.484v.626c0 .252.136 1.632.136 2.007.132.378.132.753.261 1.13.139.25.27.5.27.753 0 0 .268-.123.397-.377.4-.376.536-.753.8-1.253-.133-.878-.4-1.632-.4-1.883 0-1.003.136-1.255.267-1.882-.53.249-1.195.627-1.73.879zm17.46 17.911c.125 0 .252-.255.252-.255-.127-.513-.252-1.151-.373-1.663 0 0-.378-.258-.748-.258-.249 0-.497-.127-.743 0 .121.387.121.644.246 1.027.37.51.867.765 1.366 1.15zM11.785 28.76c-.123-.251-.496-.377-.743-.503-.25 0-.5.503-.5 1.009 0 .251.127 1.137.25 1.515 0 .126.25.254.497.381.373.25.744.376 1.118.63 0 0-.374-1.135-.497-1.767-.125-.378.123-.885-.125-1.265zm2.9 3.962c.131-.518.518-.776.518-1.683 0 0-.127-.648-.255-.908-.132-.258-.264-.516-.649-.775-.13 0-.386-.262-.514-.133 0 0-.132 1.038-.26 1.168.26.388.517.648.643 1.036.131.39.259.906.516 1.295zm3.512 2.046c.395-.385 0-1.025 0-1.408-.135-.385 0-.77-.135-1.154a.735.735 0 0 0-.664-.383c-.266 0-.929-.385-.929-.13-.664 0-.131.64-.131 1.025 0 .512 1.323 1.793 1.323 1.793.27.128.27 0 .536.257zM5.586 23.977c.266-.388 1.06-1.163 1.453-1.683.27-.257.8-.903 2.12-1.549.132-.517.265-.904.265-1.42-1.324.387-2.25.647-2.511.903-.663.388-.93.648-1.591 1.037 0 .772 0 .772.131 1.16l.133 1.552zM25.83 38.3c-.402-.247-1.068-.991-1.463-1.363
20076-.271-.248-.14-.619-.405-.868-.264 0-.533 0-.798.123-.401 0-.665 0-1.063.126.131.246.131.495.398.619.531.495.531.621 1.064 1.363.135.25.804.373 1.333.373.27 0 .798-.247.934-.373zm-5.037-7.068c-.54.123-1.615.247-1.615.62-.135.37 0 .742 0 .992.138.247.138.494.138.867 0 .247-.138.497 0 .87.135-.25.805-.497.936-.746.271-.371.541-.618.674-.991.135-.372 0-.992-.133-1.612zm1.597-.115c-.398.256-.662.384-.662.64 0 .514.13 1.026.13 1.284 0 .386 0 .642.134.77.398.128.534.128 1.067.384 0 .13.533.385.533.385s-.264-1.153-.4-1.669V30.86c-.534.128-.666.258-.802.258zM7.277 19.074c.126-.125 1.534-1.12 1.658-1.245.256-.249.385-.124.507-.373 0-.748.261-.748.133-.995-.133-.252-1.15 0-1.406 0-.637.122-1.788.494-1.788.745-.127.374-.127 1.244-.127 1.372.127.371.127.747.251 1.12.39-.373.512-.497.772-.624zm27.937 22.584c-.123-.125-.37-.252-.62-.379v.507c0 .508.12.637.12.893 0 .254.377 2.037.377 2.544.62.13.62.64.994.893 0 0-.25-1.527-.25-3.437 0-.13-.37-.893-.62-1.021zm-7.728-4.719c.515.37 1.542.247 2.446.124-.519-.373-.645-.623-.904-.869-.387-.25-.64-.373-1.156-.868h-1.669c.254.619.38.992 1.283 1.613zm-5.053-8.25c.263-.248.522-.742.522-.867.265-.495.265-1.116.265-1.613-1.045-.622-2.354-.744-3.662-.744-1.179 0-2.487.122-3.795.993.133.497.26.869.525 1.364.13 0 .26.25.388.25.263-.25.527-.622.915-.745v.495c0 .372 0 .62.136.995 0 .369.392.369.913.369.522 0 .657-.868.657-.992 0 0 .131.495.912.868 0 0 .916 0 .916-.123.133-.621.266-.745.133-1.241 0 0 .786.496 1.175.991zm4.143 4.832c-.533-.773-.666-1.544-.666-1.673-.266-.259.265-1.157-.402-1.157-.263-.133-1.065-.389-1.065-.389-.139.389-.139 1.16 0 1.546 0 .386.663 1.546.932 1.673.133.13.8.13.938.13.13-.13.263-.13.263-.13zM6.514 16.72c.265-.376.265-.376.529-.632.532-.378.798-.632 1.456-1.137.131-.254.264-.126.66-.378.132-.125.265-.253.265-.38 0-.251-.133-.505-.265-.755-.133-.254-.396-.886-.396-1.014 0-1.008.135-1.26.263-2.146-.527-.126-1.185-.126-1.451.38-.264.38-.264.758-.264 1.14 0 .626.131 1.134.264 1.89-.532.382-.796.632-1.32.885.13.757.259 2.147.259 2.147zm26.215 18.446c-.256-.257-.51-.513-.895-.771-.516-.129-.768-.387-1.03-.9-.126-.258-.253-.516-.511-.775-.252 0-.38.13-.637.259-.258.258-.773.258-1.029.643.127.257.256.516.513.773.131.128.258.387.772.642.893.514 1.154.642 1.154.642.768.13 1.663-.513 1.663-.513zm-6.34-5.609s.126.641.384 1.28c.13.257.384.512.516.512.252.127.77.255 1.152.255v-.255c-.382-.385-.9-1.278-.9-1.535-.252-.125-.252-.125-.637-.125-.131-.132-.39-.132-.514-.132zm11.682 9.116c-.12.373-.495.62-.495 1.117 0 0 .622.618.747.993.123.248 0 1.364.123 1.611.372-.373.622-.496.622-.99-.127-.124-.25-1.12-.374-1.862 0-.248-.371-.62-.623-.869zm10.365 8.93c-.642 0-1.407.753-1.916 3.136-.128.88-.256 1.635-.128 2.134l1.146.126c.256-.376.256-1.004.513-1.506 0-.25.258-.25.51-.25.257.124.77.752 1.022 1.002.128-.25.383-.752.383-1.13 0-.127-.383-.376-.51-.376-.381-.25-.638-.5-1.147-.5-.13-.503.635-1.13.635-1.13.894 0 1.79 1.002 1.79 1.002.254-.125.38-.5.639-.75-.768-1.382-2.172-1.757-2.937-1.757zm-6.758-6.734c-.127-.253-.251-.632-.373-.883 0-.126 0-.377-.126-.754 0 0-.87.628-.993.754.496.63.25 1.01.37 1.513 0 .249.5.375.623.754 0 .124-.244 1.258-.244 1.258.743-1.007.743-2.265.743-2.642zm10.594 11.1c-.128.389-.262.644-.526.9.133.13.398.13.526.13h1.323c.124-.13.124-.515.258-.774 0-.256.13-.515.13-.9h-.791a.99.99 0 0 0-.92.644zM34.501 33.337h.643c.26 0 .26-.493 0-.493-.903-.25-1.674-.495-2.19-1.24-.127.126-.902.37-1.157.62 0 0 .255.62.899 1.238.384.37 1.162.124 1.805-.125zm-5.687-4.198c.388.514.773.896 1.157 1.279.125.256.51.256.764.256h1.282c.385-.13.64-.13.898-.385-.513-.254-1.151-.511-1.667-.768-.513-.254-.895-.51-1.277-.893-.26 0-.384.127-.517.127-.252.132-.383.257-.64.384zm-13.61-6.16s.513-.119.902-.119c.26 0 .518 0 .775.119-.131.118-.647.354-.647.354-.253.118-.385.235-.774.354-.128-.236-.257-.708-.257-.708zm-.084-2.709c.255-.377.773-.629 1.156-.755.512-.125.38-1.134.38-1.26.132-.254 0-.631 0-.885-.253.128-.253 0-.763.128-.518 0-.773-.253-1.026-.507-.262-.25-.9-.756-1.155-1.257.637-.13 1.155-.13 1.794-.13h1.667c.38.13.64.382.64.631 0 .126-.126.884-.126 1.01-.133.756-.133 1.01-.258 2.145v.377c-.129.254-.641.38-.897.63-.129.378-.129.632-.515.757-.386.128-.642.505-.897.379-.384-.25-.253-.884 0-1.263zm-2.113-6.526c-.266-.245-.797-.618-1.062-1.115-.393-.496-.264-.99-.264-1.
20076116.264-.745 1.191-.994 1.725-1.118.262 0 .528 0 .924.25.53.247.797.247 1.06 1.115 0 .128 0 .247-.132.247 0 0-.797.496-1.062.748-.66.37-.79.99-1.189.99zm3.768-.069c.384-.263.762-.523 1.02-.523.257-.13.764-.263.764 0 0 .523-.381.784-.764 1.306-.258.39-.382.133-1.02.133h-.64c0-.392.258-.524.64-.916zm5.345-.616c.249 0 2.398.486 1.01 1.091-.257.244-.885.121-1.519.121 0-.24 0-.726-.25-.726-.257-.244-.633-.244-.633-.486-.51-.486.758-.12 1.392 0zm2.59-2.42c.4-.382.937-.509 1.466-.382.666.126.798.253 1.065.508.4.508.269 1.523.132 2.156-.132.382-.531.637-.93.637-.667-.761-1.333-1.27-2.264-1.526-.134-.506.27-1.014.53-1.394zm.858 5.352c-.131.253-.396.381-.658.513-.135 0-.261.253-.261.38-.268.384-.66.511-1.186.511-.265 0-.79 0-1.054-.51 0 0 .13 1.535.13 1.917 0 .128.134.128.134.128.525.128.657.64.919.896 0 0 .132.127.266.127.523.383 1.71.895 1.184.895 0 .257-.393.896-.523.896-.4-.381-1.056-.639-1.586-.896-.13-.255-.26-.512-.395-.765-.26-.257-.391-.257-.788-.512 0-.894-.13-.894-.13-1.79 0-.128-.264-1.537-.264-1.537 0-.127.394-.508.79-.64 0 0 2.503 0 3.685.132 0 0-.129.255-.263.255zm-1.545 7.8c-.517-.135-.902-.54-1.548-.54 0-.403 0-.403.131-.54.775-.135 1.162.137 1.547.272 0 .135-.13.808-.13.808zm-8.43 1.817c.39 0 .779-.379 1.167-.508.774-.255 1.425-.509 2.199-.636.263-.131.263-.384.263-.64.13-.253.13-.253.13-.635 0-.127-.52-.254-.78-.767-.258-.383 0-.765-.13-.765-.385.254-.908.509-1.034 0-.13-.38-.13-.893.26-1.02a5.475 5.475 0 0 1 4.016 0c.257 0 .387.256.387.51.128.255 0 .51-.26.764-.389.128-.78-.381-.78 0 0 .382-.257.895-.906 1.151-.126.127 0 .509.133.891 0 .127 0 .38.128.38.519.13 1.298.258 1.685.512.515.255 1.421 1.018 1.553.893.387-.255.515-.638.778-.893 1.423.638 2.587 1.018 4.403 2.17.258 0 .258-.511.258-.768-.65-.384-2.595-1.402-2.85-1.53-.517-.126-.775-.384-1.296-.51V23.19c.908.255 2.715.382 4.535 1.402.126-.383.389-.638.258-.767-2.078-1.018-3.623-1.402-4.921-1.402 0-.129-.263-.256 0-.383.388-.255.517-.382.65-.509.386-.51.648-1.02.774-1.53.387-.764.776-.51 1.037-2.168-.39 0-.522.254-.908.384.126-.384.258-.766.258-1.149.128-.766.389-1.275.389-2.169.39-.13 1.038-.51 1.166-1.018 0-.13 0-.511.131-1.022 0-.764.126-1.402-.131-1.912 0-.127-.905-1.402-1.555-1.784-.904-.383-1.294-.254-1.942-.129-.777 0-1.815.765-1.815 2.17-.772 0-2.329.126-3.235.891-.776-.383-1.423-.508-2.074-.638h-1.162c-.128-.51-.39-1.021-.906-1.402-.646-.381-1.427-.892-2.333-.892-.389 0-.775-.129-1.164.13-.389.252-1.036.506-1.165 1.016-.26.638-.518 1.148-.518 1.786 0 .64.39 1.148.779 1.786.125.256.257.256.515.381.13 0 .65.257.778.383.128.125-.128.51-.128 1.277 0 .636 0 .636.128 1.146 0 .51.128 1.02.258 1.4-.386 0-.647-.38-.906-.124 0 .256.259.893.52 1.402.646.637 1.292 1.275 1.683 2.04 0 .126 0 .38.126.38-.906.128-1.81.128-2.717.386-.778.255-1.684.638-2.458 1.02 0 .51.127.893.127.893.13 0 1.295-.64 2.33-.893 1.684-.509 2.592-.382 2.592-.382.126.255.257.635.126.764-1.553.638-3.106 1.403-4.535 2.294.134.257 0 .638.264.893 1.297-.765 3.108-1.657 4.402-2.167.518-.128.518 0 .779 0 .128.127.385.635.643.635zm24.78 11.278s-.248-.495-.248-.616c-.123-.248-.246-.62-.62-.742 0-.123-.126.494-.249.742-.127.246-.127.12-.375.616.248.369.375.615.623.985 0 .123.375.617.375.617s.494-.987.494-1.233v-.369zm16.522 14.722h-.64c-.256-.128-.384-.128-.51 0-.386.379-.386 1.012-.643 1.392h1.538c.255-.256.513-.38.513-.889 0-.124 0-.379-.258-.503zm-18.014-17.46c0-1.118-.27-1.118-.813-1.613 0 0-.409.745-.678 1.116.542.496.678 1.116.678 1.116.543-.496.543-.372.813-.62zm5.034 4.48c0-.379-.132-.756-.39-1.01-.134-.377-.264-.88-.264-1.134-.136-.25-.657-1.009-.92-1.386-.26-.25-.26-.881-.393-1.26l-1.575.25c.79 1.01 1.448 2.018 1.835 3.028.134.379 1.317 4.163 1.317 4.163.39-.128-.134-2.02 0-2.145.127-.252.127-.38.39-.505zm-9.79-10.127c-.131-.248-.397-.746-.53-.87-.13-.249-.265-.497-.4-.623-.13-.122-.659 0-.922 0-.266 0-.397 0-.663.126.266.248.528 1.119.663 1.119.131.248.131.372.396.5.66.123 1.19 0 1.853.247.26-.375-.266-.375-.397-.499zm3.451 2.882s-1.584-.888-1.85-1.267c-.395 0-.395 0-.791.379-.268 0-.396.13-.528.38.397.258.528.382.924.635.134.126.264.126.66 0h1.06c.259 0 .525.126.525-.127zM59.501 50.21s-.135.395-.27.654c-.268.657-.4.919-.4 1.311.4.268.535.133 1.074.133.268 0 .536.135.67.135.269-.135 0-.397 0-.527-.134 0-.67-1.183-1.074-1.706zM45.685 39.233c.534-.382.669-1.15.804-1.533.135-.384-.135-1.149-.27-1.403-.401 0-.666-.257-.94-.257-.268 0-.4-.639-.804-.512.135.257.403 1.535.536 1.788.137.13.674 1.023.674 1.917zm9.976 6.976c0-.126-.411-.379-.542-.379 0-.128-.144-.636-.28-.761-.27-.129-.27-.255-.544-.255 0 .126 0 .255-.137.508 0 .253-.275.38-.136.633.136.254.273.254.547.38.135.127.55 1.143.68 1.27.138-.127.138-.89.412-1.396zM32.926 25.585c.396 0 .657.252.921.252 0-.376-.134-.627-.264-1.007-.132-.632-.395-1.012-.529-1.388 0-.378 0-.632-.128-.884-.13 0-.264 0-.394-.128-.394 0-.922-.128-.922-.128 0 .382.134 1.012.134 1.39 0 .126.525 1.264.656 1.39a.99.99 0 0 0 .526.503zm12.48 8.382c-.129-.39-.52-.522-.782-.781 0 0-1.702-.651-1.967-.651-.262.129.657.65.786.91.524.522 1.834 1.695 1.834 1.695l.13-1.173zM29.37 18.023c-.13.126-.264.38-.264.504-.263.38-.652.632-.395 1.012.132.505.132 1.009.529 1.389.394.38.914.251 1.438.63 0 0-.394-1.641-.651-2.399-.132-.502-.393-.756-.657-1.136zm24.83 9.553c-1.686-1.65-3.505-2.669-5.32-2.669-1.555 0-2.725 1.142-2.725 2.289 0 4.576 1.82 7.5 2.986 10.04.387.636.516 1.145.516 1.781.13 1.653-1.294 4.703-2.203 6.356-.129-.128-.78-.253-1.3-.253-1.296 0-1.815.887-2.076 1.649-.389 0-.645-.254-1.04-.254-1.554-.126-2.852 1.27-2.852 2.798 0 1.65.387 2.543 1.039 3.687h1.298c-.132-.381-.519-2.29-.65-2.797-.126-.76.131-1.272.518-1.653.52-.765 1.816-.507 1.816-.507-.388.635-.906 1.65-.906 2.667.132.637.258 1.657.65 2.29h1.039c.255-.764 0-1.398 0-2.037 0-.378 0-.76.126-1.142 0-.254.65.509.65.509s.519-.636.519-1.145c0-.38-.776-.254-.904-.635-.136-.38.256-1.272.256-1.272.778-.51 1.425-.38 1.688-.38.386 0 .515.124 1.038.124.386 0 .517-.76.517-1.14.128.125.521.38.648.38.388.127.518.127.908.253.52.254 1.04.507 1.56 1.019v-.13c-.132-.506.127-1.142-.26-1.397 0 0-.651-.509-1.17-.762-.259-.254-.65-.254-.778-.508-.13-.126-.13-.255-.13-.509s.13-.635.258-.635c.259-.128.391 0 .91.252.52.257 1.038.637 1.427.892 0 0 .129.254.129.127.52-.253.52-.382.52-1.144-.52-.638 0-.762-.78-1.272-.258 0-1.686-.509-1.686-.509 
200760-.254.39-.888.39-.888.13-.125.387-.125.52.127.777.507 1.295.507 2.08.761.122-.38.122-.633-.135-.888-.262-.38-.65-.765-.91-.892-.517-.126-.777-.253-1.168-.38 0-.381-.128-.762-.257-1.27 0-.256.257-.128.52-.128.52-.128 2.723.636 2.723.636 0-.509-.13-.891-.391-1.145-.26-.255-.517-.509-1.167-.761-.905-.256-1.685-.127-2.334-.51-.52-.509-.65-.635-.78-1.144.389-.125 1.039-.254 1.43-.254.647 0 1.04-.127 1.817.129.255.125 1.166.89 1.557.89 0 0-.262-1.019-.523-1.398-.382 0-1.034-.765-1.294-.892-1.301-.509-1.558-.253-2.34-.127-.386.127-.773 0-1.166 0-.128-.253.261-.635.133-.889 0-.129-.523-.256-.523-.508 0 0 2.077-.256 2.858-.129.26.129 1.038.637 1.298.637 0 0 .255-.892-.133-1.653-.645-.125-1.296 0-1.815-.125-.519-.129-1.038 0-1.425 0-.393 0-.783-.129-1.17-.129-.257-.38-.391-.763-.391-1.144 0 0 3.245-.128 3.505-.253-.132-.131-.389-.254-.52-.511-.518-.89-.909-1.016-1.556-1.016-.39 0-1.295.38-1.815.253 0-1.015.52-1.905 1.295-1.905 1.558 0 3.115.634 4.412 2.032 3.247 3.307 4.93 9.534 4.93 13.983 0 2.034-.259 3.94-.517 5.466.388.129.645.129 1.036.129.393-1.528.78-3.561.78-5.468 0-6.483-2.337-11.946-5.19-14.999zM34.592 22.31c.264 1.015.656 2.283.788 3.8 0 .383-.132.762 0 1.143l1.822.632s-.256-1.52-.518-3.292c-.261-1.519-.392-2.026-.784-2.662-.262.127-.391.127-.652.127-.392.126-.656.252-.656.252zm4.287 7.396c.262.25.39.754.521 1.633.13.504.392.63.65 1.383.392-.25 1.043-.124 1.043-.124 0-.63-.392-1.259-.392-1.382-.133-.255-.52-1.008-.652-1.26.131 0 .519.504 1.173.504.133 0 .524.123.782 0 0 0 .389.252.389.501.26.378.26.63.395 1.007.254 0 .389 0 .518-.125.52 0 .78-.127.78-.127-.127-.251-.26-.5-.26-.755-.13-.249-.388-.879-.388-.879l2.34-.376c0-.38-.128-.884-.522-1.135-1.17.38-2.468.504-3.383.504-1.305 0-2.604-.253-4.426-1.004-.13.25 0 .751 0 .751.78.633.78.253 1.432.884zM10.142 8.737c.915-.516 2.475-1.42 2.994-1.934.134.26 1.697 1.161 2.346 1.544.52.39 1.042.516 1.561.773.26-.383.519-.773.782-1.673.39.26.911.26 1.3.386 0 .514 0 1.03.133 1.548 0 .255.26.126.781-.13.78-.257 1.56-.388 1.953-.514.907-.516 1.429-1.546 2.21-1.546.653 0 1.824.385 2.085.642.39.131.651.258 1.043.258.52 0 .91-.515 1.297-.774-1.168-.77-2.467-1.543-3.772-2.058-.782.641-1.303 1.157-1.693 1.157-.392 0-.13-.77-.13-1.288-.391 0-.653 0-1.04-.128-.258.9-.393 2.062-1.042 2.317-.26.13-.392.13-.521.13V6.416c0-.129.521-1.029.39-1.157 0 0-1.172.256-1.43.386-.13.129-.915.516-1.043.516 0 0-.392-.13-.52-.13-.391-.257-.65-.257-1.042-.516-.52 1.547-.654 1.932-.654 1.676 0 0-1.822-1.16-2.47-1.932-1.694.256-1.694.515-3.126 1.028-.52.516-1.301 1.16-1.822 1.934-.26.516-.521.773-.78 1.286l1.3.516c.131-.13.781-1.03.91-1.286zm44.981 34.535c.363.124.607.998.852 1.247.367.5.246-.872.123-1.123 0-.124 0-1.122-.244-1.122-.124-.126-.245-.5-.368-.623-.123.373 0 .623 0 .997 0 .25-.491.497-.363.624zM32.4 17.342c-.131 0-.528-.124-1.06-.249h-.661c.13.376.53.75.66.999 0 .126 0 .502.136.75.262 0 .659.124.925.25.131 0 .925.126 1.19.376.263 0 1.187.998 1.324 1.123.394.251.792.5 1.054.376.265 0 0-.376 0-.5-.527-.75-.924-2.124-1.054-2.124-.398-.125-.664 0-1.192-.251-.262-.25-1.058-.623-1.322-.75zm-2.212-2.994c.13.26.385.26.641.387.255.258.513.387.896.647.51.517.766 1.166 1.404 1.678.256.13.385.26.511.26.13 0 .64.388.768.517 0-1.034-.385-1.807-.637-2.326 0-.13-.13-.258-.386-.389-.386-.387-.767-.774-.894-.774-.382-.387-.639-.773-1.022-1.162-.385 0-.64.389-.896.518-.127.257-.636.517-.385.644zm-.472-3.29c0 .375.131.755.26 1.129.64.376 1.414.627 1.414.627.127-.378-.133-.753-.133-1.13-.252-.88-.642-1.757-.769-2.761v-.505c-.512-.249-1.03-.376-1.673-.627 0 0 0 .754.258 1.132.258.626.643 1.631.643 2.134zm27.578 3.364l-.513-.657 1.408-.393.643 2.233-1.538-1.183zm-4.692-1.15l-.765.472-1.022-.71 1.148-.592 1.275.83h-.636zm20.271 24.797c.128-.76.128-1.52.128-2.027a1.44 1.44 0 0 0-.91-.381c0-.377-.133-.884 0-1.391.256 0 .782.126.782 0 0-.76-.133-1.523-.26-1.901-.266-.129-.655-.255-1.048-.383 0-.38-.129-.759-.26-1.012.396-.128.653-.128.913-.128 0 0-.26-1.14-.388-1.648-.265-.126-.656-.126-.916-.126a6.102 6.102 0 0 1-.392-.887c.262-.126.525-.126.783-.252-.258-.634-.39-.889-.652-1.268h-.91c-.13-.253-.26-.507-.26-.758.13-.132.389-.256.52-.384a2.742 2.742 0 0 0-.653-1.011c-.26 0-.522.124-.782 0-.129 0-.522-.508-.39-.508.128-.255.39-.381.521-.507-.393-.50
200765-.522-.886-.914-1.141-.26 0-.518 0-.782.128 0 0-.261-.383-.39-.51-.394 0 .26-.632.26-.632-.391-.506-.78-.887-1.302-1.392-.266 0-.526.25-.655.25 0 0-.521-.379-.521-.505 0-.253.521-.38.521-.38s-.914-1.014-1.565-1.395c-.26.127-.389.127-.654.127-.389-.38-.911-.632-.911-.632s.393-.255.393-.381c-.652-.38-.914-.631-1.436-1.015-.522-.252-.782-.633-1.043-1.015-.911-1.39-2.085-3.418-4.958-3.8 0 0 .655.887 1.048 1.522 0 .125 0 .125-.524.125h-.91c-.264-.381-.393-.506-.526-.76-.261-.505-.384-.634-.65-.886-.523-.381-3.13 1.013-5.348 1.521.526.632 1.045 1.011 1.174 1.266.652.633 1.566 1.775 2.216 2.661.133-.126.264-.25.525-.38 1.699-.254 1.699-.63 1.699-.63s-1.31-1.018-.4-1.018c0 0 .655.125.917-.125.651-.129 1.434-.255 1.827 0 .52.378.78.886 1.172 1.267-.26 0-.52-.125-.781-.125-.784-.13-1.567 0-2.218.125 0 0 1.047.886 1.303 1.267-.256-.129-1.043 0-1.043 0-.393.126-.912.252-1.043.252-.39.129-.784 0-1.044.129.521.253 2.874 1.141 4.045 1.141 1.043 0 1.693-.13 2.608-.51.129-.126.389-.252.52-.126.523.127.783.255 1.043.506 3.393 2.03 7.173 6.846 8.347 9.379 1.173 2.408 1.823 5.07 1.823 7.603.131 3.424-1.04 6.718-3.388 9.634-1.309 1.644-3.783 3.04-6.39 3.293.783.888 1.17 2.28 1.564 3.549 0 0 .914-.127 1.437-.38 0-1.014-.654-2.153-.654-2.41 0 0 .782-.505 1.435-.505.127.379.519 1.013 1.045 1.901.521-.254.91-.51 1.303-.888 0-.634-.392-1.394-.655-2.154.915-.38 1.437-.51 1.437-.51.263.382.912.76 1.043 1.144 0 0 .65-.634.915-1.268-.264-.507-.656-.888-.915-1.395l1.044-1.138s.65.506.91.76c.394-.507.783-1.014.912-1.65-.65-.631-.912-.631-1.043-1.012.262-.382.392-.886.652-1.267.391.128.656.38.917.505.256-.505.522-1.268.522-1.773-.266-.255-.655-.38-.912-.633l.257-1.268s.655.126.915.126z\\\"><\/path><\/g><\/g><\/svg>\\n\t\t\t\t\t<span>ING<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-KNABNL2H\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"KNABNL2H\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-KNABNL2H\\\">\\n\t\t\t\t\t<svg width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 32 32\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" xmlns:xlink=\\\"http:\/\/www.w3.org\/1999\/xlink\\\"><defs><rect id=\\\"KNABNL2H-a\\\" x=\\\"0\\\" y=\\\"0\\\" width=\\\"32\\\" height=\\\"32\\\" rx=\\\"8\\\"><\/rect><\/defs><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><mask id=\\\"KNABNL2H-b\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#KNABNL2H-a\\\"><\/use><\/mask><use fill=\\\"#00374E\\\" xlink:href=\\\"#KNABNL2H-a\\\"><\/use><g mask=\\\"url(#KNABNL2H-b)\\\" fill=\\\"#FFF\\\"><path d=\\\"M13.769 14c-.88 0-1.438.43-1.772.956h-.025l.012-.849h-1.692c-.149 0-.292.18-.292.353v5.197c0 .174.143.343.3.343h1.684v-2.916c0-.85.236-1.519 1.09-1.519.82 0 .943.586.943 1.363v2.725c0 .18.14.347.29.347H16v-3.478C16 15.1 15.541 14 13.769 14M26.102 18.763c-.803 0-1.35-.62-1.35-1.526 0-.907.547-1.527 1.35-1.527.804 0 1.339.62 1.339 1.527 0 .906-.535 1.526-1.339 1.526zm.251-4.618c-.733 0-1.238.26-1.542.536.006-.2.013-.496.013-.787V12H23.27c-.137 0-.269.174-.269.333v7.21c0 .172.129.331.273.331h1.46l-.007-.46c.416.399.985.586 1.616.586C27.972 20 29 18.721 29 17.067c0-1.655-1.027-2.922-2.647-2.922zM8.823 14.283H6.879a.58.58 0 0 0-.394.182l-1.6 1.709V12H3.279c-.142 0-.278.175-.278.337v7.332c0 .164.112.331.279.331h1.607v-1.727l.518-.5 1.29 2.012c.12.165.286.215.48.215H9l-2.299-3.571 2.122-2.146M20.33 18.28c-.106.2-.41.527-.862.527-.462 0-.787-.27-.787-.713 0-.433.304-.679.819-.702l.83-.058v.946zm1.05-3.613c-.41-.422-.966-.667-1.933-.667a4.65 4.65 0 0 0-2 .474c-.12.061-.167.24-.119.379l.345.948c.262-.187.924-.515 1.586-.515.672 0 1.06.317 1.06.924v.13l-1.302.058c-.956.047-2.017.48-2.017 1.765C17 19.45 17.967 20 18.88 20c.84 0 1.26-.491 1.481-.737l.022.393c.006.108.1.215.23.215H22v-3.25c0-.972-.22-1.534-.62-1.954z\\\"><\/path><\/g><\/g><\/svg>\\n\t\t\t\t\t<span>Knab<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-MOYONL21\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"MOYONL21\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-MOYONL21\\\">\\n\t\t\t\t\t<svg xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" xmlns:xlink=\\\"http:\/\/www.w3.org\/1999\/xlink\\\" width=\\\"32\\\" height=\\\"32\\\"><defs><rect id=\\\"MOYONL21-a\\\" width=\\\"32\\\" height=\\\"32\\\" rx=\\\"8\\\"><\/rect><\/defs><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><use fill=\\\"#FFF\\\" xlink:href=\\\"#MOYONL21-a\\\"><\/use><rect width=\\\"31\\\" height=\\\"31\\\" x=\\\".5\\\" y=\\\".5\\\" stroke=\\\"#000\\\" stroke-opacity=\\\".1\\\" rx=\\\"8\\\"><\/rect><path fill=\\\"#D30D48\\\" d=\\\"M12.725 22.987a3.711 3.711 0 1 1 0-7.423 3.711 3.711 0 0 1 0 7.423m-.023-9.406a5.702 5.702 0 1 0 0 11.404 5.702 5.702 0 0 0 0-11.404\\\"><\/path><path fill=\\\"#2AAACD\\\" d=\\\"M17.352 20.282a5.634 5.634 0 1 1 0-11.269 5.634 5.634 0 0 1 0 11.27M17.367 7a7.633 7.633 0 1 0 0 15.265 7.
20076633 7.633 0 0 0 0-15.265\\\"><\/path><path fill=\\\"#F9BA30\\\" d=\\\"M11.812 15.677a3.711 3.711 0 0 1 4.51 4.51 5.665 5.665 0 0 0 2.009.01 5.702 5.702 0 0 0-6.525-6.546 5.668 5.668 0 0 0 .006 2.026\\\"><\/path><path fill=\\\"#55548F\\\" d=\\\"M17.397 20.282l-.045.001a5.634 5.634 0 0 1-5.634-5.635h-.001v-.045a.992.992 0 1 0-1.982 0v.03a7.633 7.633 0 0 0 7.632 7.632h.03a.992.992 0 1 0 0-1.983\\\"><\/path><\/g><\/svg>\\n\t\t\t\t\t<span>Moneyou<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-RABONL2U\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"RABONL2U\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-RABONL2U\\\">\\n\t\t\t\t\t<svg xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 32 32\\\"><defs><radialGradient id=\\\"RABONL2U-a\\\" cy=\\\"66.644%\\\" r=\\\"79.468%\\\" fx=\\\"50%\\\" fy=\\\"66.644%\\\" gradientTransform=\\\"matrix(-.62918 -.77726 .78627 -.63647 .29 1.48)\\\"><stop offset=\\\"0%\\\" stop-color=\\\"#FFD7A5\\\"><\/stop><stop offset=\\\"56.386%\\\" stop-color=\\\"#FDAD48\\\"><\/stop><stop offset=\\\"100%\\\" stop-color=\\\"#FC9E29\\\"><\/stop><\/radialGradient><linearGradient id=\\\"RABONL2U-b\\\" x1=\\\".006%\\\" x2=\\\"99.999%\\\" y1=\\\"50.047%\\\" y2=\\\"50.047%\\\"><stop offset=\\\"0%\\\" stop-color=\\\"#CC612C\\\"><\/stop><stop offset=\\\"100%\\\" stop-color=\\\"#743237\\\"><\/stop><\/linearGradient>
20076<linearGradient id=\\\"RABONL2U-c\\\" x1=\\\"-17.94%\\\" x2=\\\"99.666%\\\" y1=\\\"63.687%\\\" y2=\\\"40.48%\\\"><stop offset=\\\"0%\\\" stop-color=\\\"#FFDD7F\\\"><\/stop><stop offset=\\\"100%\\\" stop-color=\\\"#F47920\\\"><\/stop><\/linearGradient><linearGradient id=\\\"RABONL2U-d\\\" x1=\\\"9.382%\\\" x2=\\\"99.249%\\\" y1=\\\"33.961%\\\" y2=\\\"72.527%\\\"><stop offset=\\\"0%\\\" stop-color=\\\"#2A3795\\\"><\/stop><stop offset=\\\"100%\\\" stop-color=\\\"#222A7E\\\"><\/stop><\/linearGradient><\/defs><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><rect width=\\\"32\\\" height=\\\"32\\\" fill=\\\"url(#RABONL2U-a)\\\" rx=\\\"8\\\"><\/rect><path fill=\\\"url(#RABONL2U-b)\\\" fill-rule=\\\"nonzero\\\" d=\\\"M23.455 18.928c.365.373.668.805.899 1.28.692 1.464.438 3.078-.94 4.487-1.58 1.614-4.27 2.607-7.39 2.607-3.122 0-5.812-.993-7.386-2.607-1.377-1.409-1.632-3.023-.94-4.487.229-.474.529-.906.89-1.28-.441.443-.788.841-1.106 1.496-.674 1.407-.461 3.417.966 4.874 1.615 1.656 4.154 2.653 7.602 2.653 3.447 0 5.99-1.027 7.542-2.653 1.522-1.594 1.581-3.668.957-4.92a5.016 5.016 0 0 0-1.094-1.45z\\\"><\/path><path fill=\\\"#F47920\\\" fill-rule=\\\"nonzero\\\" d=\\\"M20.92 17.238c-1.463-.631-3.167-.962-4.897-.962-1.73 0-3.434.326-4.897.962-1.601.692-2.84 1.719-3.434 2.975-.692 1.464-.437 3.078.94 4.487 1.58 1.614 4.27 2.606 7.391 2.606 3.121 0 5.81-.992 7.39-2.606 1.38-1.41 1.633-3.023.94-4.487-.592-1.256-1.831-2.283-3.433-2.975z\\\"><\/path><path fill=\\\"url(#RABONL2U-c)\\\" fill-rule=\\\"nonzero\\\" d=\\\"M16.314 17.945c-.289-.616-.23-1.173-.17-1.663h-.116c-1.731 0-3.434.325-4.897.962-1.602.691-2.841 1.718-3.434 2.974-.692 1.463-.439 3.079.94 4.488.096.098.198.194.303.288 5.81-.358 8.848-3.903 7.374-7.05z\\\"><\/path><path fill=\\\"#FFF\\\" d=\\\"M12.278 18.048c1.068.285 2.12.628 3.153 1.029.207-.647.427-1.29.679-1.923.25.63.47 1.273.677 1.923a29.698 29.698 0 0 1 3.13-1.015 24.196 24.196 0 0 0-2.132 1.587c1.43.19 2.77.436 4.173.754a44.944 44.944 0 0 0-4.122.113c.987.871 1.833 1.715 2.75 2.664a52.359 52.359 0 0 0-3.75-2.023 167.275 167.275 0 0 0-.726 3.436c-.231-1.147-.445-2.238-.698-3.38a91.33 91.33 0 0 0-3.808 1.977 49.335 49.335 0 0 1 2.777-2.644c-1.4-.094-2.744-.113-4.177-.135a47.574 47.574 0 0 1 4.224-.754 24.958 24.958 0 0 0-2.15-1.609zm3.832 1.998v-2.524c-.246.7-.462 1.412-.667 2.128.224.13.446.262.667.396zm-3.202-1.72c.865.4 1.709.842 2.538 1.323-.205.022-.41.043-.616.069a28.382 28.382 0 0 0-1.922-1.391zm3.202 1.72c1.668 0 3.333.087 4.993.263a68.813 68.813 0 0 0-4.331-.661c-.223.13-.443.263-.662.398zm3.2-1.72a29.46 29.46 0 0 0-2.54 1.323 22.62 22.62 0 0 0-.1-.353c.867-.36 1.747-.688 2.64-.97zm-3.288 1.72c.036 1.218.078 2.51.089 3.69.217-1.09.445-2.18.684-3.265-.224-.144-.543-.286-.773-.425zm3.764 2.512a49.91 49.91 0 0 0-2.991-2.087c.209-.018.419-.034.628-.048a48.096 48.096 0 0 1 2.363 2.135zm-3.676-2.512c-1.68.024-2.99.103-4.626.25 1.413 0 2.51.06 3.946.179.225-.146.449-.289.68-.43zm-3.673 2.513c.974-.73 1.97-1.43 2.993-2.084l.09.407a51.15 51.15 0 0 0-3.083 1.677z\\\"><\/path><path fill=\\\"#C9252C\\\" d=\\\"M16.11 17.198c.25.63.47 1.273.677 1.923a30.25 30.25 0 0 1 3.026-.985l.109-.071a29.696 29.696 0 0 0-3.135 1.013 30.297 30.297 0 0 0-.677-1.923c-.252.63-.472 1.274-.679 1.923a30.386 30.386 0 0 0-3.153-1.029l.107.072c1.031.28 2.048.613 3.046 1 .207-.649.427-1.292.679-1.923z\\\"><\/path><path fill=\\\"#CB4D2C\\\" d=\\\"M14.379 20.547c-.973.86-1.868 1.709-2.77 2.644l.145-.085a45.253 45.253 0 0 1 2.63-2.494l-.005-.065zm1.064-.898h-.063c-.184.02-.369.04-.553.063a27.17 27.17 0 0 0-1.92-1.395v.052c.664.439 1.298.911 1.92 1.4l.616-.068c.2.12.389.224.586.343h.08c-.216-.13-.446-.265-.666-.395zm-3.006 2.97a55.119 55.119 0 0 1 3.083-1.683v-.059a49.086 49.086 0 0 0-3.083 1.683v.059z\\\"><\/path><path fill=\\\"#A71C20\\\" d=\\\"M16.795 20.471c-.238 1.073-.47 2.183-.685 3.265v.042c.217-1.092.442-2.172.683-3.258a51.879 51.879 0 0 1 2.992 2.1v-.064a50.05 50.05 0 0 0-2.99-2.085zm1.085.084l-.044-.04v.07a44.973 44.973 0 0 1 2.6 2.506l.15.09c-.933-.966-1.766-1.793-2.706-2.626z\\\"><\/path><path fill=\\\"#CB4D2C\\\" d=\\\"M14.387 19.665a47.444 47.444 0 0 0-4.18.747h.221a47.102 47.102 0 0 1 4.004-.706v-.051l-.045.01z\\\"><\/path><path fill=\\\"#A71C20\\\" d=\\\"M17.785 19.649c1.43.19 2.77.436 4.173.754h-.23a45.58 45.58 0 0 0-3.938-.699l-.005-.055zm-1.013 0l.06.007c.808-.465 1.63-.899 2.476-1.286v-.043c-.866.398-1.71.841-2.538 1.322\\\"><\/path><path fill=\\\"#FFF\\\" d=\\\"M8.197 23.543l-.08.16c.05.02.145.052.188.071.477-.264.946-.529 1.415-.784.012-.058.028-.116.048-.173l-.144-.038c-.478.247-.954.501-1.427.764zm3.17 2.563c-.068.017-.153.017-.221.033-.014-.049-.048-.1-.063-.149.333-.413.67-.823 1.01-1.23l.218-.045c.015.043.046.12.064.155-.34.409-.677.82-1.009 1.236zm12.545-2.563l.08.16c-.05.02-.146.052-.189.071-.476-.264-.946-.529-1.414-.784a1.448 1.448 0 0 0-.049-.173l.145-.038c.477.247.953.501 1.427.764zm-3.17 2.563l.22.033c.021-.048.043-.097.063-.149a79.635 79.635 0 0 0-1.01-1.23l-.218-.045c-.015.043-.046.12-.063.155.34.409.677.82 1.008 1.236z\\\"><\/path><path fill=\\\"#CC612C\\\" d=\\\"M8.192 23.627l-.045.088-.03-.012.08-.16c.473-.263.948-.517 1.427-.764l.144.038-.026.086c-.039-.012-.09-.02-.13-.032-.477.248-.947.493-1.42.756z\\\"><\/path><path fill=\\\"#A71C20\\\" d=\\\"M12.302 24.775c.018.025.04.086.059.12l.017-.02c0-.018-.046-.112-.063-.155l-.218.044c-.341.407-.678.818-1.01 1.231 0 .018.02.041.025.06.214-.265.674-.842 1.01-1.24.05-.017.121-.028.18-.04zm11.615-1.148l.045.088.03-.012-.08-.16a57.43 57.43 0 0 0-1.427-.764l-.145.038.027.086c.038-.012.09-.02.13-.032.477.248.946.493 1.42.756zm-4.107 1.148c-.018.025-.04.086-.059.12l-.017-.02c.006-.018.046-.112.063-.155l.218.044c.341.407.678.818 1.01 1.231l-.023.06a76.256 76.256 0 0 0-1.012-1.24c-.053-.017-.125-.028-.18-.04z\\\"><\/path><path fill=\\\"#CB4D2C\\\" d=\\\"M9.519 20.49c.592-2.754 4.259-3.573 6.56-3.573 2.3 0 5.966.809 6.56 3.573.736 3.43-4.177 4.706-6.56 4.706-2.384 0-7.297-1.284-6.56-4.706zm.24-.02c.557-2.661 4.105-3.45 6.32-3.45 2.214 0 5.762.789 6.32 3.451.691 3.293-4.029 4.51-6.32 4.51-2.292 0-7.008-1.224-6.316-4.517l-.004.006z\\\"><\/path><path fill=\\\"#FFF\\\" d=\\\"M9.54 20.569c.592-2.755 4.106-3.588 6.56-3.588 2.452 0 5.966.833 6.559 3.588.737 3.429-4.176 4.705-6.56 4.705-2.384 0-7.297-1.278-6.56-4.705zm.24-.02c.557-2.662 4.105-3.452 6.32-3.452 2.213 0 5.762.79 6.319 3.452.692 3.294-4.028 4.511-6.32 4.511-2.291 0-7.01-1.219-6.32-4.512z\\\"><\/path><path fill=\\\"#4F264A\\\" fill-rule=\\\"nonzero\\\" d=\\\"M23.93 21.136l-1.075-.165-.143-.034a1.291 1.291 0 0 1-.675-.48c-.15-.24-.512-.658-.71-.917-.274-.36-.9-.688-.992-.836a5.337 5.337 0 0 1-.284-.51.284.284 0 0 0-.302-.176c-.163.01-.177.069-.315.077a1.801 1.801 0 0 1-.332-.022.976.976 0 0 0-.202-.029c-.087.148-.218.24-.537.24a.
20076187.187 0 0 1-.056-.006c.033.074.33.12.38.12.05 0 .333.078.396.091a.487.487 0 0 1 .312.102c.346.207.857.777.96 1.27.055.274.505.722.558.97-.601-.046-1.4-.46-1.4-.46l-.1-.05a2.357 2.357 0 0 0-.905-.214c-1.038-.096-1.427-.24-1.53-.276-.213-.075-.183-.112-.357-.12h-.094a.425.425 0 0 1-.09.12c-.186.174-.349.374-.484.593a.345.345 0 0 1-.206.139c.198-.047.584-.156.584-.156.364-.05.923.12.923.12.185.048.366.109.544.18 0 0 1.473.47 1.834.744.237.18 1.462.657 1.786.774.382.168.754.357 1.116.566.203.18 1.385.721 1.711.833.404-.69.562-1.506.447-2.305l-.762-.183z\\\" opacity=\\\".45\\\"><\/path><path fill=\\\"#4F264A\\\" fill-rule=\\\"nonzero\\\" d=\\\"M23.388 19.86c-.075.001-.15.01-.224.028l-.293.18c-.037.064.096.146.096.146s.37.025.37.12c.271.152.852.17 1.153.184a4.658 4.658 0 0 0-.286-.605c-.017 0-.248-.066-.816-.052zM21.2 23.616s-.07-.093-.445-.095c-.239 0 .103.587.103.587.215.15.989.38 1.154.403.165.022.698.187.698.187.192.03.383.073.57.13a5.747 5.747 0 0 0 .586-.651c-.653-.015-1.581-.027-2.284-.41-.071-.213-.382-.15-.382-.15z\\\" opacity=\\\".45\\\"><\/path><path fill=\\\"#FBB257\\\" fill-rule=\\\"nonzero\\\" d=\\\"M19.217 12.931s-.223-.205-.223-.217c-.015-.073.063-.17.081-.29-.023-.008-.045-.019-.067-.029-.052-.209-.096-.585 0-.786a.518.518 0 0 0 .072-.342c-.18-.64-.535-1.202-.785-1.803a1.194 1.194 0 0 1-.066-.452c-.194-.222-.417-.803-.526-1.162-.225.594-.375 1.276-.375 1.434 0 .668.65.992.426 2.103-.044.214-.116.51-.199.817.135.774.135 1.336.334 2.233.303.309.522.696.634 1.122.077.288.31.967.61 1.07.185.062-.628.218-.859-.083-.23-.302-.606-.52-.787-.83-.144-.24-.369-.768-.51-1.016l-.175.953c.236 1.015.096 1.24-.115 2.065-.092.36-.782-1.31-.783-1.443a2.603 2.603 0 0 0-.104-.815c-.144-.294-.129-.711-.115-1.027.033-.53.03-1.53.052-1.792-.174-.446-.62-1.252-.666-1.706-.07-.707.045-1.422-.05-2.126-.115.353-.24.8-.503 1.07-.39.414-.76.847-1.11 1.299-.128.183-.015.272-.214.564-.2.292-.09.158-.132.432a.196.196 0 0 1-.045.101c-.105.093-.215.17-.365.105-.29-.152-.31-.376-.332-.665-.038-.552.355-.578.577-.91.435-.657.656-1.756 1.122-2.25.029-.098.138-.45.346-.976.006-.652.16-1.232.808-1.5.264-.109.609-.138.622-.516a.48.48 0 0 0-.035-.205c-.106-.089-.181-.091-.23-.155-.105-.14-.191-1.036-.18-1.092.152-.761.5-1.015.943-.992.524.026.938.288.915 1.02-.017.59-.602 1.347.272 1.633.334.109.397.033.685.334.322.336.4.935.453 1.489l.329.793c.601 1.056.383 1.388.605 2.463.103.368.163.748.176 1.131.013.292-.208.936-.511.95z\\\"><\/path><path fill=\\\"url(#RABONL2U-d)\\\" fill-rule=\\\"nonzero\\\" d=\\\"M12.946 12.135c.027-.282-.012-.258.16-.518.16-.24.083-.361.224-.573.333-.46.688-.9 1.065-1.322.26-.275.615-1.202.698-1.53.016-.048.04-.07.05-.03.056.622.14 1.14.116 1.751-.044 1.284-.01 1.15.502 2.348.043-.481.155-1.182.425-1.418-.315 1.25-.335 3.03-.368 3.578-.018.279-.09.72.039.974.037.21.054.422.05.635l.008 2.191-.185.962a1.82 1.82 0 0 1-.663.888c-.081.047-.27.153-.27.24 0 .152.939.435 1.153.09.136-.219.299-.419.485-.593.297-.296-.032-.601.007-1 .068-.695.355-1.3.45-1.957.07-.403.026-.819-.127-1.196l.126-1.256c.148.275.282.558.4.847.23.509.238.56.643.976.144.145.272.306.38.481.192.315.324.629.306 1.005-.14.266-.2.249-.382.41.006.008-.05.155.123.155.61 0 .534-.333.766-.763.149-.28.577-.702.107-.849a.646.646 0 0 1-.371-.287c-.327-.568-.338-.553-.508-1.075-.11-.31-.305-.58-.558-.779a3.371 3.371 0 0 1-.259-.988 60.44 60.44 0 0 0-.194-1.405c.24-.985.361-1.193-.045-2.14a1.761 1.761 0 0 1-.145-.707c.038-.478.148-.946.328-1.388a.555.555 0 0 1 .246-.334c.099.382.438 1.167.634 1.36-.001.154.02.308.065.456.248.619.604 1.182.782 1.835.061.225-.02.333-.082.515-.023.174-.018.352.014.525l.084.048c-.022.098-.05.194-.082.288.01.088.115.139.115.139.137-.032.33-.545.324-.75a4.32 4.32 0 0 0-.184-1.097c-.2-1.066-.084-1.358-.656-2.389l-.327-.841c-.04-.43-.204-1.409-.732-1.585-.088-.03-.178-.034-.312-.08-.693-.233-.693-.786-.5-1.39.167-.537.19-1.17-.57-1.236-.468-.041-.611.344-.712.787 0 .048.027.77.13.924.2.155.312.11.3.5-.01.326-.21.52-.482.618-.44.162-.667.257-.815.73a2.318 2.318 0 0 0-.088.684v.03c-.144.343-.272.693-.382 1.049-.544.567-.808 1.86-1.363 2.404-.366.36-.476.384-.346.943.014.057.19.202.23.223.042.02.174-.08.173-.113z\\\"><\/path><\/g><\/svg>\\n\t\t\t\t\t<span>Rabobank<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-RBRBNL21\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"RBRBNL21\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-RBRBNL21\\\">\\n\t\t\t\t\t<svg width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 32 32\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" xmlns:xlink=\\\"http:\/\/www.w3.org\/1999\/xlink\\\"><defs><rect id=\\\"RBRBNL21-a\\\" x=\\\"0\\\" y=\\\"0\\\" width=\\\"32\\\" height=\\\"32\\\" rx=\\\"8\\\"><\/rect><\/defs><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><mask id=\\\"RBRBNL21-b\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#RBRBNL21-a\\\"><\/use><\/mask><use fill=\\\"#D01A21\\\" xlink:href=\\\"#RBRBNL21-a\\\"><\/use><g mask=\\\"url(#RBRBNL21-b)\\\" fill=\\\"#FFF\\\"><path d=\\\"M10.196 12.218c-.257-.512-.701-1.024-1.344-1.133.011 0 .058-.011.093-.011 1.192-.153 1.707-.97 1.707-1.797 0-.708-.421-1.82-2.361-1.82H6.269c-.14 0-.269.11-.269.24v6.852c0 .13.129.24.269.24h.56c.14 0 .258-.11.258-.24v-3.061h.55c.794 0 1.156.458 1.425.926.327.566.55 1.35.853 2.2.047.142.152.175.28.175h.772c.21 0 .246-.12.175-.294-.409-1.057-.806-2.005-.946-2.277zm-.655-2.8
20076c0 .752-.537 1.21-1.402 1.21H7.087V8.361h1.18c.842 0 1.274.468 1.274 1.056m5.79 2.745c0-2.004-.935-2.712-2.127-2.712-1.286 0-2.15 1.035-2.15 2.68 0 1.786.9 2.712 2.5 2.712.678 0 1.076-.098 1.45-.25.128-.055.198-.164.152-.295l-.129-.348c-.047-.12-.14-.207-.315-.153-.34.088-.655.186-1.1.186-1.051 0-1.402-.567-1.448-1.58h2.91c.14 0 .257-.109.257-.24m-1.087-.512h-2.08c.116-1.132.642-1.405 1.075-1.405.725 0 .982.708 1.005 1.405m4.416 2.212h-.97c-.42 0-.608-.066-.608-.294 0-.12.094-.24.21-.338.176.043.375.065.574.065 1.297 0 2.127-.73 2.127-1.928 0-.37-.176-.73-.421-1.046l.386-.043c.14-.011.233-.087.233-.229v-.283c0-.142-.093-.25-.257-.25H18.59c-.245 0-.48-.055-.724-.055-1.251 0-2.104.686-2.104 1.906 0 .719.327 1.263.841 1.58-.28.24-.514.523-.514.904 0 .631.596.85 1.286.85h1.133c.631 0 .877.24.877.686 0 .479-.561.773-1.274.773-.55 0-1.157-.098-1.25-.675-.024-.142-.118-.218-.258-.229l-.584-.022c-.14 0-.257.099-.257.24.011 1.176 1.192 1.525 2.314 1.525 1.075 0 2.326-.458 2.326-1.721 0-.904-.678-1.416-1.742-1.416zm.257-2.517c0 .98-.502 1.188-1.04 1.188-.56 0-1.028-.175-1.028-1.188 0-.97.467-1.143 1.028-1.143.573 0 1.04.185 1.04 1.143m3.195-3.67c0-.371-.315-.676-.713-.676-.409 0-.724.305-.724.675 0 .382.315.687.724.687a.696.696 0 0 0 .713-.687m-.186 6.874V9.756c0-.13-.13-.24-.258-.24h-.526c-.14 0-.269.11-.269.24v4.793c0 .13.129.24.27.24h.525c.129 0 .258-.11.258-.24M27 12.153c0-1.667-.865-2.702-2.267-2.702-1.403 0-2.28 1.024-2.28 2.702 0 1.688.877 2.69 2.28 2.69 1.414 0 2.267-1.024 2.267-2.69m-1.11 0c0 1.318-.444 1.862-1.18 1.862-.725 0-1.17-.544-1.17-1.862 0-1.297.445-1.863 1.17-1.863.736 0 1.18.566 1.18 1.863M9.322 21.95c.944-.269 1.34-.828 1.34-1.668 0-1.107-.78-1.868-2.133-1.868H6.268c-.14 0-.268.112-.268.246v7.038c0 .134.128.246.268.246h2.378c1.468 0 2.354-.772 2.354-2.115 0-.973-.56-1.756-1.678-1.88zm.256-1.522c0 .694-.446 1.13-1.326 1.13H7.091V19.31h1.244c.832 0 1.243.403 1.243 1.12zm.281 3.29c0 .817-.48 1.309-1.29 1.309H7.091v-2.63h1.255c.95 0 1.513.56 1.513 1.32zm5.78 1.98l-.07-.325c-.07-.335-.059-.637-.059-.917V22.51c0-.906-.152-2.047-2.018-2.047-.504 0-1.08.123-1.419.212-.142.034-.2.146-.164.291l.093.414c.035.146.153.224.306.18.316-.08.668-.191 1.125-.191.834 0 1.02.302 1.02.95v.27l-1.289.078c-.95.067-1.76.537-1.76 1.734 0 1.007.576 1.6 1.513 1.6.646 0 1.256-.223 1.62-.772l.082.492c.023.157.128.224.27.224h.54c.152 0 .233-.1.21-.246zm-1.185-1.544c0 .414-.48 1.03-1.231 1.03-.434 0-.74-.247-.74-.784 0-.84.517-1.04 1.232-1.063l.739-.022v.839zm5.804-2.294c0-.839-.564-1.398-1.443-1.398-.622 0-1.114.223-1.607.772l-.118-.504c-.035-.145-.117-.201-.28-.201h-.353c-.14 0-.27.1-.27.235v4.934c0 .134.13.246.27.246h.54c.14 0 .258-.112.258-.246v-3.043c0-.75.551-1.32 1.266-1.32.481 0 .669.234.669.749v3.614c0 .134.13.246.27.246H20c.14 0 .258-.112.258-.246V21.86zm4.705 3.793l-1.924-2.797 1.572-2.048c.094-.123.035-.28-.13-.28h-.75a.378.378 0 0 0-.34.19l-1.419 2.07v-4.542c0-.145-.117-.246-.258-.246h-.528c-.14 0-.259.1-.259.246v7.452c0 .134.118.246.259.246h.528c.141 0 .258-.112.258-.246v-2.674l1.7 2.708c.083.134.188.212.317.212h.834c.164 0 .222-.167.14-.29z\\\"><\/path><\/g><\/g><\/svg>\\n\t\t\t\t\t<span>RegioBank<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-SNSBNL2A\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"SNSBNL2A\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-SNSBNL2A\\\">\\n\t\t\t\t\t<svg width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 32 32\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" xmlns:xlink=\\\"http:\/\/www.w3.org\/1999\/xlink\\\"><defs><path id=\\\"SNSBNL2A-a\\\" d=\\\"M.001 2.924L10.175 0 3.93 5.105z\\\"><\/path><linearGradient x1=\\\"41.165%\\\" y1=\\\"55.044%\\\" x2=\\\"81.026%\\\" y2=\\\"32.273%\\\" id=\\\"SNSBNL2A-c\\\"><stop stop-color=\\\"#EF4130\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#C53526\\\" offset=\\\"91.875%\\\"><\/stop><stop stop-color=\\\"#C53526\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path id=\\\"SNSBNL2A-d\\\" d=\\\"M6.252.01l3.93 2.182L.006 5.115z\\\"><\/path><linearGradient x1=\\\"-.395%\\\" y1=\\\"78.799%\\\" x2=\\\"99.622%\\\" y2=\\\"21.652%\\\" id=\\\"SNSBNL2A-f\\\"><stop stop-color=\\\"#D4D3EA\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#8685C0\\\" offset=\\\"89.494%\\\"><\/stop><stop stop-color=\\\"#8685C0\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.012 8.025L1.022.012 4.71 5.2A10.533 10.533 0 0 1 .012 8.026z\\\" id=\\\"SNSBNL2A-g\\\"><\/path><linearGradient x1=\\\"95.253%\\\" y1=\\\"42.895%\\\" x2=\\\"-19.214%\\\" y2=\\\"60.911%\\\" id=\\\"SNSBNL2A-i\\\"><stop stop-color=\\\"#7474B6\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#7474B6\\\" offset=\\\"9.533%\\\"><\/stop><stop stop-color=\\\"#BBB9DD\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.012 2.96l.192-.353A10.23 10.23 0 0 0 4.444.003l.266.
20076132A10.532 10.532 0 0 1 .012 2.96z\\\" id=\\\"SNSBNL2A-j\\\"><\/path><linearGradient x1=\\\"103.216%\\\" y1=\\\"1.127%\\\" x2=\\\".351%\\\" y2=\\\"95.639%\\\" id=\\\"SNSBNL2A-l\\\"><stop stop-color=\\\"#7474B6\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#7474B6\\\" offset=\\\"9.533%\\\"><\/stop><stop stop-color=\\\"#BBB9DD\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.011.012l6.345.385A10.671 10.671 0 0 1 3.699 5.2L.01.012z\\\" id=\\\"SNSBNL2A-m\\\"><\/path><linearGradient x1=\\\"33.944%\\\" y1=\\\"84.104%\\\" x2=\\\"79.492%\\\" y2=\\\"-12.572%\\\" id=\\\"SNSBNL2A-o\\\"><stop stop-color=\\\"#EF4130\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#A82B1C\\\" offset=\\\"99.659%\\\"><\/stop><stop stop-color=\\\"#A82B1C\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.008 4.466a10.378 10.378 0 0 0 2.4-4.34l.325-.123A10.671 10.671 0 0 1 .076 4.806l-.068-.34z\\\" id=\\\"SNSBNL2A-p\\\"><\/path><linearGradient x1=\\\"1.463%\\\" y1=\\\"97.785%\\\" x2=\\\"103.937%\\\" y2=\\\"-3.118%\\\" id=\\\"SNSBNL2A-r\\\"><stop stop-color=\\\"#EF4130\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#EF4130\\\" offset=\\\"3.105%\\\"><\/stop><stop stop-color=\\\"#9E2718\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.011 5.105L6.258.001c.531 1.856.534 3.74.098 5.49L.01 5.104z\\\" id=\\\"SNSBNL2A-s\\\"><\/path><linearGradient x1=\\\"33.293%\\\" y1=\\\"108.835%\\\" x2=\\\"70.4%\\\" y2=\\\"-15.103%\\\" id=\\\"SNSBNL2A-u\\\"><stop stop-color=\\\"#EEEDF7\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#AFAED7\\\" offset=\\\"93.388%\\\"><\/stop><stop stop-color=\\\"#AFAED7\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.053 5.33A10.296 10.296 0 0 0 .008.346L.206.001c.532 1.857.534 3.74.098 5.49l-.251-.16z\\\" id=\\\"SNSBNL2A-v\\\"><\/path><linearGradient x1=\\\"-90.033%\\\" y1=\\\"54.77%\\\" x2=\\\"179.585%\\\" y2=\\\"46.143%\\\" id=\\\"SNSBNL2A-x\\\"><stop stop-color=\\\"#FFF\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#AFAED7\\\" offset=\\\"85.447%\\\"><\/stop><stop stop-color=\\\"#AFAED7\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.005.009L8.003 1.02 2.827 4.716A10.572 10.572 0 0 1 .005.009\\\" id=\\\"SNSBNL2A-y\\\"><\/path><linearGradient x1=\\\"15.77%\\\" y1=\\\"66.65%\\\" x2=\\\"99.943%\\\" y2=\\\"25.66%\\\" id=\\\"SNSBNL2A-A\\\"><stop stop-color=\\\"#FFEF96\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#FFEF96\\\" offset=\\\"11.33%\\\"><\/stop><stop stop-color=\\\"#FFD540\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.004 3.703L5.181.008l-.383 6.357A10.632 10.632 0 0 1 .004 3.703\\\" id=\\\"SNSBNL2A-B\\\"><\/path><linearGradient x1=\\\"1.459%\\\" y1=\\\"64.412%\\\" x2=\\\"118.07%\\\" y2=\\\"29.785%\\\" id=\\\"SNSBNL2A-D\\\"><stop stop-color=\\\"#F8A084\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#F8A084\\\" offset=\\\"3.221%\\\"><\/stop><stop stop-color=\\\"#EF402F\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.004.073l.339-.07A10.33 10.33 0 0 0 4.674 2.41l.124.326A10.633 10.633 0 0 1 .003.073\\\" id=\\\"SNSBNL2A-E\\\"><\/path><linearGradient x1=\\\"-1.538%\\\" y1=\\\"-2.323%\\\" x2=\\\"102.884%\\\" y2=\\\"103.688%\\\" id=\\\"SNSBNL2A-G\\\"><stop stop-color=\\\"#F8A084\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#F8A084\\\" offset=\\\"3.221%\\\"><\/stop><stop stop-color=\\\"#EF402F\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.01 6.365L.392.008l5.096 6.259a10.542 10.542 0 0 1-5.478.098\\\" id=\\\"SNSBNL2A-H\\\"><\/path><linearGradient x1=\\\"-6.1%\\\" y1=\\\"63.177%\\\" x2=\\\"86.783%\\\" y2=\\\"41.32%\\\" id=\\\"SNSBNL2A-J\\\"><stop stop-color=\\\"#426AB3\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#143F90\\\" offset=\\\"96.787%\\\"><\/stop><stop stop-color=\\\"#143F90\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.01 2.828A10.543 10.543 0 0 1 4.708.002l-.192.354A10.234 10.234 0 0 0 .276 2.96L.01 2.828z\\\" id=\\\"SNSBNL2A-K\\\"><\/path><linearGradient x1=\\\"-2.613%\\\" y1=\\\"74.018%\\\" x2=\\\"107.806%\\\" y2=\\\"23.638%\\\" id=\\\"SNSBNL2A-M\\\"><stop stop-color=\\\"#5563A4\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#133C8B\\\" offset=\\\"63.846%\\\"><\/stop><stop stop-color=\\\"#133C8B\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.007 4.802a10.648 10.648 0 0 1 2.657-4.8l3.687 5.186-6.344-.386z\\\" id=\\\"SNSBNL2A-N\\\"><\/path><linearGradient x1=\\\"46.515%\\\" y1=\\\"98.945%\\\" x2=\\\"53.802%\\\" y2=\\\"-3.12%\\\" id=\\\"SNSBNL2A-P\\\"><stop stop-color=\\\"#FFF\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#D1D0E8\\\" offset=\\\"84.738%\\\"><\/stop><stop stop-color=\\\"#D1D0E8\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.007 4.816A10.66 10.66 0 0 1 2.664.014l.068.34A10.386 10.386 0 0 0 .33 4.694l-.323.122z\\\" id=\\\"SNSBNL2A-Q\\\"><\/path>
20076<linearGradient x1=\\\"-17.587%\\\" y1=\\\"61.021%\\\" x2=\\\"122.726%\\\" y2=\\\"38.148%\\\" id=\\\"SNSBNL2A-S\\\"><stop stop-color=\\\"#FFF\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#C7C6E4\\\" offset=\\\"85.64%\\\"><\/stop><stop stop-color=\\\"#C7C6E4\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.002 3.701L5.18.006a10.547 10.547 0 0 1 2.82 4.708h-.002L.002 3.701z\\\" id=\\\"SNSBNL2A-T\\\"><\/path><linearGradient x1=\\\"2.588%\\\" y1=\\\"73.091%\\\" x2=\\\"91.699%\\\" y2=\\\"29.709%\\\" id=\\\"SNSBNL2A-V\\\"><stop stop-color=\\\"#C7C6E4\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#7474B6\\\" offset=\\\"89.327%\\\"><\/stop><stop stop-color=\\\"#7474B6\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.002 6.36L.385.003A10.63 10.63 0 0 1 5.18 2.665L.002 6.36z\\\" id=\\\"SNSBNL2A-W\\\"><\/path><linearGradient x1=\\\"10.419%\\\" y1=\\\"105.892%\\\" x2=\\\"73.472%\\\" y2=\\\"16.784%\\\" id=\\\"SNSBNL2A-Y\\\"><stop stop-color=\\\"#EF4130\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#B12E20\\\" offset=\\\"97.148%\\\"><\/stop><stop stop-color=\\\"#B12E20\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.13.328L.006.004c1.801.45 3.457 1.371 4.794 2.66l-.34.07A10.336 10.336 0 0 0 .13.328\\\" id=\\\"SNSBNL2A-Z\\\"><\/path><linearGradient x1=\\\"-2.092%\\\" y1=\\\"-2.909%\\\" x2=\\\"102.334%\\\" y2=\\\"103.139%\\\" id=\\\"SNSBNL2A-ab\\\"><stop stop-color=\\\"#EF4130\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#EF4130\\\" offset=\\\"3.105%\\\"><\/stop><stop stop-color=\\\"#9E2718\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.004.424A10.53 10.53 0 0 1 5.483.327l-.384 6.357L.004.424z\\\" id=\\\"SNSBNL2A-ac\\\"><\/path><linearGradient x1=\\\"39.919%\\\" y1=\\\"57.366%\\\" x2=\\\"105.186%\\\" y2=\\\"3.673%\\\" id=\\\"SNSBNL2A-ae\\\"><stop stop-color=\\\"#F8ABA6\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#F48594\\\" offset=\\\"98.981%\\\"><\/stop><stop stop-color=\\\"#F48594\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><path d=\\\"M.004.424A10.528 10.528 0 0 1 5.483.327l-.159.252A10.219 10.219 0 0 0 .349.624l-.345-.2z\\\" id=\\\"SNSBNL2A-af\\\"><\/path><linearGradient x1=\\\"1.266%\\\" y1=\\\"40.086%\\\" x2=\\\"101.259%\\\" y2=\\\"40.086%\\\" id=\\\"SNSBNL2A-ah\\\"><stop stop-color=\\\"#F8ABA6\\\" offset=\\\"0%\\\"><\/stop><stop stop-color=\\\"#F37B90\\\" offset=\\\"99.197%\\\"><\/stop><stop stop-color=\\\"#F37B90\\\" offset=\\\"100%\\\"><\/stop><\/linearGradient><\/defs><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><rect fill=\\\"#4858BB\\\" width=\\\"32\\\" height=\\\"32\\\" rx=\\\"8\\\"><\/rect><path fill=\\\"#FFF\\\" d=\\\"M16 15l3 5-5.587 6.206z\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 16.191 19.304)\\\"><mask id=\\\"SNSBNL2A-b\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-a\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-b)\\\" fill=\\\"url(#SNSBNL2A-c)\\\"><path d=\\\"M.001 2.924L10.175 0 3.93 5.105\\\"><\/path><\/g><\/g><path fill=\\\"#EF4130\\\" d=\\\"M20.12 14.199l6.247 5.104-.622-.325-5.64-4.61\\\"><\/path><path fill=\\\"#F58769\\\" d=\\\"M16.193 16.38l3.927-2.181-.015.17-3.546 1.97\\\"><\/path><path fill=\\\"#BC3123\\\" d=\\\"M26.367 19.304L16.193 16.38l.366-.042 9.186 2.64\\\"><\/path><path fill=\\\"#F8ABA6\\\" d=\\\"M16.193 16.38l3.927-2.181-1.01-8.014\\\"><\/path><path fill=\\\"#D37482\\\" d=\\\"M19.11 6.185L16.191 16.38l.23-.29 2.634-9.204\\\"><\/path><path fill=\\\"#D79592\\\" d=\\\"M20.12 14.199l-1.01-8.014-.054.701.912 7.234\\\"><\/path><path fill=\\\"#FBCBC5\\\" d=\\\"M16.193 16.38l3.927-2.181-.151-.08-3.547 1.971\\\"><\/path><path fill=\\\"#FFF\\\" d=\\\"M18.37 20.316l-5.096 6.26.325-.623 4.6-5.652\\\"><\/path><path fill=\\\"#FFF\\\" d=\\\"M16.193 16.38l2.176 3.936-.169-.015-1.966-3.553\\\"><\/path><path fill=\\\"#D3D2EA\\\" d=\\\"M13.274 26.575l2.919-10.195.041.369-2.634 9.203\\\"><\/path><path fill=\\\"#293896\\\" d=\\\"M16.193 16.38l2.176 3.936 7.998-1.013\\\"><\/path><path fill=\\\"#464EA1\\\" d=\\\"M26.367 19.304L16.192 16.38l.29.231 9.185 2.639\\\"><\/path><path fill=\\\"#1F2879\\\" d=\\\"M18.37 20.316l7.997-1.012-.7-.054-7.22.914\\\"><\/path><path fill=\\\"#8785C0\\\" d=\\\"M16.193 16.38l2.176 3.936.079-.152-1.966-3.553\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 6.011 18.572)\\\"><mask id=\\\"SNSBNL2A-e\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-d\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-e)\\\" fill=\\\"url(#SNSBNL2A-f)\\\">
20076<path d=\\\"M6.252.01l3.93 2.182L.006 5.115\\\"><\/path><\/g><\/g><path fill=\\\"#B0AED7\\\" d=\\\"M12.264 18.562l-6.247-5.105.622.325 5.64 4.61\\\"><\/path><path fill=\\\"#FFDE17\\\" d=\\\"M16.193 16.38l-3.93 2.182 1.011 8.014\\\"><\/path><path fill=\\\"#D3B382\\\" d=\\\"M13.274 26.575l2.919-10.195-.232.291-2.633 9.203\\\"><\/path><path fill=\\\"#E8C446\\\" d=\\\"M12.264 18.562l1.01 8.014.054-.702-.912-7.234\\\"><\/path><path fill=\\\"#EF4130\\\" d=\\\"M16.193 16.38l-2.178-3.936 5.094-6.258\\\"><\/path><path fill=\\\"#F16246\\\" d=\\\"M14.015 12.444l5.094-6.258-.325.623-4.6 5.65\\\"><\/path><path fill=\\\"#D93B2B\\\" d=\\\"M16.193 16.38l-2.178-3.936.17.016 1.965 3.552\\\"><\/path><path fill=\\\"#C53526\\\" d=\\\"M19.11 6.186L16.191 16.38l-.042-.368 2.634-9.204\\\"><\/path><path fill=\\\"#EEEDF7\\\" d=\\\"M16.193 16.38l-2.178-3.936-7.998 1.013\\\"><\/path><path fill=\\\"#D3D2EA\\\" d=\\\"M14.015 12.444l-7.998 1.013.7.053 7.22-.913\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 19.098 14.21)\\\"><mask id=\\\"SNSBNL2A-h\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-g\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-h)\\\" fill=\\\"url(#SNSBNL2A-i)\\\"><path d=\\\"M.012 8.025L1.022.012 4.71 5.2A10.533 10.533 0 0 1 .012 8.026\\\"><\/path><\/g><\/g><path d=\\\"M19.11 6.185l1.01 8.014.094-.378-.95-7.59a10.176 10.176 0 0 0-.155-.046\\\" fill=\\\"#8785C0\\\"><\/path><path d=\\\"M23.708 8.91l-3.494 4.911-.094.378 3.688-5.187a4.297 4.297 0 0 0-.1-.102\\\" fill=\\\"#9A98CB\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 19.098 9.146)\\\"><mask id=\\\"SNSBNL2A-k\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-j\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-k)\\\" fill=\\\"url(#SNSBNL2A-l)\\\"><path d=\\\"M.012 2.96l.192-.353A10.23 10.23 0 0 0 4.444.003l.266.132A10.532 10.532 0 0 1 .012 2.96\\\"><\/path><\/g><\/g><g transform=\\\"matrix(1 0 0 -1 20.109 14.21)\\\"><mask id=\\\"SNSBNL2A-n\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-m\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-n)\\\" fill=\\\"url(#SNSBNL2A-o)\\\"><path d=\\\"M.011.012l6.345.385A10.671 10.671 0 0 1 3.699 5.2\\\"><\/path><\/g><\/g><path d=\\\"M23.808 9.012l-3.688 5.187.286-.159 3.501-4.924a5.889 5.889 0 0 0-.1-.104\\\" fill=\\\"#F37557\\\"><\/path><path d=\\\"M26.429 13.674l-6.023.366-.286.159 6.344-.385-.035-.14\\\" fill=\\\"#A82B1C\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 23.731 13.817)\\\"><mask id=\\\"SNSBNL2A-q\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-p\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-q)\\\" fill=\\\"url(#SNSBNL2A-r)\\\">
20076<path d=\\\"M.008 4.466a10.378 10.378 0 0 0 2.4-4.34l.325-.123A10.671 10.671 0 0 1 .076 4.806\\\"><\/path><\/g><\/g><g transform=\\\"matrix(1 0 0 -1 20.109 19.304)\\\"><mask id=\\\"SNSBNL2A-t\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-s\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-t)\\\" fill=\\\"url(#SNSBNL2A-u)\\\"><path d=\\\"M.011 5.105L6.258.001c.531 1.856.534 3.74.098 5.49\\\"><\/path><\/g><\/g><path d=\\\"M26.464 13.814l-6.344.385.37.118 6.008-.363a12.696 12.696 0 0 0-.034-.14\\\" fill=\\\"#C7C6E3\\\"><\/path><path d=\\\"M26.367 19.304l.041-.15-5.918-4.837-.37-.118\\\" fill=\\\"#EEEDF7\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 26.16 19.304)\\\"><mask id=\\\"SNSBNL2A-w\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-v\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-w)\\\" fill=\\\"url(#SNSBNL2A-x)\\\"><path d=\\\"M.053 5.33A10.296 10.296 0 0 0 .008.346L.206.001c.532 1.857.534 3.74.098 5.49\\\"><\/path><\/g><\/g><g transform=\\\"matrix(1 0 0 -1 6.011 13.465)\\\"><mask id=\\\"SNSBNL2A-z\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-y\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-z)\\\" fill=\\\"url(#SNSBNL2A-A)\\\"><path d=\\\"M.005.009L8.003 1.02 2.827 4.716A10.572 10.572 0 0 1 .005.009\\\"><\/path><\/g><\/g><path d=\\\"M6.017 13.457l7.998-1.013-.377-.093-7.576.952-.045.154\\\" fill=\\\"#FFCB1F\\\"><\/path><path d=\\\"M8.736 8.85l4.902 3.5.377.094L8.838 8.75c-.034.033-.069.066-.102.1\\\" fill=\\\"#FFDE17\\\"><\/path><path d=\\\"M8.837 8.75a10.563 10.563 0 0 0-2.82 4.707l.353-.193a10.276 10.276 0 0 1 2.599-4.248\\\" fill=\\\"#FFFAC2\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 8.833 12.452)\\\"><mask id=\\\"SNSBNL2A-C\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-B\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-C)\\\" fill=\\\"url(#SNSBNL2A-D)\\\"><path d=\\\"M.004 3.703L5.181.008l-.383 6.357A10.632 10.632 0 0 1 .004 3.703\\\"><\/path><\/g><\/g><path d=\\\"M8.838 8.75l5.177 3.694-.159-.286-4.913-3.507c-.036.031-.07.065-.105.098M13.491 6.123l.366 6.036.158.285-.385-6.357c-.046.013-.093.024-.139.036\\\" fill=\\\"#EF4130\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 8.833 8.822)\\\"><mask id=\\\"SNSBNL2A-F\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-E\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-F)\\\" fill=\\\"url(#SNSBNL2A-G)\\\"><path d=\\\"M.004.073l.339-.07A10.33 10.33 0 0 0 4.674 2.41l.124.326A10.633 10.633 0 0 1 .003.073\\\"><\/path><\/g><\/g><g transform=\\\"matrix(1 0 0 -1 13.621 12.452)\\\"><mask id=\\\"SNSBNL2A-I\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-H\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-I)\\\" fill=\\\"url(#SNSBNL2A-J)\\\"><path d=\\\"M.01 6.367L.392.012l5.096 6.256a10.546 10.546 0 0 1-5.478.098\\\"><\/path><\/g><\/g><path d=\\\"M13.631 6.088l.383 6.356.12-.37-.364-6.02a9.996 9.996 0 0 0-.139.034\\\" fill=\\\"#17479E\\\"><\/path><path d=\\\"M19.11 6.186l-.15-.042-4.827 5.93-.118.37 5.094-6.258\\\" fill=\\\"#2E3092\\\"><\/path><path d=\\\"M8.577 23.749a10.531 10.531 0 0 0 4.697 2.827l-1.01-8.014\\\" fill=\\\"#293896\\\"><\/path><path d=\\\"M13.274 26.575l-1.01-8.013-.094.378.95 7.59c.051.016.103.03.154.045\\\" fill=\\\"#1F2879\\\"><\/path><path d=\\\"M8.676 23.852l3.494-4.913.094-.377-3.687 5.187.099.103\\\" fill=\\\"#595DA9\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 8.567 26.578)\\\"><mask id=\\\"SNSBNL2A-L\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-K\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-L)\\\" fill=\\\"url(#SNSBNL2A-M)\\\"><path d=\\\"M.01 2.828A10.543 10.543 0 0 1 4.708.002l-.192.354A10.234 10.234 0 0 0 .276 2.96\\\"><\/path><\/g><\/g><g transform=\\\"matrix(1 0 0 -1 5.913 23.75)\\\"><mask id=\\\"SNSBNL2A-O\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-N\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-O)\\\" fill=\\\"url(#SNSBNL2A-P)\\\"><path d=\\\"M.007 4.802a10.648 10.648 0 0 1 2.657-4.8l3.687 5.186\\\"><\/path><\/g><\/g><path d=\\\"M8.576 23.749l3.688-5.187-.286.16-3.5 4.922.098.105\\\" fill=\\\"#A5A3D1\\\"><\/path><path d=\\\"M5.956 19.086l6.022-.365.286-.159-6.345.384.037.14\\\" fill=\\\"#D1D0E9\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 5.913 23.764)\\\"><mask id=\\\"SNSBNL2A-R\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-Q\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-R)\\\" fill=\\\"url(#SNSBNL2A-S)\\\"><path d=\\\"M.007 4.816A10.66 10.66 0 0 1 2.664.014l.068.34A10.386 10.386 0 0 0 .33 4.694l-.323.122\\\"><\/path><\/g><\/g><path d=\\\"M12.264 18.562l-6.345.385a10.584 10.584 0 0 1 .098-5.49\\\" fill=\\\"#EF4130\\\"><\/path><path d=\\\"M5.92 18.946l6.344-.384-.37-.118-6.008.363.034.14\\\" fill=\\\"#CF381E\\\"><\/path>
20076<path d=\\\"M6.017 13.457l-.041.15 5.919 4.837.369.118-6.247-5.105\\\" fill=\\\"#F37557\\\"><\/path><path d=\\\"M6.216 13.801a10.293 10.293 0 0 0-.044 4.987l-.252.159a10.582 10.582 0 0 1 .096-5.49\\\" fill=\\\"#F37557\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 18.368 24.017)\\\"><mask id=\\\"SNSBNL2A-U\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-T\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-U)\\\" fill=\\\"url(#SNSBNL2A-V)\\\"><path d=\\\"M.002 3.701L5.18.006a10.547 10.547 0 0 1 2.82 4.708h-.002\\\"><\/path><\/g><\/g><path d=\\\"M26.367 19.304l-7.998 1.012.377.095 7.576-.952.045-.155\\\" fill=\\\"#7574B6\\\"><\/path><path d=\\\"M23.648 23.91l-4.902-3.5-.377-.094 5.177 3.695.102-.1\\\" fill=\\\"#C7C6E3\\\"><\/path><path d=\\\"M23.546 24.011a10.552 10.552 0 0 0 2.82-4.707l-.351.193a10.27 10.27 0 0 1-2.6 4.248\\\" fill=\\\"#6264AD\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 18.368 26.676)\\\"><mask id=\\\"SNSBNL2A-X\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-W\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-X)\\\" fill=\\\"url(#SNSBNL2A-Y)\\\"><path d=\\\"M.002 6.36L.385.003A10.63 10.63 0 0 1 5.18 2.665L.002 6.36\\\"><\/path><\/g><\/g><path d=\\\"M23.546 24.011l-5.177-3.695.16.286 4.913 3.509c.035-.032.07-.067.104-.1\\\" fill=\\\"#EF4130\\\"><\/path><path d=\\\"M18.893 26.637l-.365-6.035-.159-.286.384 6.357c.047-.011.093-.024.14-.036\\\" fill=\\\"#EF4130\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 18.747 26.676)\\\"><mask id=\\\"SNSBNL2A-aa\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-Z\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-aa)\\\" fill=\\\"url(#SNSBNL2A-ab)\\\"><path d=\\\"M.13.328L.006.004c1.801.45 3.457 1.371 4.794 2.66l-.34.07A10.336 10.336 0 0 0 .13.328\\\"><\/path><\/g><\/g><g transform=\\\"matrix(1 0 0 -1 13.27 27)\\\"><mask id=\\\"SNSBNL2A-ad\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-ac\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-ad)\\\" fill=\\\"url(#SNSBNL2A-ae)\\\"><path d=\\\"M.004.424A10.53 10.53 0 0 1 5.483.327l-.384 6.357\\\"><\/path><\/g><\/g><path d=\\\"M18.753 26.673l-.383-6.357-.12.37.364 6.02.139-.033\\\" fill=\\\"#F8ABA6\\\"><\/path><path d=\\\"M13.274 26.575l.15.043 4.826-5.931.12-.371\\\" fill=\\\"#FCD3CE\\\"><\/path><g transform=\\\"matrix(1 0 0 -1 13.27 27)\\\"><mask id=\\\"SNSBNL2A-ag\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#SNSBNL2A-af\\\"><\/use><\/mask><g mask=\\\"url(#SNSBNL2A-ag)\\\" fill=\\\"url(#SNSBNL2A-ah)\\\"><path d=\\\"M.004.424A10.528 10.528 0 0 1 5.483.327l-.159.252A10.219 10.219 0 0 0 .349.624\\\"><\/path><\/g><\/g><\/g><\/svg>\\n\t\t\t\t\t<span>SNS<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-TRIONL2U\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"TRIONL2U\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-TRIONL2U\\\">\\n\t\t\t\t\t<svg xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 32 32\\\"><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" transform=\\\"matrix(1 0 0 -1 0 32)\\\"><rect width=\\\"32\\\" height=\\\"32\\\" fill=\\\"#00927B\\\" rx=\\\"8\\\"><\/rect><path fill=\\\"#FFF\\\" d=\\\"M26.064 15.5c0 2.93-1.252 5.763-2.914 7.443-1.06 1.056-2.022 1.704-3.444 2.33l-.145-.264a9.518 9.518 0 0 0 1.88-1.49c1.853-1.776 3.083-4.85 3.083-7.371 0-.384 0-1.152-.049-1.704-.216 1.08-.892 2.232-1.83 3.17-.266.264-.65.672-.94.816 0-.552-.216-1.826-.481-2.57.361-.288.554-.504.89-.816.771-.792 1.277-1.801 1.277-2.641 0-.48-.217-.984-.602-1.368-.385-.384-1.18-.672-1.974-.672-.94 0-2.337.504-3.06 1.032 1.47 1.488 2.36 3.097 2.915 5.113.241.866.361 1.73.361 2.594 0 1.56-.385 3.049-1.06 4.225-1.084 1.874-2.72 2.93-4.865 2.93-2.553 0-4.936-1.248-6.72-3.05-2.045-2.064-3.058-4.585-3.058-7.179 0-.456.024-.888.096-1.392h.29c.025.768.121 1.488.338 2.376.409 1.61 1.516 3.386 2.913 4.779 1.012 1.008 2.505 1.992 3.54 2.4-.795-.648-1.565-1.848-1.95-3.193-.096-.36-.193-.84-.193-1.176.482.288 1.685.72 2.456.84.168 1.105.58 2.329 1.398 3.145.409.408.89.672 1.492.672.915 0 1.639-.672 2.096-1.44.457-.792.746-2.21.626-3.17a10.626 10.626 0 0 1-2.939.433c-.962 0-1.925-.144-2.962-.432-1.685-.456-3.227-1.32-4.335-2.424-1.18-1.178-2.094-2.81-2.094-4.491 0-1.752.89-3.218 2.07-4.418 1.976-1.968 4.792-2.977 7.562-2.977 2.24 0 4.239.769 6.046 2.089l-.145.24c-1.446-.792-2.962-1.176-4.672-1.176-2.577 0-5.034.792-6.936 2.232a5.793 5.793 0 0 1 1.71-.288c.842 0 2.384.24 3.13.696-.529.312-1.492 1.082-1.999 1.682-.722-.288-1.613-.504-2.407-.504-.747 0-1.567.168-2.096.72-.313.36-.506.816-.506 1.296 0 1.008.554 1.849 1.228 2.545.483.504 1.133.96 1.638 1.2.554-2.04 1.493-3.673 2.963-5.137 1.83-1.802 4.214-2.81 6.309-2.81 1.59-.024 2.938.432 4.07 1.56 1.205 1.226 2 3.386 2 5.595m-7.948 1.68c-.506-1.56-1.446-2.976-2.577-4.081-1.108 1.177-1.854 2.713-2.24 4.249.65.146 1.325.218 1.999.218.963 0 1.903-.144 2.818-.386\\\"><\/path><\/g><\/svg>\\n\t\t\t\t\t<span>Triodos Bank<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"payment-method-issuer-ideal-FVLBNL22\\\" class=\\\"ui-radio\\\" name=\\\"payment-method-issuer-ideal\\\" value=\\\"FVLBNL22\\\" type=\\\"radio\\\"><label for=\\\"payment-method-issuer-ideal-FVLBNL22\\\">\\n\t\t\t\t\t<svg width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 32 32\\\" xmlns=\\\"http:\/\/www.w3.org\/2000\/svg\\\" xmlns:xlink=\\\"http:\/\/www.w3.org\/1999\/xlink\\\"><defs><rect id=\\\"FVLBNL22-a\\\" x=\\\"0\\\" y=\\\"0\\\" width=\\\"32\\\" height=\\\"32\\\" rx=\\\"8\\\"><\/rect><\/defs><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><mask id=\\\"FVLBNL22-b\\\" fill=\\\"#fff\\\"><use xlink:href=\\\"#FVLBNL22-a\\\"><\/use><\/mask><use fill=\\\"#8ACE00\\\" xlink:href=\\\"#FVLBNL22-a\\\"><\/use><g mask=\\\"url(#FVLBNL22-b)\\\" fill=\\\"#FFF\\\"><path d=\\\"M16.948 14.202v.735h.736v-.735h.995v1.33h-5.12v-1.33h.981v.735h.736v-.735M15.798 13.936v-.02a.255.255 0 0 0-.143-.232c-.166-.09-1.065-.694-1.229-1.545-.09-.449-.086-.835.093-1.064.055-.07.155-.184.155-.234-.002-.11-.173-.432-.214-.652-.028-.194-.048-.527.114-.71.16-.179.305-.156.25-.332-.041-.13-.132-.342-.132-.647 0-.198.044-.527.278-.599.186-.054.234-.094.247-.128.013-.033 0-.52.035-.738.031-.187.139-.753.65-.809l.082-.007.084.007c.51.056.62.622.65.809.035.218.02.705.035.738.014.034.06.074.246.128.234.072.281.4.281.599 0 .305-.091.517-.134.647-.055.176.09.153.25.333.161.182.145.515.113.71-.04.22-.21.541-.215.651 0 .05.102.164.156.234.18.229.183.615.095 1.064-.164.851-1.066 1.454-1.23 1.545a.256.256 0 0 0-.143.232v.02M15.985 16.33h2.141l.284-.532h-4.85l.284.532M15.986 21.918h2.949l.552 3.726H17.21l-.342-1.61s-.11-.474-.882-.474c-.771 0-.88.474-.88.474l-.345 1.61h-2.279l.552-3.726h2.952M18.679 21.652l-.243-.532H13.53l-.24.532M11.134 
2007612.605l.08.004c.512.058.619.659.648.859.039.223.027.738.039.769.013.035.063.08.247.138.23.073.279.419.279.63 0 .32-.088.545-.13.673-.057.19.088.165.243.357.166.189.15.54.116.743-.037.23-.212.574-.216.684 0 .052.1.17.158.241.18.248.188.656.096 1.125-.17.897-1.035 1.526-1.206 1.626-.124.073-.112.254-.112.312v3.547h-.482v-3.547c0-.058.013-.239-.112-.312-.17-.1-1.035-.729-1.206-1.626-.09-.469-.086-.877.098-1.125.054-.07.156-.19.155-.241-.006-.11-.179-.454-.217-.684-.03-.203-.049-.554.116-.743.157-.192.304-.167.242-.357-.037-.128-.127-.354-.127-.672 0-.212.05-.558.28-.63.185-.06.233-.104.245-.14.014-.03 0-.545.038-.768.028-.2.138-.8.65-.859M20.834 12.605l-.08.004c-.512.058-.618.659-.648.859-.04.223-.025.738-.04.769-.011.035-.059.08-.241.138-.235.073-.28.419-.28.63 0 .32.086.545.124.673.062.19-.084.165-.244.357-.162.189-.143.54-.113.743.038.23.21.574.217.684 0 .052-.104.17-.156.241-.181.248-.19.656-.097 1.125.17.897 1.035 1.526 1.207 1.626.122.073.107.254.107.312v3.547h.487v-3.547c0-.058-.014-.239.109-.312.172-.1 1.038-.729 1.208-1.626.091-.469.083-.877-.099-1.125-.054-.07-.156-.19-.156-.241.005-.11.179-.454.216-.684.031-.203.052-.554-.114-.743-.158-.192-.303-.167-.243-.357.041-.128.128-.354.128-.672 0-.212-.049-.558-.28-.63-.182-.06-.233-.104-.245-.14-.014-.03 0-.545-.038-.768-.031-.2-.137-.8-.65-.859M17.623 19.242h-.691v-1.318h.691v1.318zm-2.316 0h-.691v-1.318h.691v1.318zm2.713-2.645h-3.8l-.39 4.257h4.58l-.39-4.257z\\\"><\/path><path d=\\\"M16.948 14.202v.735h.736v-.735h.995v1.33h-5.12v-1.33h.981v.735h.736v-.735M15.798 13.936v-.02a.255.255 0 0 0-.143-.232c-.166-.09-1.065-.694-1.229-1.545-.09-.449-.086-.835.093-1.064.055-.07.155-.184.155-.234-.002-.11-.173-.432-.214-.652-.028-.194-.048-.527.114-.71.16-.179.305-.156.25-.332-.041-.13-.132-.342-.132-.647 0-.198.044-.527.278-.599.186-.054.234-.094.247-.128.013-.033 0-.52.035-.738.031-.187.139-.753.65-.809l.082-.007.084.007c.51.056.62.622.65.809.035.218.02.705.035.738.014.034.06.074.246.128.234.072.281.4.281.599 0 .305-.091.517-.134.647-.055.176.09.153.25.333.161.182.145.515.113.71-.04.22-.21.541-.215.651 0 .05.102.164.156.234.18.229.183.615.095 1.064-.164.851-1.066 1.454-1.23 1.545a.256.256 0 0 0-.143.232v.02M15.985 16.33h2.141l.284-.532h-4.85l.284.532M15.986 21.918h2.949l.552 3.726H17.21l-.342-1.61s-.11-.474-.882-.474c-.771 0-.88.474-.88.474l-.345 1.61h-2.279l.552-3.726h2.952M18.679 21.652l-.243-.532H13.53l-.24.532M11.134 12.605l.08.004c.512.058.619.659.648.859.039.223.027.738.039.769.013.035.063.08.247.138.23.073.279.419.279.63 0 .32-.088.545-.13.673-.057.19.088.165.243.357.166.189.15.54.116.743-.037.23-.212.574-.216.684 0 .052.1.17.158.241.18.248.188.656.096 1.125-.17.897-1.035 1.526-1.206 1.626-.124.073-.112.254-.112.312v3.547h-.482v-3.547c0-.058.013-.239-.112-.312-.17-.1-1.035-.729-1.206-1.626-.09-.469-.086-.877.098-1.125.054-.07.156-.19.155-.241-.006-.11-.179-.454-.217-.684-.03-.203-.049-.554.116-.743.157-.192.304-.167.242-.357-.037-.128-.127-.354-.127-.672 0-.212.05-.558.28-.63.185-.06.233-.104.245-.14.014-.03 0-.545.038-.768.028-.2.138-.8.65-.859M20.834 12.605l-.08.004c-.512.058-.618.659-.648.859-.04.223-.025.738-.04.769-.011.035-.059.08-.241.138-.235.073-.28.419-.28.63 0 .32.086.545.124.673.062.19-.084.165-.244.357-.162.189-.143.54-.113.743.038.23.21.574.217.684 0 .052-.104.17-.156.241-.181.248-.19.656-.097 1.125.17.897 1.035 1.526 1.207 1.626.122.073.107.254.107.312v3.547h.487v-3.547c0-.058-.014-.239.109-.312.172-.1 1.038-.729 1.208-1.626.091-.469.083-.877-.099-1.125-.054-.07-.156-.19-.156-.241.005-.11.179-.454.216-.684.031-.203.052-.554-.114-.743-.158-.192-.303-.167-.243-.357.041-.128.128-.354.128-.672 0-.212-.049-.558-.28-.63-.182-.06-.233-.104-.245-.14-.014-.03 0-.545-.038-.768-.031-.2-.137-.8-.65-.859M17.623 19.242h-.691v-1.318h.691v1.318zm-2.316 0h-.691v-1.318h.691v1.318zm2.713-2.645h-3.8l-.39 4.257h4.58l-.39-4.257z\\\"><\/path><\/g><\/g><\/svg>\\n\t\t\t\t\t<span>Van Lanschot<\/span>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t\t\\n\t\t<p class=\\\"fineprint\\\">Payments are securely processed using\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.paymentProvider : depth0),\"buckaroo\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(72, data, 0),\"inverse\":container.program(74, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\tNo payment details will be stored by us.\\n\t\t<\/p>\\n\t\t\\n\t\t<div class=\\\"actions\\\">\\n\t\t\t<button class=\\\"ui-button\\\" data-action=\\\"back\\\"><div><i class=\\\"fas fa-angle-left\\\"><\/i> Back<\/div><\/button>\\n\t\t\t<button class=\\\"ui-button special \"\n    + container.escapeExpression(((helper = (helper = helpers.buttonPayClasses || (depth0 != null ? depth0.buttonPayClasses : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"buttonPayClasses\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-action=\\\"submit\\\"><div>Continue to payment <i class=\\\"fas fa-angle-right\\\"><\/i><\/div><\/button>\\n\t\t\t\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}","base-destinations":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t<a href=\\\"https:\/\/www.buckaroo.nl\/\\\">Buckaroo<\/a>.\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t<a href=\\\"https:\/\/www.mollie.com\/\\\">Mollie<\/a>.\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t<button class=\\\"ui-button special\\\" data-action=\\\"submit\\\"><div>Continue <i class=\\\"fa fa-angle-right\\\"><\/i><\/div><\/button>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t<button class=\\\"ui-button special\\\" data-action=\\\"submit\\\"><div>Continue to payment <i class=\\\"fa fa-angle-right\\\"><\/i><\/div><\/button>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<div class=\\\"form donation-form\\\" data-frequency=\\\"single\\\">\\n\\n\t\t<p>I want to \"\n    + container.escapeExpression(((helper = (helper = helpers.donateVerb || (depth0 != null ? depth0.donateVerb : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"donateVerb\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/p>\\n\t\t\\n\t\t<div class=\\\"frequency\\\">\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"frequency-input-single\\\" class=\\\"ui-radio\\\" name=\\\"frequency\\\" value=\\\"single\\\" type=\\\"radio\\\" checked=\\\"checked\\\"><label for=\\\"frequency-input-single\\\">One time<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"frequency-input-monthly\\\" class=\\\"ui-radio\\\" name=\\\"frequency\\\" value=\\\"monthly\\\" type=\\\"radio\\\"><label for=\\\"frequency-input-monthly\\\">Monthly<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"frequency-input-quarterly\\\" class=\\\"ui-radio\\\" name=\\\"frequency\\\" value=\\\"quarterly\\\" type=\\\"radio\\\"><label for=\\\"frequency-input-quarterly\\\">Quarterly<\/label>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t<input id=\\\"frequency-input-yearly\\\" class=\\\"ui-radio\\\" name=\\\"frequency\\\" value=\\\"yearly\\\" type=\\\"radio\\\"><label for=\\\"frequency-input-yearly\\\">Yearly<\/label>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\\n\t\t<p>Choose an amount<\/p>\\n\t\t\\n\t\t<div class=\\\"amount\\\" data-frequency=\\\"single\\\">\\n\\n\t\t\t<div class=\\\"amount-frequency single\\\">\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-single-15\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"15\\\" type=\\\"radio\\\" checked=\\\"checked\\\"><label for=\\\"amount-input-single-15\\\">&euro; 15,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-single-25\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"25\\\" type=\\\"radio\\\"><label for=\\\"amount-input-single-25\\\">&euro; 25,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-single-40\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"40\\\" type=\\\"radio\\\"><label for=\\\"amount-input-single-40\\\">&euro; 40,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item mobile\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-single-90\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"90\\\" type=\\\"radio\\\"><label for=\\\"amount-input-single-90\\\">&euro; 90,-<\/label>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\\n\t\t\t<div class=\\\"amount-frequency monthly\\\">\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-monthly-5\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"5\\\" type=\\\"radio\\\"><label for=\\\"amount-input-monthly-5\\\">&euro; 5,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-monthly-10\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"10\\\" type=\\\"radio\\\"><label for=\\\"amount-input-monthly-10\\\">&euro; 10,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-monthly-25\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"25\\\" type=\\\"radio\\\"><label for=\\\"amount-input-monthly-25\\\">&euro; 25,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item mobile\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-monthly-40\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"40\\\" type=\\\"radio\\\"><label for=\\\"amount-input-monthly-0\\\">&euro; 40,-<\/label>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\\n\t\t\t<div class=\\\"amount-frequency quarterly\\\">\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-quarterly-20\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"20\\\" type=\\\"radio\\\"><label for=\\\"amount-input-quarterly-20\\\">&euro; 20,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-quarterly-40\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"40\\\" type=\\\"radio\\\"><label for=\\\"amount-input-quarterly-40\\\">&euro; 40,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-quarterly-100\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"100\\\" type=\\\"radio\\\"><label for=\\\"amount-input-quarterly-100\\\">&euro; 100,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item mobile\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-quarterly-180\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"180\\\" type=\\\"radio\\\"><label for=\\\"amount-input-quarterly-180\\\">&euro; 180,-<\/label>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\\n\t\t\t<div class=\\\"amount-frequency yearly\\\">\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-yearly-60\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"60\\\" type=\\\"radio\\\"><label for=\\\"amount-input-yearly-60\\\">&euro; 60,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-yearly-120\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"120\\\" type=\\\"radio\\\"><label for=\\\"amount-input-yearly-120\\\">&euro; 120,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-yearly-300\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"300\\\" type=\\\"radio\\\"><label for=\\\"amount-input-yearly-300\\\">&euro; 300,-<\/label>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"item mobile\\\">\\n\t\t\t\t\t<input id=\\\"amount-input-yearly-500\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"500\\\" type=\\\"radio\\\"><label for=\\\"amount-input-yearly-500\\\">&euro; 500,-<\/label>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\\n\t\t\t<div class=\\\"item amount-custom\\\">\\n\t\t\t\t<input id=\\\"amount-input-custom\\\" class=\\\"ui-radio\\\" name=\\\"amount\\\" value=\\\"custom\\\" type=\\\"radio\\\"><label for=\\\"amount-input-custom\\\">Other<div class=\\\"selected-input\\\"> &euro; <input style=\\\"display: hidden;\\\" type=\\\"text\\\" name=\\\"amountCustom\\\" \/><\/div><\/label>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t\t\\n\t\t<div class=\\\"user-info non-anonymous\\\">\\n\\n\t\t\t<div class=\\\"fieldset\\\">\\n\t\t\t\t<div class=\\\"field\\\" data-field=\\\"email\\\">\\n\t\t\t\t\t<div class=\\\"label\\\">Email *<\/div>\\n\t\t\t\t\t<div class=\\\"input\\\"><input maxlength=\\\"100\\\" name=\\\"email\\\" value=\\\"\\\" type=\\\"text\\\"><div class=\\\"feedback left \\\"><\/div><\/div>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<!--<div class=\\\"field\\\" data-field=\\\"organization\\\">\\n\t\t\t\t\t<div class=\\\"label\\\">Organisation<\/div>\\n\t\t\t\t\t<div class=\\\"input\\\"><input placeholder=\\\" - Optional - \\\" maxlength=\\\"100\\\" name=\\\"organization\\\" value=\\\"\\\" type=\\\"text\\\"><div class=\\\"feedback left\\\"><\/div><\/div>\\n\t\t\t\t<\/div>-->\\n\\n\t\t\t\t<div class=\\\"field\\\" data-field=\\\"destination\\\">\\n\t\t\t\t\t<div class=\\\"label\\\">I want to help with<\/div>\\n\t\t\t\t\t<div class=\\\"input\\\">\\n\t\t\t\t\t\t<select name=\\\"destination\\\">\\n\t\t\t\t\t\t\t<option value=\\\"not-specified\\\"> - No particular project -<\/option>\\n\t\t\t\t\t\t\t<option value=\\\"solar-sustainability\\\">Solar & Sustainability<\/option>\\n\t\t\t\t\t\t<\/select>\\n\t\t\t\t\t\t\\n\t\t\t\t\t\t<input placeholder=\\\" - Optional - \\\" type=\\\"text\\\" name=\\\"comment\\\" maxlength=\\\"300\\\" \/>\\n\t\t\t\t\t\t<div class=\\\"feedback left\\\"><\/div><\/div>\\n\t\t\t\t<\/div>\\n\\n\t\t\t\t<div class=\\\"field\\\" data-field=\\\"comment\\\">\\n\t\t\t\t\t<div class=\\\"label\\\">Remarks<\/div>\\n\t\t\t\t\t<div class=\\\"input\\\">\\n\t\t\t\t\t\t<input placeholder=\\\" - Optional - \\\" type=\\\"text\\\" name=\\\"comment\\\" maxlength=\\\"300\\\" \/>\\n\t\t\t\t\t\t<div class=\\\"feedback left\\\"><\/div><\/div>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\\n\t\t<\/div>\\n\t\t\\n\t\tProvider: \"\n    + container.escapeExpression(((helper = (helper = helpers.paymentProvider || (depth0 != null ? depth0.paymentProvider : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"paymentProvider\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\n\t\t\\n\t\t<p class=\\\"fineprint\\\">Payments are securely processed using\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.paymentProvider : depth0),\"buckaroo\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\\n\t\tNo payment details will be stored by us.<\/p>\\n\t\t\\n\t\t<div class=\\\"actions\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.paymentProvider : depth0),\"buckaroo\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.program(7, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<\/div>\\n\t\t\\n\t<\/div>\\n\t\\n\t<div class=\\\"form payment-method-form\\\">\\n\t\t\\n\t\t<div class=\\\"actions\\\">\\n\t\t\t\\n\t\t\t<button class=\\\"ui-button special\\\" data-action=\\\"submit\\\"><div>Pay now <i class=\\\"fa fa-angle-right\\\"><\/i><\/div><\/button>\\n\t\t\t\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}"},"form":{"base-default-thanks":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<h1>\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/h1>\\n\t<p>\"\n    + container.escapeExpression(((helper = (helper = helpers.text || (depth0 != null ? depth0.text : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"text\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/p>\\n<\/div>\";\n},\"useData\":true}","base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \" labels-as-placeholder\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \" show-labels-on-input\";\n},\"5\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"\t<div class=\\\"section panel\\\" data-panel-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t<\"\n    + container.escapeExpression(container.lambda(((stack1 = (data && data.root)) && stack1.panelTags), depth0))\n    + \">\"\n    + container.escapeExpression(((helper = (helper = helpers.label || (depth0 != null ? depth0.label : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"label\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/\"\n    + container.escapeExpression(container.lambda(((stack1 = (data && data.root)) && stack1.panelTags), depth0))\n    + \">\\n\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.description : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t<div class=\\\"fields\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.fields : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(8, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<\/div>\\n\t<\/div>\\n\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<p class=\\\"description\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/p>\";\n},\"8\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"\t\t<div class=\\\"field type-\"\n    + container.escapeExpression(((helper = (helper = helpers.type || (depth0 != null ? depth0.type : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"type\",\"hash\":{},\"data\":data}) : helper)))\n    + \" empty\\\" data-field-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t<div class=\\\"main\\\">\\n\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.label : depth0),(depths[1] != null ? depths[1].label : depths[1]),{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(9, data, 0, blockParams, depths),\"inverse\":container.program(11, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\\n\t\t\t<div class=\\\"input\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"text\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(14, data, 0, blockParams, depths),\"inverse\":container.program(17, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t\t<\/div>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.comment : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(48, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<div class=\\\"error\\\">\\n\t\t\t\tError message\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n    return \"\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"check\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.program(12, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"12\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t\t<div class=\\\"label\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.label || (depth0 != null ? depth0.label : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"label\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\";\n},\"14\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t<input type=\\\"text\\\" name=\\\"field-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (data && data.root)) && stack1.labelsAsPlaceHolder),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" \/>\\n\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"placeholder=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.label || (depth0 != null ? depth0.label : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"label\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"\";\n},\"17\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"email\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(18, data, 0, blockParams, depths),\"inverse\":container.program(20, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\");\n},\"18\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t<input type=\\\"email\\\" name=\\\"field-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},((stack1 = (data && data.root)) && stack1.labelsAsPlaceHolder),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" \/>\\n\";\n},\"20\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"textarea\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(21, data, 0, blockParams, depths),\"inverse\":container.program(23, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\");\n},\"21\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t<textarea name=\\\"field-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (data && data.root)) && stack1.labelsAsPlaceholder),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"><\/textarea>\\n\";\n},\"23\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"checklist\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(24, data, 0, blockParams, depths),\"inverse\":container.program(27, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\");\n},\"24\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.options : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(25, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"25\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var helper;\n\n  return \"\t\t\t\t\t<div><label><input type=\\\"checkbox\\\" name=\\\"field-\"\n    + container.escapeExpression(container.lambda((depths[1] != null ? depths[1].id : depths[1]), depth0))\n    + \"-options[]\\\" value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"\/><span>\"\n    + container.escapeExpression(((helper = (helper = helpers.label || (depth0 != null ? depth0.label : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"label\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/span><\/label><\/div>\\n\";\n},\"27\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"check\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(28, data, 0, blockParams, depths),\"inverse\":container.program(30, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\");\n},\"28\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t<label>\\n\t\t\t\t\t\t<div class=\\\"ui-checkbox no-ml\\\">\\n\t\t\t\t\t\t\t<input type=\\\"checkbox\\\" name=\\\"field-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"\/>\\n\t\t\t\t\t\t\t<span><i class=\\\"fas fa-check\\\"><\/i><\/span>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.label || (depth0 != null ? depth0.label : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"label\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\t<\/label>\\n\";\n},\"30\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"radio\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(31, data, 0, blockParams, depths),\"inverse\":container.program(34, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\");\n},\"31\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.options : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(32, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"32\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var helper;\n\n  return \"\t\t\t\t\t<label><input type=\\\"radio\\\" name=\\\"field-\"\n    + container.escapeExpression(container.lambda((depths[1] != null ? depths[1].id : depths[1]), depth0))\n    + \"\\\" value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"\/>\"\n    + container.escapeExpression(((helper = (helper = helpers.label || (depth0 != null ? depth0.label : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"label\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/label>\\n\";\n},\"34\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"select\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(35, data, 0, blockParams, depths),\"inverse\":container.program(42, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\");\n},\"35\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.settings : depth0)) != null ? stack1.type : stack1),\"radio\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(36, data, 0, blockParams, depths),\"inverse\":container.program(39, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\");\n},\"36\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.options : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(37, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"37\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var helper;\n\n  return \"\t\t\t\t\t\t<label><input type=\\\"radio\\\" name=\\\"field-\"\n    + container.escapeExpression(container.lambda((depths[1] != null ? depths[1].id : depths[1]), depth0))\n    + \"\\\" value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\"\n    + container.escapeExpression(((helper = (helper = helpers.label || (depth0 != null ? depth0.label : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"label\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/label>\\n\";\n},\"39\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t\t<select name=\\\"field-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},((stack1 = (data && data.root)) && stack1.labelsAsPlaceholder),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.options : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(40, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\t\t<\/select>\\n\";\n},\"40\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t\t\t\t<option value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.label || (depth0 != null ? depth0.label : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"label\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/option>\\n\";\n},\"42\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"date\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(43, data, 0),\"inverse\":container.program(45, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"43\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t<select name=\\\"field-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-day\\\">\\n\t\t\t\t\t<option value=\\\"\\\"> - Day - <\/option>\\n\t\t\t\t\t<option value=\\\"01\\\">1<\/option>\\n\t\t\t\t\t<option value=\\\"02\\\">2<\/option>\\n\t\t\t\t\t<option value=\\\"03\\\">3<\/option>\\n\t\t\t\t\t<option value=\\\"04\\\">4<\/option>\\n\t\t\t\t\t<option value=\\\"05\\\">5<\/option>\\n\t\t\t\t\t<option value=\\\"06\\\">6<\/option>\\n\t\t\t\t\t<option value=\\\"07\\\">7<\/option>\\n\t\t\t\t\t<option value=\\\"08\\\">8<\/option>\\n\t\t\t\t\t<option value=\\\"09\\\">9<\/option>\\n\t\t\t\t\t<option value=\\\"10\\\">10<\/option>\\n\t\t\t\t\t<option value=\\\"11\\\">11<\/option>\\n\t\t\t\t\t<option value=\\\"12\\\">12<\/option>\\n\t\t\t\t\t<option value=\\\"13\\\">13<\/option>\\n\t\t\t\t\t<option value=\\\"14\\\">14<\/option>\\n\t\t\t\t\t<option value=\\\"15\\\">15<\/option>\\n\t\t\t\t\t<option value=\\\"16\\\">16<\/option>\\n\t\t\t\t\t<option value=\\\"17\\\">17<\/option>\\n\t\t\t\t\t<option value=\\\"18\\\">18<\/option>\\n\t\t\t\t\t<option value=\\\"19\\\">19<\/option>\\n\t\t\t\t\t<option value=\\\"20\\\">20<\/option>\\n\t\t\t\t\t<option value=\\\"21\\\">21<\/option>\\n\t\t\t\t\t<option value=\\\"22\\\">22<\/option>\\n\t\t\t\t\t<option value=\\\"23\\\">23<\/option>\\n\t\t\t\t\t<option value=\\\"24\\\">24<\/option>\\n\t\t\t\t\t<option value=\\\"25\\\">25<\/option>\\n\t\t\t\t\t<option value=\\\"26\\\">26<\/option>\\n\t\t\t\t\t<option value=\\\"27\\\">27<\/option>\\n\t\t\t\t\t<option value=\\\"28\\\">28<\/option>\\n\t\t\t\t\t<option value=\\\"29\\\">29<\/option>\\n\t\t\t\t\t<option value=\\\"30\\\">30<\/option>\\n\t\t\t\t\t<option value=\\\"31\\\">31<\/option>\\n\t\t\t\t<\/select>\\n\t\t\t\t<select name=\\\"field-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-month\\\">\\n\t\t\t\t\t<option value=\\\"\\\"> - Month - <\/option>\\n\t\t\t\t\t<option value=\\\"01\\\">January<\/option>\\n\t\t\t\t\t<option value=\\\"02\\\">February<\/option>\\n\t\t\t\t\t<option value=\\\"03\\\">March<\/option>\\n\t\t\t\t\t<option value=\\\"04\\\">April<\/option>\\n\t\t\t\t\t<option value=\\\"05\\\">May<\/option>\\n\t\t\t\t\t<option value=\\\"06\\\">June<\/option>\\n\t\t\t\t\t<option value=\\\"07\\\">July<\/option>\\n\t\t\t\t\t<option value=\\\"08\\\">August<\/option>\\n\t\t\t\t\t<option value=\\\"09\\\">September<\/option>\\n\t\t\t\t\t<option value=\\\"10\\\">October<\/option>\\n\t\t\t\t\t<option value=\\\"11\\\">November<\/option>\\n\t\t\t\t\t<option value=\\\"12\\\">December<\/option>\\n\t\t\t\t<\/select>\\n\t\t\t\t<select name=\\\"field-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-year\\\">\\n\t\t\t\t\t<option value=\\\"\\\"> - Year - <\/option>\\n\t\t\t\t\t\"\n    + ((stack1 = (helpers.generateYearOptions || (depth0 && depth0.generateYearOptions) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.settings : depth0),{\"name\":\"generateYearOptions\",\"hash\":{},\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t<\/select>\\n\";\n},\"45\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"country\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(46, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"46\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t<select name=\\\"field-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t\t\t<option value=\\\"\\\"> - Country - <\/option>\\n\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.generateCountryOptions || (depth0 != null ? depth0.generateCountryOptions : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"generateCountryOptions\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t<\/select>\\n\t\t\t\t\";\n},\"48\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t<div class=\\\"comment\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.comment || (depth0 != null ? depth0.comment : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"comment\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\";\n},\"50\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.submitButtonClass || (depth0 != null ? depth0.submitButtonClass : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"submitButtonClass\",\"hash\":{},\"data\":data}) : helper)));\n},\"52\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.submitButtonText || (depth0 != null ? depth0.submitButtonText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"submitButtonText\",\"hash\":{},\"data\":data}) : helper)));\n},\"54\":function(container,depth0,helpers,partials,data) {\n    return \"Submit form\";\n},\"56\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<i class=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.submitButtonIcon || (depth0 != null ? depth0.submitButtonIcon : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"submitButtonIcon\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/i>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default style-\"\n    + container.escapeExpression(((helper = (helper = helpers.inputStyle || (depth0 != null ? depth0.inputStyle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"inputStyle\",\"hash\":{},\"data\":data}) : helper)))\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.labelsAsPlaceHolder : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.showLabelsOnInput : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" data-form-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.panels : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(5, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<div class=\\\"actions\\\">\\n\t\t<button class=\\\"ui-button special form-submit \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (data && data.root)) && stack1.submitButtonClass),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(50, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" data-action=\\\"submit\\\"><div>\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.submitButtonText : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(52, data, 0, blockParams, depths),\"inverse\":container.program(54, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (data && data.root)) && stack1.submitButtonIcon),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(56, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/div><\/button>\\n\t<\/div>\\n<\/div>\\n<div class=\\\"thanks-cms-fragments\\\"><\/div>\";\n},\"useData\":true,\"useDepths\":true}"},"heading":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.fontCssVars || (depth0 != null ? depth0.fontCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"fontCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"align-\"\n    + container.escapeExpression(((helper = (helper = helpers.alignText || (depth0 != null ? depth0.alignText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"alignText\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.editable : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.editable : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    return \"mfe-editable \";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    return \"data-editable-setting=\\\"text\\\"\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<a class=\\\"align-\"\n    + container.escapeExpression(((helper = (helper = helpers.alignText || (depth0 != null ? depth0.alignText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"alignText\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.editable : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.editable : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkUrl || (depth0 != null ? depth0.linkUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.fontCssVars || (depth0 != null ? depth0.fontCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"fontCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    return \"mfe-editable\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.asHtml || (depth0 && depth0.asHtml) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.text : depth0),{\"name\":\"asHtml\",\"hash\":{},\"data\":data})) != null ? stack1 : \"\");\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.text || (depth0 != null ? depth0.text : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"text\",\"hash\":{},\"data\":data}) : helper)));\n},\"13\":function(container,depth0,helpers,partials,data) {\n    return \"<\/a>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<\"\n    + container.escapeExpression(((helper = (helper = helpers.headingType || (depth0 != null ? depth0.headingType : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"headingType\",\"hash\":{},\"data\":data}) : helper)))\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkUrl : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \">\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isAllowHtmlEnabled : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.program(11, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n<\/\"\n    + container.escapeExpression(((helper = (helper = helpers.headingType || (depth0 != null ? depth0.headingType : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"headingType\",\"hash\":{},\"data\":data}) : helper)))\n    + \"> \";\n},\"useData\":true}"},"hero-intro":{"base-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    return \"<h1>Ohai!<\/h1> \";\n},\"useData\":true}"},"image":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"background-image\\\" style=\\\"background-image: url(\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \");\\\">\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkUrl || (depth0 != null ? depth0.linkUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<img class=\\\"\"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.coverLayout : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" src=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    return \"cover-layout\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    return \"<\/a>\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    return \"<\/div>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.asBackgroundImage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\\n\"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.asBackgroundImage : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.asBackgroundImage : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\";\n},\"useData\":true}"},"info-block":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<h2 style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.titleFontCssVars || (depth0 != null ? depth0.titleFontCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"titleFontCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"mfe-editable\\\"><span class=\\\"inner\\\">\"\n    + ((stack1 = ((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/span><\/h2>\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.textFontCssVars || (depth0 != null ? depth0.textFontCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"textFontCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"text mfe-editable\\\">\"\n    + ((stack1 = ((helper = (helper = helpers.text || (depth0 != null ? depth0.text : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"text\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/div>\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<h3 style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.subtitleFontCssVars || (depth0 != null ? depth0.subtitleFontCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {}
20076,{\"name\":\"subtitleFontCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"mfe-editable\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.subtitle || (depth0 != null ? depth0.subtitle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"subtitle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/h3>\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<a class=\\\"link\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkTextFontCssVars || (depth0 != null ? depth0.linkTextFontCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkTextFontCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkUrl || (depth0 != null ? depth0.linkUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><span>\"\n    + container.escapeExpression(((helper = (helper = helpers.linkText || (depth0 != null ? depth0.linkText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkText\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<i class=\\\"fas fa-chevron-right\\\"><\/i><\/span><\/a>\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<a class=\\\"link\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkTextFontCssVars || (depth0 != null ? depth0.linkTextFontCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkTextFontCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.link2Url || (depth0 != null ? depth0.link2Url : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"link2Url\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><span>\"\n    + container.escapeExpression(((helper = (helper = helpers.link2Text || (depth0 != null ? depth0.link2Text : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"link2Text\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<i class=\\\"fas fa-chevron-right\\\"><\/i><\/span><\/a>\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<a class=\\\"full-link\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkUrl || (depth0 != null ? depth0.linkUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/a>\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<img src=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"content base-default\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.title : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.text : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.subtitle : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkText : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.link2Text : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.fullLink : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n<\/div>\";\n},\"useData\":true}"},"intro":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<a href=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.link1 : depth0)) != null ? stack1.path : stack1), depth0))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.link1 : depth0)) != null ? stack1.text : stack1), depth0))\n    + \"<div class=\\\"icon\\\"><i class=\\\"fas fa-chevron-right\\\"><\/i><\/div><\/a>\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<a href=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.link2 : depth0)) != null ? stack1.path : stack1), depth0))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.link2 : depth0)) != null ? stack1.text : stack1), depth0))\n    + \"<div class=\\\"icon\\\"><i class=\\\"fas fa-chevron-right\\\"><\/i><\/div><\/a>\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<a href=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.link3 : depth0)) != null ? stack1.path : stack1), depth0))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.link3 : depth0)) != null ? stack1.text : stack1), depth0))\n    + \"<div class=\\\"icon\\\"><i class=\\\"fas fa-chevron-right\\\"><\/i><\/div><\/a>\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<a href=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.link4 : depth0)) != null ? stack1.path : stack1), depth0))\n    + \"\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.link4 : depth0)) != null ? stack1.text : stack1), depth0))\n    + \"<div class=\\\"icon\\\"><i class=\\\"fas fa-chevron-right\\\"><\/i><\/div><\/a>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"text\\\">\\n\t<h1>\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/h1>\\n\t<p>\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/p>\\n<\/div>\\n<div class=\\\"menu\\\">
20076\\n\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.link1 : depth0)) != null ? stack1.text : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.link2 : depth0)) != null ? stack1.text : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.link3 : depth0)) != null ? stack1.text : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.link4 : depth0)) != null ? stack1.text : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n<\/div>\";\n},\"useData\":true}"},"media-content":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"photo\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.media : depth0)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" \/>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<div class=\\\"media\\\">\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.source : depth0),\"mobypicture\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t<\/div>\\n<\/div>\";\n},\"useData\":true}"},"menu":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"item\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(2, data, 0, blockParams, depths),\"inverse\":container.program(15, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t<li class=\\\"item\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isSelected : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.icon : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.style : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\"><a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"url\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><span>
20076\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.icon : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.title : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/span><\/a>\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.imageUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/li>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \" selected\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    return \" icon\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \" style-\"\n    + container.escapeExpression(((helper = (helper = helpers.style || (depth0 != null ? depth0.style : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"style\",\"hash\":{},\"data\":data}) : helper)));\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<i class=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.iconSet || (depth0 != null ? depth0.iconSet : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"iconSet\",\"hash\":{},\"data\":data}) : helper)))\n    + \" fa-\"\n    + container.escapeExpression(((helper = (helper = helpers.icon || (depth0 != null ? depth0.icon : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"icon\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/i>\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return ((stack1 = ((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\");\n},\"13\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<img src=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.imageUrl || (depth0 != null ? depth0.imageUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"imageUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\";\n},\"15\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"search\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(16, data, 0, blockParams, depths),\"inverse\":container.program(18, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\");\n},\"16\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<li class=\\\"search\\\"><button><div><i class=\\\"fas fa-search\\\"><\/i><\/div><\/button><\/li>\\n\";\n},\"18\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"search-input\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(19, data, 0, blockParams, depths),\"inverse\":container.program(21, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\");\n},\"19\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t\t<li class=\\\"search-input\\\"><div><input style=\\\"border: 1px solid white;border-radius: 99999px;background: none;\\\" type=\\\"text\\\"><\/div><\/li>\\n\";\n},\"21\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.type : depth0),\"switch-language\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(22, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"22\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return \"\t\t\t\t<li class=\\\"switch-language\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depths[1] != null ? depths[1].availableLanguages : depths[1]),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(23, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t<\/li>\\n\t\t\t\t\";\n},\"23\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t\t<a title=\\\"Switch to \"\n    + container.escapeExpression(((helper = (helper = helpers.code || (depth0 != null ? depth0.code : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"code\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.path || (depth0 != null ? depth0.path : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"path\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><img src=\\\"https:\/\/www.mathys.to\/static\/ps2\/img\/flags\/\"\n    + container.escapeExpression(((helper = (helper = helpers.code || (depth0 != null ? depth0.code : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"code\",\"hash\":{},\"data\":data}) : helper)))\n    + \".jpg\\\" \/><\/a>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content\\\">\\n\t<nav>\\n\t\t<ul class=\\\"menu\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.menuFontCssVars || (depth0 != null ? depth0.menuFontCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"menuFontCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.items : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<\/ul>\\n\t<\/nav>\\n<\/div>\\n\\n\";\n},\"useData\":true,\"useDepths\":true}"},"newsletter-signup":{"mailchimp-email-names":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"content mailchimp-email\\\">\\n\t<form action=\\\"https:\/\/\"\n    + container.escapeExpression(((helper = (helper = helpers.mailchimpDomain || (depth0 != null ? depth0.mailchimpDomain : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mailchimpDomain\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\/subscribe\/post?u=\"\n    + container.escapeExpression(((helper = (helper = helpers.mailchimpFormKey || (depth0 != null ? depth0.mailchimpFormKey : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mailchimpFormKey\",\"hash\":{},\"data\":data}) : helper)))\n    + \"&amp;id=\"\n    + container.escapeExpression(((helper = (helper = helpers.mailchimpFormId || (depth0 != null ? depth0.mailchimpFormId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mailchimpFormId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \\\"method=\\\"post\\\" id=\\\"mc-embedded-subscribe-form\\\" name=\\\"mc-embedded-subscribe-form\\\" class=\\\"validate\\\" target=\\\"_blank\\\" novalidate>\\n\t\t<div class=\\\"names\\\">\\n\t\t\t<div class=\\\"name-first\\\">\\n\t\t\t\t<input type=\\\"text\\\" value=\\\"\\\" name=\\\"FNAME\\\" class=\\\"\\\" id=\\\"mce-FNAME\\\" placeholder=\\\"First name\\\">\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"name-last\\\">\\n\t\t\t\t<input type=\\\"text\\\" value=\\\"\\\" name=\\\"LNAME\\\" class=\\\"\\\" id=\\\"mce-LNAME\\\" placeholder=\\\"Last name\\\">\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t\t<div style=\\\"position: absolute; left: -5000px;\\\" aria-hidden=\\\"true\\\"><input type=\\\"text\\\" name=\\\"b_\"\n    + container.escapeExpression(((helper = (helper = helpers.mailchimpFormKey || (depth0 != null ? depth0.mailchimpFormKey : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mailchimpFormKey\",\"hash\":{},\"data\":data}) : helper)))\n    + \"_\"\n    + container.escapeExpression(((helper = (helper = helpers.mailchimpFormId || (depth0 != null ? depth0.mailchimpFormId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mailchimpFormId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" tabindex=\\\"-1\\\" value=\\\"\\\"><\/div>\\n\t\t<div class=\\\"email\\\">\\n\t\t\t<input type=\\\"email\\\" value=\\\"\\\" name=\\\"EMAIL\\\" class=\\\"required email\\\" id=\\\"mce-EMAIL\\\" placeholder=\\\"Email\\\">\\n\t\t<\/div>\\n\t\t<input type=\\\"submit\\\" value=\\\"Subscribe\\\" name=\\\"subscribe\\\" id=\\\"mc-embedded-subscribe\\\" class=\\\"button\\\">\\n\t<\/form>\\n<\/div>\";\n},\"useData\":true}","mailchimp-email":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"intro\\\">\\n\t\t<div class=\\\"description\"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.editable : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"description\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t<\/div>\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    return \" mfe-editable mfe-editable-text\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content mailchimp-email\\\">\\n\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.description : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t<form action=\\\"https:\/\/\"\n    + container.escapeExpression(((helper = (helper = helpers.mailchimpDomain || (depth0 != null ? depth0.mailchimpDomain : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mailchimpDomain\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\/subscribe\/post?u=\"\n    + container.escapeExpression(((helper = (helper = helpers.mailchimpFormKey || (depth0 != null ? depth0.mailchimpFormKey : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mailchimpFormKey\",\"hash\":{},\"data\":data}) : helper)))\n    + \"&amp;id=\"\n    + container.escapeExpression(((helper = (helper = helpers.mailchimpFormId || (depth0 != null ? depth0.mailchimpFormId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mailchimpFormId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" method=\\\"post\\\" id=\\\"mc-embedded-subscribe-form\\\" name=\\\"mc-embedded-subscribe-form\\\" class=\\\"validate\\\" target=\\\"_blank\\\" novalidate>\\n\t\t<div style=\\\"position: absolute; left: -5000px;\\\" aria-hidden=\\\"true\\\"><input type=\\\"text\\\" name=\\\"b_\"\n    + container.escapeExpression(((helper = (helper = helpers.mailchimpFormKey || (depth0 != null ? depth0.mailchimpFormKey : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mailchimpFormKey\",\"hash\":{},\"data\":data}) : helper)))\n    + \"_\"\n    + container.escapeExpression(((helper = (helper = helpers.mailchimpFormId || (depth0 != null ? depth0.mailchimpFormId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mailchimpFormId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" tabindex=\\\"-1\\\" value=\\\"\\\"><\/div>\\n\t\t<div class=\\\"email\\\">\\n\t\t\t<input type=\\\"email\\\" value=\\\"\\\" name=\\\"EMAIL\\\" class=\\\"required email\\\" id=\\\"mce-EMAIL\\\" placeholder=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.emailPlaceholder || (depth0 != null ? depth0.emailPlaceholder : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"emailPlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t<\/div>\\n\t\t<input type=\\\"submit\\\" value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.actionText || (depth0 != null ? depth0.actionText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"actionText\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" name=\\\"subscribe\\\" id=\\\"mc-embedded-subscribe\\\" class=\\\"ui-button special\\\">\\n\t<\/form>\\n\t<div class=\\\"small-print\\\">Your email will not be used for other purposes<\/div>\\n<\/div>\";\n},\"useData\":true}"},"postgroup-list":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t<li>\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/li>\\r\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<ul>\\r\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.postGroups : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/ul>\";\n},\"useData\":true}"},"search-input":{"base-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<!--<div class=\\\"results\\\"><span>\"\n    + container.escapeExpression(((helper = (helper = helpers.totalMatches || (depth0 != null ? depth0.totalMatches : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"totalMatches\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/span>Results<\/div>-->\\n\t<div class=\\\"input\\\">\\n\t\t<div class=\\\"icon\\\"><i class=\\\"fas fa-search\\\"><\/i><\/div>\\n\t\t<input type=\\\"text\\\" value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.searchQuery || (depth0 != null ? depth0.searchQuery : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"searchQuery\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" placeholder=\\\"Search for...\\\" \/>\\n\t\t<div class=\\\"actions\\\">\\n\t\t\t<button><div><i class=\\\"fa fa-times\\\"><\/i><\/div><\/button>
20076\\n\t\t<\/div>\\n\t<\/div> \\n<\/div>\";\n},\"useData\":true}"},"share-buttons":{"base-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"buttons\\\">\\n\t<div class=\\\"twitter\\\">\\n\t\t<div class=\\\"count\\\"><\/div>\\n\t\t<a href=\\\"http:\/\/twitter.com\/intent\/tweet?url=\"\n    + container.escapeExpression((helpers.uc || (depth0 && depth0.uc) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.shareUrl : depth0),{\"name\":\"uc\",\"hash\":{},\"data\":data}))\n    + \"&text=\"\n    + container.escapeExpression((helpers.uc || (depth0 && depth0.uc) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.twitterTitle : depth0),{\"name\":\"uc\",\"hash\":{},\"data\":data}))\n    + \"\\\" target=\\\"_blank\\\"><i class=\\\"fab fa-twitter\\\"><\/i><\/a>\\n\t<\/div>\\n\t<div class=\\\"facebook-share\\\">\\n\t\t<div class=\\\"count\\\"><\/div>\\n\t\t<a href=\\\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=\"\n    + container.escapeExpression((helpers.uc || (depth0 && depth0.uc) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.shareUrl : depth0),{\"name\":\"uc\",\"hash\":{},\"data\":data}))\n    + \"\\\" target=\\\"_blank\\\"><i class=\\\"fab fa-facebook-f\\\"><\/i><\/a>\\n\t<\/div>\\n\t<div class=\\\"facebook-like\\\">\\n\t\t<div class=\\\"count\\\"><\/div>\\n\t\t<a href=\\\"https:\/\/www.facebook.com\/\\\" target=\\\"_blank\\\"><i class=\\\"fas fa-thumbs-up\\\"><\/i><\/a>\\n\t\t<div class=\\\"hover\\\">\\n\t\t\t<div class=\\\"fb-like\\\" data-href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.shareUrl || (depth0 != null ? depth0.shareUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"shareUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-width=\\\"64\\\" data-layout=\\\"box_count\\\" data-action=\\\"like\\\" data-size=\\\"large\\\" data-show-faces=\\\"true\\\" data-share=\\\"false\\\"><\/div>\\n\t\t<\/div>\\n\t<\/div>\\n\t<div class=\\\"linkedin\\\">\\n\t\t<div class=\\\"count\\\"><\/div>\\n\t\t<a href=\\\"https:\/\/www.linkedin.com\/shareArticle?mini=true&url=\"\n    + container.escapeExpression((helpers.uc || (depth0 && depth0.uc) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.shareUrl : depth0),{\"name\":\"uc\",\"hash\":{},\"data\":data}))\n    + \"&title=\"\n    + container.escapeExpression((helpers.uc || (depth0 && depth0.uc) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.title : depth0),{\"name\":\"uc\",\"hash\":{},\"data\":data}))\n    + \"\\\" target=\\\"_blank\\\"><i class=\\\"fab fa-linkedin\\\"><\/i><\/a>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}"},"text":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.editable : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.program(4, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"class=\\\"mfe-editable mfe-editable-text text-align-\"\n    + container.escapeExpression(((helper = (helper = helpers.textAlign || (depth0 != null ? depth0.textAlign : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"textAlign\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-editable-setting=\\\"text\\\"\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"class=\\\"text-align-\"\n    + container.escapeExpression(((helper = (helper = helpers.textAlign || (depth0 != null ? depth0.textAlign : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"textAlign\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;
20076\n\n  return \"<a \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.editable : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkUrl || (depth0 != null ? depth0.linkUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return ((stack1 = ((helper = (helper = helpers.text || (depth0 != null ? depth0.text : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"text\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\");\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.text || (depth0 != null ? depth0.text : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"text\",\"hash\":{},\"data\":data}) : helper)));\n},\"12\":function(container,depth0,helpers,partials,data) {\n    return \"<\/a>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<p \"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkUrl : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.fontCssVars || (depth0 != null ? depth0.fontCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"fontCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isAllowHtmlEnabled : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.program(10, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.linkUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/p>\";\n},\"useData\":true}"},"usergroup-team":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \" is-loading\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t<div class=\\\"filters-container\\\">\\n\t\t<div class=\\\"filters\\\">\\n\t\t\t<div class=\\\"tags\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.team : depth0)) != null ? stack1.tags : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"\t\t\t\t<div class=\\\"tag\\\">\\n\t\t\t\t\t<input type=\\\"checkbox\\\" id=\\\"usergroup-team-filter-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" name=\\\"filter-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\\n\t\t\t\t\t<label for=\\\"usergroup-team-filter-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/label>\\n\t\t\t\t<\/div>\\n\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.placeholderItems : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"7\":function(container,depth0,helpers,partials,data) {\n    return \"\t\t\t<li class=\\\"placeholder\\\"><div class=\\\"container\\\"><div class=\\\"wrapper\\\"><\/div><\/div><\/li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default style-\"\n    + container.escapeExpression(((helper = (helper = helpers.style || (depth0 != null ? depth0.style : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"style\",\"hash\":{},\"data\":data}
20076) : helper)))\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showFilters : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\\n\t<div class=\\\"members-container\\\">\\n\t\t<ul class=\\\"members\\\">\\n\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.teamMembersHtml || (depth0 != null ? depth0.teamMembersHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"teamMembersHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<\/ul>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}","item-member":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<li data-member-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<div class=\\\"container\\\">\\n\t\t<div class=\\\"wrapper\\\">\\n\t\t\t<div class=\\\"info\\\">\\n\t\t\t\t<div class=\\\"name\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t<div class=\\\"title\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/li>\";\n},\"useData\":true}"},"video-player":{"base-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    return \"<div class=\\\"mpplayer\\\">\\n        <video class=\\\"mpplayer-video\\\"><\/video>\\n        <div class=\\\"mpplayer-poster\\\" style=\\\"background-image: url(https:\/\/cms.ondemand.cinemien.nl\/content\/uploads\/2018\/06\/DSC_0243-copy-1600x900.jpg);\\\">\\n\t\t\t<div class=\\\"overlay\\\"><\/div>\\n\t\t\t<div class=\\\"play-button\\\">\\n\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-play\\\"><\/use><\/svg>\\n\t\t\t<\/div>\\n        <\/div>\\n        <div class=\\\"mpplayer-loading\\\">\\n                Loading\\n        <\/div>\\n        <div class=\\\"mpplayer-controls\\\">\\n                <button class=\\\"mpplayer-control-play\\\">\\n                        <svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-play\\\"><\/use><\/svg>\\n                <\/button>
20076\\n                <button class=\\\"mpplayer-control-pause\\\">\\n                        <svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-pause\\\"><\/use><\/svg>\\n                <\/button>\\n                <div class=\\\"mpplayer-control-progress\\\">\\n                        <input type=\\\"range\\\" min=\\\"0\\\" max=\\\"100\\\" step=\\\"0.01\\\" value=\\\"0\\\" autocomplete=\\\"off\\\" role=\\\"slider\\\"  \/>\\n                <\/div>\\n            <div class=\\\"mpplayer-label-time-left\\\">\\n                <span><\/span>\\n            <\/div>\\n                <button class=\\\"mpplayer-control-mute\\\">\\n                        <svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-volume\\\"><\/use><\/svg>\\n                <\/button>\\n                <div class=\\\"mpplayer-control-volume\\\">\\n                        <input type=\\\"range\\\" min=\\\"0\\\" max=\\\"100\\\" step=\\\"1\\\" value=\\\"75\\\" autocomplete=\\\"off\\\" role=\\\"slider\\\"  \/>\\n                <\/div>\\n                <!--<button class=\\\"mpplayer-control-captions\\\">\\n                        <svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-captions-on\\\"><\/use><\/svg>\\n                <\/button>-->\\n                <button class=\\\"mpplayer-control-config\\\">\\n                        <svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-settings\\\"><\/use><\/svg>\\n                <\/button>\\n                <button class=\\\"mpplayer-control-fullscreen\\\">\\n                        <svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-enter-fullscreen\\\"><\/use><\/svg>\\n                <\/button>\\n        <\/div>\\n<\/div>\";\n},\"useData\":true}"},"event-content":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t<div class=\\\"links\\\">\\n\t\t\t<a href=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" target=\\\"_blank\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.urlLabel : stack1), depth0))\n    + \"<\/a>\\n\t\t<\/div>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<div class=\\\"start-time\\\">\\n\t\t\t\t\t<span class=\\\"label\\\">Starts<\/span>\\n\t\t\t\t\t<div class=\\\"value time\\\">\"\n    + container.escapeExpression((helpers.momentListTime || (depth0 && depth0.momentListTime) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.startDate : stack1),{\"name\":\"momentListTime\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t<\/div>\\n\t\t\t\t<div class=\\\"end-time\\\">\\n\t\t\t\t\t<span class=\\\"label\\\">Ends<\/span>\\n\t\t\t\t\t<div class=\\\"value time\\\">\"\n    + container.escapeExpression((helpers.momentListTime || (depth0 && depth0.momentListTime) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.endDateLocal : stack1),{\"name\":\"momentListTime\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t<\/div>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.isWholeDay : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t\t<div class=\\\"start-time\\\">\\n\t\t\t\t\t\t<span class=\\\"label\\\">Starts<\/span>\\n\t\t\t\t\t\t<div class=\\\"value time\\\">\"\n    + container.escapeExpression((helpers.dateFormatShort || (depth0 && depth0.dateFormatShort) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.startDate : stack1),{\"name\":\"dateFormatShort\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<div class=\\\"end-time\\\">\\n\t\t\t\t\t\t<span class=\\\"label\\\">Ends<\/span>\\n\t\t\t\t\t\t<div class=\\\"value time\\\">\"\n    + container.escapeExpression((helpers.dateFormatShort || (depth0 && depth0.dateFormatShort) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.endDateLocal : stack1),{\"name\":\"dateFormatShort\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t\t<\/div>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t\t<div class=\\\"start-time\\\">\\n\t\t\t\t\t\t<span class=\\\"label\\\">Starts<\/span>\\n\t\t\t\t\t\t<div class=\\\"value time\\\">\"\n    + container.escapeExpression((helpers.dateFormat || (depth0 && depth0.dateFormat) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.startDate : stack1),{\"name\":\"dateFormat\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<div class=\\\"end-time\\\">\\n\t\t\t\t\t\t<span class=\\\"label\\\">Ends<\/span>\\n\t\t\t\t\t\t<div class=\\\"value time\\\">\"\n    + container.escapeExpression((helpers.dateFormat || (depth0 && depth0.dateFormat) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.endDateLocal : stack1),{\"name\":\"dateFormat\",\"hash\":{},\"data\":data}))\n    + \"<\/div>\\n\t\t\t\t\t<\/div>\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<div class=\\\"date\\\">\\n\t\t\t\t\t<span class=\\\"label\\\">Date<\/span>\\n\t\t\t\t\t<span class=\\\"value\\\">\"\n    + container.escapeExpression((helpers.dateFormatArticle || (depth0 && depth0.dateFormatArticle) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.startDate : stack1),{\"name\":\"dateFormatArticle\",\"hash\":{},\"data\":data}))\n    + \"<\/span>\\n\t\t\t\t<\/div>\\n\";\n},\"12\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<div class=\\\"venue\\\">\\n\t\t\t\t\t<span class=\\\"label\\\">Venue<\/span>\\n\t\t\t\t\t<span class=\\\"value\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.location : stack1)) != null ? stack1.venue : stack1), depth0))\n    + \"<\/span>\\n\t\t\t\t<\/div>\\n\";\n},\"14\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<div class=\\\"address\\\">\\n\t\t\t\t\t<span class=\\\"label\\\">Address<\/span>\\n\t\t\t\t\t<span class=\\\"value\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.location : stack1)) != null ? stack1.address : stack1), depth0))\n    + \"<\/span>\\n\t\t\t\t<\/div>\\n\";\n},\"16\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"\t\t\t\t<div class=\\\"city-country\\\">\\n\t\t\t\t\t<span class=\\\"label\\\">City<\/span>\\n\t\t\t\t\t<span class=\\\"value\\\">\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.location : stack1)) != null ? stack1.city : stack1), depth0))\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.location : stack1)) != null ? stack1.city : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.location : stack1)) != null ? stack1.country : stack1), depth0))\n    + \"<\/div>\\n\t\t\t\t<\/div>\\n\";\n},\"17\":function(container,depth0,helpers,partials,data) {\n    var stack1;
20076\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.location : stack1)) != null ? stack1.country : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(18, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"18\":function(container,depth0,helpers,partials,data) {\n    return \", \";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<div class=\\\"event\\\">\\n\t\t\\n\t\t<div class=\\\"cover\\\">\\n\t\t\t<h1>\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.title : stack1), depth0))\n    + \"<\/h1>\\n\t\t\t<p>\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.description : stack1), depth0))\n    + \"<\/p>\\n\t\t<\/div>\\n\t\t\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.url : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\\n\t\t<div class=\\\"info\\\">\\n\\n\t\t\t<div class=\\\"times\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.isSameDay : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.program(5, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\\n\t\t\t<div class=\\\"location\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.isSameDay : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.location : stack1)) != null ? stack1.venue : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(12, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.location : stack1)) != null ? stack1.address : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(14, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.event : depth0)) != null ? stack1.revision : stack1)) != null ? stack1.location : stack1)) != null ? stack1.city : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(16, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t\t\\n\t\t<\/div>\\n\t\t\\n\t<\/div>\\n<\/div>\t\";\n},\"useData\":true}"},"floating-info":{"base-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    return \"The place for all the people interested in the world of doing good. And in doing it better.\";\n},\"useData\":true}"},"pagination":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.showNothingFound : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    return \"<h3>No posts that match your criteria have been found.<\/h3>\\n\";\n},\"4\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1;\n\n  return \"<nav>\\n\t<div class=\\\"numbers\\\">\\n\t\t<a class=\\\"prev \"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.prev : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" href=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.prev : depth0)) != null ? stack1.path : stack1), depth0))\n    + \"\\\"><i class=\\\"fas fa-chevron-left\\\"><\/i><\/a>\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.pages : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(7, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<a class=\\\"next \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.next : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" href=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = (depth0 != null ? depth0.next : depth0)) != null ? stack1.path : stack1), depth0))\n    + \"\\\"><i class=\\\"fas fa-chevron-right\\\"><\/i><\/a>\\n\t<\/div>\\n<\/nav>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    return \"enabled\";\n},\"7\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"\t<a \"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.number : depth0),(depths[1] != null ? depths[1].currentPage : depths[1]),{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(8, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.path || (depth0 != null ? depth0.path : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"path\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.number || (depth0 != null ? depth0.number : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"number\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/a>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    return \"class=\\\"selected\\\" \";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"<!--<div>Found <span>\"\n    + container.escapeExpression(((helper = (helper = helpers.totalItems || (depth0 != null ? depth0.totalItems : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"totalItems\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/span> posts<\/div>-->\\n\"\n    + ((stack1 = (helpers.compare || (depth0 && depth0.compare) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.totalItems : depth0),\"0\",{\"name\":\"compare\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams, depths),\"inverse\":container.program(4, data, 0, blockParams, depths),\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true,\"useDepths\":true}"},"dataset-view":{"temp":"{\"1\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"\t\t\t\t<div class=\\\"tag\\\">\\n\t\t\t\t\t<input data-target-table=\\\"persons\\\" id=\\\"filter-tags-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" name=\\\"filter-tags[]\\\" type=\\\"checkbox\\\" value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \"\n    + ((stack1 = (helpers.ifIn || (depth0 && depth0.ifIn) || helpers.helperMissing).call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.id : depth0),((stack1 = ((stack1 = (depths[1] != null ? depths[1].filters : depths[1])) != null ? stack1.persons : stack1)) != null ? stack1.tags : stack1),{\"name\":\"ifIn\",\"hash\":{},\"fn\":container.program(2, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"> \\n\t\t\t\t\t<label for=\\\"filter-tags-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.tagTitle || (depth0 != null ? depth0.tagTitle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"tagTitle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/label> \\n\t\t\t\t<\/div>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    return \"checked=\\\"checked\\\"\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t<li data-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t\t<div class=\\\"container\\\">\\n\t\t\t\t\t<div class=\\\"wrapper\\\">\\n\t\t\t\t\t\t<div class=\\\"info\\\">\\n\t\t\t\t\t\t\t<div class=\\\"name\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t\t\t\t<div class=\\\"title\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.jobTitle || (depth0 != null ? depth0.jobTitle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"jobTitle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t\t\t\t<div class=\\\"tags\\\">\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.tags : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/div>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t<\/div>\\n\t\t\t<\/li>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.tagTitle || (depth0 != null ? depth0.tagTitle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"tagTitle\",\"hash\":{},\"data\":data}) : helper)));\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content\\\" data-dataset-view-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.datasetViewId || (depth0 != null ? depth0.datasetViewId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"datasetViewId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\\n\t<div class=\\\"filters-container\\\">\\n\t\t<div class=\\\"filters\\\">\\n\t\t\t<div class=\\\"tags\\\"> \\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.view : depth0)) != null ? stack1.tags : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n\t<div class=\\\"persons-container\\\">\\n\t\t<ul class=\\\"members\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.view : depth0)) != null ? stack1.persons : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<\/ul>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true,\"useDepths\":true}"},"quote":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t<footer style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.fontSourceCssVars || (depth0 != null ? depth0.fontSourceCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"fontSourceCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t&mdash; <cite>
20076\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.quoteSourceUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + container.escapeExpression(((helper = (helper = helpers.quoteSource || (depth0 != null ? depth0.quoteSource : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"quoteSource\",\"hash\":{},\"data\":data}) : helper)))\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.quoteSourceUrl : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/cite>\\n\t<\/footer>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.quoteSourceUrl || (depth0 != null ? depth0.quoteSourceUrl : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"quoteSourceUrl\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    return \"<\/a>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<blockquote style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.fontCssVars || (depth0 != null ? depth0.fontCssVars : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"fontCssVars\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<p>\"\n    + container.escapeExpression(((helper = (helper = helpers.quoteText || (depth0 != null ? depth0.quoteText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"quoteText\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/p>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.quoteSource : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/blockquote>\";\n},\"useData\":true}"},"dataset-lookup":{"temp":"{\"1\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"\t\t\t\t<div class=\\\"tag\\\">\\n\t\t\t\t\t<input data-target-table=\\\"persons\\\" id=\\\"filter-tags-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" name=\\\"filter-tags[]\\\" type=\\\"checkbox\\\" value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \"\n    + ((stack1 = (helpers.ifIn || (depth0 && depth0.ifIn) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.id : depth0),((stack1 = ((stack1 = (depths[1] != null ? depths[1].filters : depths[1])) != null ? stack1.persons : stack1)) != null ? stack1.tags : stack1),{\"name\":\"ifIn\",\"hash\":{},\"fn\":container.program(2, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"> \\n\t\t\t\t\t<label for=\\\"filter-tags-\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.tagTitle || (depth0 != null ? depth0.tagTitle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"tagTitle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/label> \\n\t\t\t\t<\/div>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    return \"checked=\\\"checked\\\"\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t<li data-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"id\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t\t<div class=\\\"container\\\">\\n\t\t\t\t\t<div class=\\\"wrapper\\\">\\n\t\t\t\t\t\t<div class=\\\"info\\\">\\n\t\t\t\t\t\t\t<div class=\\\"name\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"name\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t\t\t\t<div class=\\\"title\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.jobTitle || (depth0 != null ? depth0.jobTitle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"jobTitle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t\t\t\t<div class=\\\"tags\\\">\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.tags : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<\/div>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t<\/div>\\n\t\t\t<\/li>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.tagTitle || (depth0 != null ? depth0.tagTitle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"tagTitle\",\"hash\":{},\"data\":data}) : helper)));\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content\\\" data-dataset-view-id=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.datasetViewId || (depth0 != null ? depth0.datasetViewId : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"datasetViewId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\\n\t<div class=\\\"filters-container\\\">\\n\t\t<div class=\\\"filters\\\">\\n\t\t\t<div class=\\\"tags\\\"> \\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.view : depth0)) != null ? stack1.tags : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n\t<div class=\\\"persons-container\\\">\\n\t\t<ul class=\\\"members\\\">\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.view : depth0)) != null ? stack1.persons : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(4, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t\t<li class=\\\"filler\\\"><\/li>\\n\t\t<\/ul>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true,\"useDepths\":true}"},"payment-check":{"base-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    return \"<div>\\n\tWaiting for payment to complete...\\n<\/div>\";\n},\"useData\":true}"},"content-navigation":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    return \" is-loading\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content base-default\"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depth0 != null ? depth0.isLoading : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\\n\t<div class=\\\"newer\\\">\\n\t\t<nav class=\\\"items\\\">\"\n    + ((stack1 = ((helper = (helper = helpers.newerHtml || (depth0 != null ? depth0.newerHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"newerHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/nav>\\n\t<\/div>\\n\t\\n\t<span><\/span>\\n\t\\n\t<div class=\\\"older\\\">\\n\t\t<nav class=\\\"items\\\">\"\n    + ((stack1 = ((helper = (helper = helpers.olderHtml || (depth0 != null ? depth0.olderHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"olderHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/nav>\\n\t<\/div>\\n\\n<\/div>\\n\";\n},\"useData\":true}","item-default-newer":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<figure>\\n\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" \/>\\n\t<\/figure>\\n\t<div class=\\\"arrow left\\\"><i class=\\\"fas fa-chevron-left\\\"><\/i><\/div>\\n<\/a>\";\n},\"useData\":true}","item-default-older":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<a href=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.linkPath || (depth0 != null ? depth0.linkPath : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"linkPath\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t<figure>\\n\t\t<img src=\\\"\"\n    + container.escapeExpression(container.lambda(((stack1 = ((stack1 = ((stack1 = ((stack1 = (depth0 != null ? depth0.revision : depth0)) != null ? stack1.cover : stack1)) != null ? stack1.filesIndexed : stack1)) != null ? stack1.box320 : stack1)) != null ? stack1.url : stack1), depth0))\n    + \"\\\" \/>\\n\t<\/figure>\\n\t<div class=\\\"arrow right\\\"><i class=\\\"fas fa-chevron-right\\\"><\/i><\/div>\\n<\/a>\";\n},\"useData\":true}"},"player":{"base-default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t\t<div class=\\\"description-field\\\">\\n\t\t\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.langMmdRentInfoDescriptionHtml || (depth0 != null ? depth0.langMmdRentInfoDescriptionHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentInfoDescriptionHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\t\t<\/div>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t\t<div class=\\\"description-field\\\">\\n\t\t\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.langMmdGiftInfoDescriptionHtml || (depth0 != null ? depth0.langMmdGiftInfoDescriptionHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftInfoDescriptionHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\t\t<\/div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"<div class=\\\"content\\\">\\n\t<div class=\\\"wrapper\\\">\\n\t\t<div class=\\\"close-trailer\\\">\\n\t\t\t<button><i class=\\\"fas fa-times\\\"><\/i><\/button>
20076\\n\t\t<\/div>\\n\t\t<div class=\\\"player\\\">\\n\t\t\t<video style=\\\"\\\"><\/video>\\n\t\t\t<div class=\\\"player-controls disabled\\\">\\n\t\t\t\t<button class=\\\"player-control-play disabled\\\" style=\\\"display: none;\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-play\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>\\n\t\t\t\t<button class=\\\"player-control-pause\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-pause\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>\\n\t\t\t\t<div class=\\\"player-control-progress\\\">\\n\t\t\t\t\t\t<input type=\\\"range\\\" min=\\\"0\\\" max=\\\"100\\\" step=\\\"0.1\\\" value=\\\"0\\\" autocomplete=\\\"off\\\" role=\\\"slider\\\"  \/>\\n\t\t\t\t\t\t<progress class=\\\"progress-buffer\\\" min=\\\"0\\\" max=\\\"100\\\" value=\\\"0\\\" role=\\\"presentation\\\" aria-hidden=\\\"true\\\">% buffered<\/progress>\\n\t\t\t\t<\/div>\\n\t\t\t\t<div class=\\\"player-label-time-left\\\">\\n\t\t\t\t\t<span>00:00:00<\/span>\\n\t\t\t\t<\/div>\\n\t\t\t\t<button class=\\\"player-control-mute\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-volume\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>\\n\t\t\t\t<div class=\\\"player-control-volume\\\">\\n\t\t\t\t\t\t<input type=\\\"range\\\" min=\\\"0\\\" max=\\\"100\\\" step=\\\"1\\\" value=\\\"75\\\" autocomplete=\\\"off\\\" role=\\\"slider\\\"  \/>\\n\t\t\t\t<\/div>\\n\t\t\t\t<!--<button class=\\\"player-control-captions\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-captions-on\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>-->\\n\t\t\t\t<!--<button class=\\\"player-control-config\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-settings\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>-->\\n\t\t\t\t<button class=\\\"player-control-fullscreen\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-enter-fullscreen\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"player-error\\\" style=\\\"display: none;\\\"><div class=\\\"message\\\"><\/div><\/div>\\n\t\t\t<div class=\\\"player-loading\\\" style=\\\"display: none;\\\">\\n\t\t\t\t<i class=\\\"fas fa-spin fa-circle-notch\\\"><\/i>\\n\t\t\t\tLoading\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"player-poster\\\" style=\\\"display: none;\\\">\\n\t\t\t\t<img src=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.mediaCoverImage || (depth0 != null ? depth0.mediaCoverImage : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mediaCoverImage\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"player-overlay\\\" style=\\\"display: none;\\\">\\n\t\t\t\t<div class=\\\"bg\\\"><\/div>\\n\t\t\t\t<div class=\\\"icon\\\">\\n\t\t\t\t\t<figure><svg width=\\\"204\\\" height=\\\"204\\\" viewBox=\\\"0 0 204 204\\\" class=\\\"ui-play-button\\\"><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" transform=\\\"translate(2 2)\\\"><polygon fill=\\\"#F2F2F2\\\" points=\\\"148.685 99.699 69.856 139.11 69.856 60.287\\\"><\/polygon><circle cx=\\\"100\\\" cy=\\\"100\\\" r=\\\"100\\\" stroke=\\\"#FFF\\\" stroke-width=\\\"3\\\"><\/circle><\/g><\/svg><\/figure>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t\t<div class=\\\"mmd\\\">\\n\t\t\t<div class=\\\"wrapper\\\">\\n\t\t\t\t<div class=\\\"trailer\\\">\\n\t\t\t\t\t<div class=\\\"wrapper\\\">\\n\t\t\t\t\t\t<div class=\\\"video-container\\\"><\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t<\/div>\\n\t\t\t\t<div class=\\\"screens\\\">\\n\t\t\t\t\t<div class=\\\"home\\\">\\n\t\t\t\t\t\t\\n\t\t\t\t\t\t<!--<div class=\\\"logo\\\"><\/div>-->\\n\t\t\t\t\t\t\\n\t\t\t\t\t\t<!--<button class=\\\"rent\\\">\\n\t\t\t\t\t\t\t<div>\\n\t\t\t\t\t\t\t\t<figure><svg width=\\\"204\\\" height=\\\"204\\\" viewBox=\\\"0 0 204 204\\\" class=\\\"ui-play-button\\\"><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" transform=\\\"translate(2 2)\\\"><polygon fill=\\\"#F2F2F2\\\" points=\\\"148.685 99.699 69.856 139.11 69.856 60.287\\\"><\/polygon><circle cx=\\\"100\\\" cy=\\\"100\\\" r=\\\"100\\\" stroke=\\\"#FFF\\\" stroke-width=\\\"3\\\"><\/circle><\/g><\/svg><\/figure>\\n\t\t\t\t\t\t\t\t<div class=\\\"icon\\\">\\n\t\t\t\t\t\t\t\t\t<i class=\\\"fas fa-shopping-cart\\\"><\/i>\\n\t\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\t\t<span>\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdButtonMainRent || (depth0 != null ? depth0.langMmdButtonMainRent : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdButtonMainRent\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/span>\\n\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t<\/button>
20076create.bra\t\\n\t\t\t\t\t<div class=\\\"content\\\">\"\n    + ((stack1 = ((helper = (helper = helpers.langMmdHomeContent || (depth0 != null ? depth0.langMmdHomeContent : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdHomeContent\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/div>-->\\n\t\t\t\t\t\t<div class=\\\"actions\\\">\\n\t\t\t\t\t\t\t<button data-action=\\\"rent\\\"><div><img src=\\\"https:\/\/d1ns18uxs7ub2o.cloudfront.net\/197\/folder-714\/button-rent.png\\\" \/><span>Huur nu &euro;4.99<\/span><\/div><\/button>\\n\t\t\t\t\t\t\t<button data-action=\\\"gift\\\"><div><img src=\\\"https:\/\/d1ns18uxs7ub2o.cloudfront.net\/197\/folder-714\/button-gift.png\\\" \/><span>\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdButtonMainGift || (depth0 != null ? depth0.langMmdButtonMainGift : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdButtonMainGift\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/span><\/div><\/button>\\n\t\t\t\t\t\t\t<a href=\\\"\/nl\/over-de-film\\\"><div><img src=\\\"https:\/\/d1ns18uxs7ub2o.cloudfront.net\/197\/folder-714\/button-info.png\\\" \/><span>Meer over de film<\/span><\/div><\/a>\\n\t\t\t\t\t\t\t<button data-action=\\\"trailer\\\"><div><img src=\\\"https:\/\/d1ns18uxs7ub2o.cloudfront.net\/197\/folder-714\/button-trailer-new.png\\\" \/><span>\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdButtonMainTrailer || (depth0 != null ? depth0.langMmdButtonMainTrailer : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdButtonMainTrailer\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/span><\/div><\/button>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<div class=\\\"has-rented\\\">\\n\t\t\t\t\t\t<button class=\\\"play\\\">\\n\t\t\t\t\t\t\t<div class=\\\"icon\\\">\\n\t\t\t\t\t\t\t\t<figure><svg width=\\\"204\\\" height=\\\"204\\\" viewBox=\\\"0 0 204 204\\\" class=\\\"ui-play-button\\\"><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" transform=\\\"translate(2 2)\\\"><polygon fill=\\\"#F2F2F2\\\" points=\\\"148.685 99.699 69.856 139.11 69.856 60.287\\\"><\/polygon><circle cx=\\\"100\\\" cy=\\\"100\\\" r=\\\"100\\\" stroke=\\\"#FFF\\\" stroke-width=\\\"3\\\"><\/circle><\/g><\/svg><\/figure>\\n\t\t\t\t\t\t\t\t<div class=\\\"text\\\">Start film<\/div>\t\t\t\t\t\\n\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t<\/button>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<div class=\\\"login\\\">\\n\t\t\t\t\t\t<div class=\\\"username\\\">\\n\t\t\t\t\t\t\tEmail\\n\t\t\t\t\t\t\t<input type=\\\"text\\\" name=\\\"username\\\" \/>\\n\t\t\t\t\t\t<\/div>\t\\n\t\t\t\t\t<button data-action=\\\"back\\\">&laquo; Back<\/button>\\n\t\t\t\t\t\t<input type=\\\"button\\\" value=\\\"Login\\\" \/>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<div class=\\\"rent-info\\\">\\n\t\t\t\t\t\t<h2>\"\n    + ((stack1 = ((helper = (helper = helpers.langMmdRentInfoTitleHtml || (depth0 != null ? depth0.langMmdRentInfoTitleHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentInfoTitleHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/h2>\\n\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.langMmdRentInfoDescriptionHtml : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\t\t\\n\t\t\t\t\t\t<div class=\\\"actions\\\">\\n\t\t\t\t\t\t\t<button data-action=\\\"back\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdRentInfoButtonBack || (depth0 != null ? depth0.langMmdRentInfoButtonBack : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentInfoButtonBack\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/button>
20076\\n\t\t\t\t\t\t\t<button data-action=\\\"continue\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdRentInfoButtonContinue || (depth0 != null ? depth0.langMmdRentInfoButtonContinue : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentInfoButtonContinue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/button>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<div class=\\\"rent\\\">\\n\t\t\t\t\t\t<h2>\"\n    + ((stack1 = ((helper = (helper = helpers.langMmdRentTitleHtml || (depth0 != null ? depth0.langMmdRentTitleHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentTitleHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/h2>\\n\t\t\t\t\t\t\t\\n\t\t\t\t\t\t<div class=\\\"description-field\\\">\\n\t\t\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.langMmdRentDescriptionHtml || (depth0 != null ? depth0.langMmdRentDescriptionHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentDescriptionHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\\n\t\t\t\t\t\t<div class=\\\"input-fields\\\">\\n\t\t\t\t\t\t\t<div class=\\\"input-field\\\">\\n\t\t\t\t\t\t\t\t<div class=\\\"label\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdRentInputLabelEmail || (depth0 != null ? depth0.langMmdRentInputLabelEmail : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentInputLabelEmail\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t\t\t\t\t<div class=\\\"input\\\"><input type=\\\"text\\\" placeholder=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdRentInputPlaceholderEmail || (depth0 != null ? depth0.langMmdRentInputPlaceholderEmail : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentInputPlaceholderEmail\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" name=\\\"email\\\" \/><\/div>\\n\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\\n\t\t\t\t\t\t<div class=\\\"actions\\\">\\n\t\t\t\t\t\t\t<button data-action=\\\"back\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdRentButtonBack || (depth0 != null ? depth0.langMmdRentButtonBack : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentButtonBack\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/button>\\n\t\t\t\t\t\t\t<button data-action=\\\"rent\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdRentButtonContinue || (depth0 != null ? depth0.langMmdRentButtonContinue : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentButtonContinue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/button>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<div class=\\\"rent-payforward\\\">\\n\t\t\t\t\t\t\\n\t\t\t\t\t\t<h2>\"\n    + ((stack1 = ((helper = (helper = helpers.langMmdGiftTitleHtml || (depth0 != null ? depth0.langMmdGiftTitleHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftTitleHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/h2>\\n\t\t\t\t\t\t\\n\t\t\t\t\t\t<div class=\\\"description-field\\\">\\n\t\t\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.langMmdGiftDescriptionHtml || (depth0 != null ? depth0.langMmdGiftDescriptionHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftDescriptionHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\\n\t\t\t\t\t\t<div class=\\\"input-fields\\\">\\n\\n\t\t\t\t\t\t\t<div class=\\\"sender\\\">\\n\t\t\t\t\t\t\t\t<div class=\\\"input-field\\\">\\n\t\t\t\t\t\t\t\t\t<div class=\\\"label\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdGiftInputLabelEmailSender || (depth0 != null ? depth0.langMmdGiftInputLabelEmailSender : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftInputLabelEmailSender\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t\t\t\t\t\t<div class=\\\"input\\\"><input type=\\\"text\\\" placeholder=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdRentInputPlaceholderEmailSender || (depth0 != null ? depth0.langMmdRentInputPlaceholderEmailSender : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentInputPlaceholderEmailSender\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" name=\\\"email\\\" \/><\/div>\\n\t\t\t\t\t\t\t\t<\/div>\\n\\n\t\t\t\t\t\t\t\t<div class=\\\"input-field\\\">\\n\t\t\t\t\t\t\t\t\t<div class=\\\"label\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdGiftInputLabelNameSender || (depth0 != null ? depth0.langMmdGiftInputLabelNameSender : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftInputLabelNameSender\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t\t\t\t\t\t<div class=\\\"input\\\"><input type=\\\"text\\\" placeholder=\\\"e.g. Elon Musk\\\" name=\\\"name\\\" \/><\/div>\\n\t\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\t<\/div>\\n\\n\t\t\t\t\t\t\t<div class=\\\"receiver\\\">\\n\t\t\t\t\t\t\t\t<div class=\\\"input-field\\\">\\n\t\t\t\t\t\t\t\t\t<div class=\\\"label\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdGiftInputLabelEmailRecipient || (depth0 != null ? depth0.langMmdGiftInputLabelEmailRecipient : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftInputLabelEmailRecipient\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t\t\t\t\t\t<div class=\\\"input\\\"><input type=\\\"text\\\" placeholder=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdRentInputPlaceholderEmailRecipient || (depth0 != null ? depth0.langMmdRentInputPlaceholderEmailRecipient : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentInputPlaceholderEmailRecipient\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" name=\\\"recipientEmail\\\" \/><\/div>\\n\t\t\t\t\t\t\t\t<\/div>\\n\\n\t\t\t\t\t\t\t\t<div class=\\\"input-field\\\">\\n\t\t\t\t\t\t\t\t\t<div class=\\\"label\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdGiftInputLabelNameRecipient || (depth0 != null ? depth0.langMmdGiftInputLabelNameRecipient : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftInputLabelNameRecipient\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\\n\t\t\t\t\t\t\t\t\t<div class=\\\"input\\\"><input type=\\\"text\\\" placeholder=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdRentInputPlaceholderNameRecipient || (depth0 != null ? depth0.langMmdRentInputPlaceholderNameRecipient : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdRentInputPlaceholderNameRecipient\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" name=\\\"recipientName\\\" \/><\/div>\\n\t\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\t\t\\n\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\t\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\\n\t\t\t\t\t\t<div class=\\\"actions\\\">\\n\t\t\t\t\t\t\t<button data-action=\\\"back\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdGiftButtonBack || (depth0 != null ? depth0.langMmdGiftButtonBack : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftButtonBack\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/button>
20076\\n\t\t\t\t\t\t\t<button data-action=\\\"rent\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdGiftButtonContinue || (depth0 != null ? depth0.langMmdGiftButtonContinue : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftButtonContinue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/button>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<div class=\\\"rent-payforward-info\\\">\\n\t\t\t\t\t\t<h2>\"\n    + ((stack1 = ((helper = (helper = helpers.langMmdGiftInfoTitleHtml || (depth0 != null ? depth0.langMmdGiftInfoTitleHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftInfoTitleHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"<\/h2>\\n\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.langMmdGiftInfoDescriptionHtml : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t\t\t\\n\t\t\t\t\t\t<div class=\\\"actions\\\">\\n\t\t\t\t\t\t\t<button data-action=\\\"back\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdGiftInfoButtonBack || (depth0 != null ? depth0.langMmdGiftInfoButtonBack : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftInfoButtonBack\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/button>\\n\t\t\t\t\t\t\t<button data-action=\\\"continue\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langMmdGiftInfoButtonContinue || (depth0 != null ? depth0.langMmdGiftInfoButtonContinue : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langMmdGiftInfoButtonContinue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/button>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t\\n\t\t\t\t\t<\/div>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\\n\";\n},\"useData\":true}","simple":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"content\\\">\\n\t<div class=\\\"wrapper\\\">\\n\t\t<div class=\\\"close-trailer\\\">\\n\t\t\t<button><i class=\\\"fas fa-times\\\"><\/i><\/button>\\n\t\t<\/div>\\n\t\t<div class=\\\"player show\\\">\\n\t\t\t<video style=\\\"\\\"><\/video>\\n\t\t\t<div class=\\\"player-controls disabled\\\">\\n\t\t\t\t<button class=\\\"player-control-play disabled\\\" style=\\\"display: none;\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-play\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>\\n\t\t\t\t<button class=\\\"player-control-pause\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-pause\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>\\n\t\t\t\t<div class=\\\"player-control-progress\\\">\\n\t\t\t\t\t\t<input type=\\\"range\\\" min=\\\"0\\\" max=\\\"100\\\" step=\\\"0.1\\\" value=\\\"0\\\" autocomplete=\\\"off\\\" role=\\\"slider\\\"  \/>\\n\t\t\t\t\t\t<progress class=\\\"progress-buffer\\\" min=\\\"0\\\" max=\\\"100\\\" value=\\\"0\\\" role=\\\"presentation\\\" aria-hidden=\\\"true\\\">% buffered<\/progress>\\n\t\t\t\t<\/div>\\n\t\t\t\t<div class=\\\"player-label-time-left\\\">\\n\t\t\t\t\t<span>00:00:00<\/span>\\n\t\t\t\t<\/div>\\n\t\t\t\t<button class=\\\"player-control-mute\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-volume\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>\\n\t\t\t\t<div class=\\\"player-control-volume\\\">\\n\t\t\t\t\t\t<input type=\\\"range\\\" min=\\\"0\\\" max=\\\"100\\\" step=\\\"1\\\" value=\\\"75\\\" autocomplete=\\\"off\\\" role=\\\"slider\\\"  \/>
20076\\n\t\t\t\t<\/div>\\n\t\t\t\t<!--<button class=\\\"player-control-captions\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-captions-on\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>-->\\n\t\t\t\t<!--<button class=\\\"player-control-config\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-settings\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>-->\\n\t\t\t\t<button class=\\\"player-control-fullscreen\\\">\\n\t\t\t\t\t\t<svg role=\\\"presentation\\\" focusable=\\\"false\\\"><use xlink:href=\\\"\/static\/img\/plyr.svg#plyr-enter-fullscreen\\\"><\/use><\/svg>\\n\t\t\t\t<\/button>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"player-error\\\" style=\\\"display: none;\\\"><div class=\\\"message\\\"><\/div><\/div>\\n\t\t\t<div class=\\\"player-loading\\\" style=\\\"display: none;\\\">\\n\t\t\t\t<i class=\\\"fas fa-spin fa-circle-notch\\\"><\/i>\\n\t\t\t\tLoading\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"player-poster\\\">\\n\t\t\t\t<img src=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.mediaCoverImage || (depth0 != null ? depth0.mediaCoverImage : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"mediaCoverImage\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\\n\t\t\t\t<div class=\\\"bg\\\"><\/div>\\n\t\t\t\t<div class=\\\"icon\\\">\\n\t\t\t\t\t<figure><svg width=\\\"204\\\" height=\\\"204\\\" viewBox=\\\"0 0 204 204\\\" class=\\\"ui-play-button\\\"><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" transform=\\\"translate(2 2)\\\"><polygon fill=\\\"#F2F2F2\\\" points=\\\"148.685 99.699 69.856 139.11 69.856 60.287\\\"><\/polygon><circle cx=\\\"100\\\" cy=\\\"100\\\" r=\\\"100\\\" stroke=\\\"#FFF\\\" stroke-width=\\\"3\\\"><\/circle><\/g><\/svg><\/figure>\\n\t\t\t\t\t<div class=\\\"text\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.langSimpleStartVideo || (depth0 != null ? depth0.langSimpleStartVideo : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"langSimpleStartVideo\",\"hash\":{},\"data\":data}) : helper)))\n    + \"<\/div>\t\t\t\t\t\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"player-overlay\\\" style=\\\"display: none;\\\">\\n\t\t\t\t<div class=\\\"bg\\\"><\/div>\\n\t\t\t\t<div class=\\\"icon\\\">\\n\t\t\t\t\t<figure><svg width=\\\"204\\\" height=\\\"204\\\" viewBox=\\\"0 0 204 204\\\" class=\\\"ui-play-button\\\"><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\" transform=\\\"translate(2 2)\\\"><polygon fill=\\\"#F2F2F2\\\" points=\\\"148.685 99.699 69.856 139.11 69.856 60.287\\\"><\/polygon><circle cx=\\\"100\\\" cy=\\\"100\\\" r=\\\"100\\\" stroke=\\\"#FFF\\\" stroke-width=\\\"3\\\"><\/circle><\/g><\/svg><\/figure>\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\t\t\t<button data-action=\\\"start\\\">Start<\/button>\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\\n\";\n},\"useData\":true}"},"html":{"base-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return ((stack1 = ((helper = (helper = helpers.html || (depth0 != null ? depth0.html : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"html\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\");\n},\"useData\":true}"},"popup":{"base-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    return \"\";\n},\"useData\":true}","tpm":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    return \"<div id=\\\"popup-container\\\">\\n    <div class=\\\"popup-tpm\\\">\\n        <button data-action=\\\"close\\\">Close<i class=\\\"fas fa-times\\\"><\/i><\/button>\\n        <a target=\\\"_blank\\\" href=\\\"https:\/\/www.bidawards.nl\/the-present\\\">\\n            <img src=\\\"https:\/\/d1ns18uxs7ub2o.cloudfront.net\/181\/folder-733\/v6.jpg\\\" \/>\\n        <\/a>\\n    <\/div>\\n<\/div>\\n\";\n},\"useData\":true}"},"dataset-search-input":{"base-default":"{\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"content base-default\\\">\\n\t<div class=\\\"input\\\">\\n\t\t<div class=\\\"icon\\\"><i class=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.searchIcon || (depth0 != null ? depth0.searchIcon : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"searchIcon\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/i><\/div>\\n\t\t<input type=\\\"text\\\" value=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.query || (depth0 != null ? depth0.query : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"query\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" placeholder=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.placeholder || (depth0 != null ? depth0.placeholder : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"placeholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \/>\\n\t\t<div class=\\\"actions\\\">\\n\t\t\t<button><div><i class=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.clearIcon || (depth0 != null ? depth0.clearIcon : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"clearIcon\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/i><\/div><\/button>
20076\\n\t\t<\/div>\\n\t<\/div> \\n<\/div>\";\n},\"useData\":true}"}},"layouts":{"vertical":{"default":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"data-layout-name=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.layoutName || (depth0 != null ? depth0.layoutName : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"layoutName\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \" no-top-padding\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    return \" bg-dark\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"--layout-height: \"\n    + container.escapeExpression(((helper = (helper = helpers.height || (depth0 != null ? depth0.height : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"height\",\"hash\":{},\"data\":data}) : helper)))\n    + \"; \";\n},\"9\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"--widget-spacing: \"\n    + container.escapeExpression(((helper = (helper = helpers.widgetSpacing || (depth0 != null ? depth0.widgetSpacing : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"widgetSpacing\",\"hash\":{},\"data\":data}) : helper)))\n    + \"; \";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"overlay\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.overlayBackgroundCss || (depth0 != null ? depth0.overlayBackgroundCss : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"overlayBackgroundCss\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"><\/div>\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<h1>\"\n    + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"title\",\"hash\":{},\"data\":data}) : helper)))\n    + \"Tering mooie layout v2<\/h1>\";\n},\"15\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"\t\t\t<div class=\\\"layout-item column no-padding\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.alignContentCenterVertical : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(16, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t\t<div class=\\\"layout-item-container no-padding no-margin\\\" style=\\\"\"\n    + container.escapeExpression(((helper = (helper = helpers.backgroundLeftColCss || (depth0 != null ? depth0.backgroundLeftColCss : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"backgroundLeftColCss\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depths[1] != null ? depths[1].mfeIncludeEditContainers : depths[1]),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(18, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\t\t\\n\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.widgetsHtml || (depth0 != null ? depth0.widgetsHtml : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"widgetsHtml\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\t\\n\t\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(
20076depth0 != null ? depth0 : {},(depths[1] != null ? depths[1].mfeIncludeEditContainers : depths[1]),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(20, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depths[1] != null ? depths[1].mfeIncludeEditContainers : depths[1]),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(22, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t<\/div>\\n\t\t\t<\/div>\\n\";\n},\"16\":function(container,depth0,helpers,partials,data) {\n    return \" align-center-vertical\";\n},\"18\":function(container,depth0,helpers,partials,data) {\n    return \"<div class=\\\"mfe-edit-container\\\" data-setting-type=\\\"widgets\\\" data-setting-name=\\\"widgetsColumn1\\\">\";\n},\"20\":function(container,depth0,helpers,partials,data) {\n    return \"<\/div>\";\n},\"22\":function(container,depth0,helpers,partials,data) {\n    return \"<div class=\\\"mfe-edit-layout-add-widget\\\">Add widget<\/div>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data,blockParams,depths) {\n    var stack1, helper;\n\n  return \"<div \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.layoutName : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"class=\\\"layout-container content-area page-width\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.noTopPadding : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.hasDarkBackground : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" style=\\\"\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.height : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.widgetSpacing : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + container.escapeExpression(((helper = (helper = helpers.backgroundCss || (depth0 != null ? depth0.backgroundCss : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"backgroundCss\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.overlayBackgroundCss : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t<div class=\\\"wrapper\\\">\\n\t\t\\n\t\t\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.title : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\\n\t\t<div class=\\\"layout layout-vertical\\\">\\n\t\t\t\\n\"\n    + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.columns : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(15, data, 0, blockParams, depths),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\\n\t\t<\/div>\\n\t\\n\t<\/div>\t\\n<\/div>\\n\";\n},\"useData\":true,\"useDepths\":true}"}},"cookie":{"permission":"{\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"                                        \"\n    + container.escapeExpression(((helper = (helper = helpers.siteTitle || (depth0 != null ? depth0.siteTitle : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"siteTitle\",\"hash\":{},\"data\":data}
20076) : helper)))\n    + \" uses cookies on this website\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"                                        Kinder World uses cookies on this website\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.cookieBarText || (depth0 != null ? depth0.cookieBarText : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : {},{\"name\":\"cookieBarText\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    return \"                                        Cookies are small pieces of information, stored in your web browser and sent back to the website on your next visit. This allows the website to recognize you and enhance your experience. You can find more information about cookies in our Cookie Statement.\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div id=\\\"cookie-bar-overlay\\\"><\/div>\\n<div id=\\\"cookie-bar\\\" class=\\\"cookiecontainer cookiewall cookie-box\\\">\\n\t<div class=\\\"wrapper\\\">\\n\t\t<div class=\\\"scroll-area\\\">\\n\t\t\t<div class=\\\"description\\\">\\n\t\t\t\t<h1>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.siteTitle : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"                                <\/h1>\\n\t\t\t\t<p>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.cookieBarText : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.program(7, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t<\/p>\\n\t\t\t<\/div>\\n\t\t\t<div class=\\\"choice\\\">\\n\t\t\t\t<div class=\\\"section functional collapsed\\\">\\n\t\t\t\t\t<div class=\\\"header\\\">\\n\t\t\t\t\t\t<div class=\\\"check\\\">\\n\t\t\t\t\t\t\t<i class=\\\"fas fa-check\\\"><\/i>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t<div class=\\\"label\\\">Functional (can't be disabled)<\/div>\\n\t\t\t\t\t\t<div class=\\\"collapse\\\">\\n\t\t\t\t\t\t\t<i class=\\\"fas fa-chevron-down\\\"><\/i>\\n\t\t\t\t\t\t\t<i class=\\\"fas fa-chevron-up\\\"><\/i>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<div class=\\\"info\\\">Functional cookies are necessary to navigate this website and they allow easy usage of its services. They are legally allowed without consent. <\/div>\\n\t\t\t\t<\/div>\\n\t\t\t\t<label class=\\\"section analytical collapsed\\\">\\n\t\t\t\t\t<div class=\\\"header\\\">\\n\t\t\t\t\t\t<div class=\\\"check\\\">\\n\t\t\t\t\t\t\t<div class=\\\"ui-checkbox\\\">\\n\t\t\t\t\t\t\t\t<input id=\\\"cookie-bar-allow-analytical\\\" type=\\\"checkbox\\\" name=\\\"allowAnalyticalCookies\\\" checked=\\\"checked\\\" \/>\\n\t\t\t\t\t\t\t\t<label for=\\\"cookie-bar-allow-analytical\\\"><span><i class=\\\"fas fa-check\\\"><\/i><\/span><\/label>\\n\t\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t\t<div class=\\\"label\\\">Analytical<\/div>\\n\t\t\t\t\t\t<div class=\\\"collapse\\\">\\n\t\t\t\t\t\t\t<i class=\\\"fas fa-chevron-down\\\"><\/i>\\n\t\t\t\t\t\t\t<i class=\\\"fas fa-chevron-up\\\"><\/i>\\n\t\t\t\t\t\t<\/div>\\n\t\t\t\t\t<\/div>\\n\t\t\t\t\t<div class=\\\"info\\\">Analytical cookies are used to analyse the surfing behavior of the visitor. This information is used to optimise the content and flow of the website.<\/div>\\n\t\t\t\t<\/label>\\n\t\t\t<\/div>\\n\t\t<\/div>\\n\t\t<div class=\\\"continue\\\">\\n\t\t\t<button class=\\\"allow_cookies CookiesOK cookie-button ok-cookies cookiemessage__button--accept accept--cookies\\\" name=\\\"accept\\\">Accept and continue<\/button>\\n\t\t<\/div>\\n\t<\/div>\\n<\/div>\";\n},\"useData\":true}"}};mfeScriptsLoaded.mfe = true;mfeCheckInit();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.