diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-19 15:44:42 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-05-19 15:44:42 +0000 |
commit | 4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch) | |
tree | 5423a1c7516cffe36384133ade12572cf709398d /vendor | |
parent | e570267f2f6b326480d284e0164a6464ba4081bc (diff) | |
download | gitlab-ce-4555e1b21c365ed8303ffb7a3325d773c9b8bf31.tar.gz |
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'vendor')
15 files changed, 1504 insertions, 142 deletions
diff --git a/vendor/assets/javascripts/snowplow/sp.js b/vendor/assets/javascripts/snowplow/sp.js index d9b4b583b4e..88e7304c8ac 100644 --- a/vendor/assets/javascripts/snowplow/sp.js +++ b/vendor/assets/javascripts/snowplow/sp.js @@ -1,143 +1,143 @@ /** * @description JavaScript tracker for Snowplow - * @version 2.16.2 + * @version 2.17.3 * @copyright Anthon Pang, Snowplow Analytics Ltd * @license Simplified BSD * * Documentation: http://bit.ly/sp-js */ -'use strict';(function(){function H(a){"@babel/helpers - typeof";H="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};return H(a)}function Db(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(a);b&&(e=e.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable}));c.push.apply(c,e)}return c} -function ld(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?Db(Object(c),!0).forEach(function(b){var d=c[b];b in a?Object.defineProperty(a,b,{value:d,enumerable:!0,configurable:!0,writable:!0}):a[b]=d}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):Db(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function pa(a){var b=Array.isArray(a)?hb(a):void 0;b||(b= -"undefined"!==typeof Symbol&&Symbol.iterator in Object(a)?Array.from(a):void 0);if(!(a=b||Eb(a)))throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");return a}function Eb(a,b){if(a){if("string"===typeof a)return hb(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);"Object"===c&&a.constructor&&(c=a.constructor.name);if("Map"===c||"Set"===c)return Array.from(a);if("Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return hb(a, -b)}}function hb(a,b){if(null==b||b>a.length)b=a.length;for(var c=0,e=Array(b);c<b;c++)e[c]=a[c];return e}function Fa(a,b){var c;if("undefined"===typeof Symbol||null==a[Symbol.iterator]){if(Array.isArray(a)||(c=Eb(a))||b&&a&&"number"===typeof a.length){c&&(a=c);var e=0;b=function(){};return{s:b,n:function(){return e>=a.length?{done:!0}:{done:!1,value:a[e++]}},e:function(a){throw a;},f:b}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -}var d=!0,f=!1,h;return{s:function(){c=a[Symbol.iterator]()},n:function(){var a=c.next();d=a.done;return a},e:function(a){f=!0;h=a},f:function(){try{d||null==c.return||c.return()}finally{if(f)throw h;}}}}function qa(a,b,c){return c={path:b,exports:{},require:function(a,b){throw Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");}},a(c,c.exports),c.exports}function ra(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var e=a[b];this.set(e[0],e[1])}}function Y(a){var b= --1,c=null==a?0:a.length;for(this.clear();++b<c;){var e=a[b];this.set(e[0],e[1])}}function sa(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var e=a[b];this.set(e[0],e[1])}}function ta(a){this.size=(this.__data__=new Ga(a)).size}function ua(a){var b=-1,c=null==a?0:a.length;for(this.__data__=new Ha;++b<c;)this.add(a[b])}function Ia(a,b,c,e,d){if(a===b)b=!0;else if(null==a||null==b||!T(a)&&!T(b))b=a!==a&&b!==b;else a:{var f=F(a),h=F(b),g=f?"[object Array]":Fb(a),k=h?"[object Array]":Fb(b); -g="[object Arguments]"==g?"[object Object]":g;k="[object Arguments]"==k?"[object Object]":k;var p="[object Object]"==g;h="[object Object]"==k;if((k=g==k)&&ib(a)){if(!ib(b)){b=!1;break a}f=!0;p=!1}if(k&&!p)d||(d=new Ja),b=f||Rb(a)?gc(a,b,c,e,Ia,d):md(a,b,g,c,e,Ia,d);else{if(!(c&1)&&(f=p&&hc.call(a,"__wrapped__"),g=h&&hc.call(b,"__wrapped__"),f||g)){a=f?a.value():a;b=g?b.value():b;d||(d=new Ja);b=Ia(a,b,c,e,d);break a}if(k)b:if(d||(d=new Ja),f=c&1,g=ic(a,Ka,jc),h=g.length,k=ic(b,Ka,jc).length,h==k|| -f){for(k=h;k--;){var x=g[k];if(!(f?x in b:nd.call(b,x))){b=!1;break b}}p=d.get(a);x=d.get(b);if(p&&x)b=p==b&&x==a;else{p=!0;d.set(a,b);d.set(b,a);for(var q=f;++k<h;){x=g[k];var n=a[x],z=b[x];if(e)var t=f?e(z,n,x,b,a,d):e(n,z,x,a,b,d);if(void 0===t?n!==z&&!Ia(n,z,c,e,d):!t){p=!1;break}q||(q="constructor"==x)}p&&!q&&(c=a.constructor,e=b.constructor,c!=e&&"constructor"in a&&"constructor"in b&&!("function"==typeof c&&c instanceof c&&"function"==typeof e&&e instanceof e)&&(p=!1));d["delete"](a);d["delete"](b); -b=p}}else b=!1;else b=!1}}return b}function jb(a,b){if("function"!=typeof a||null!=b&&"function"!=typeof b)throw new TypeError("Expected a function");var c=function d(){var c=arguments,h=b?b.apply(this,c):c[0],g=d.cache;if(g.has(h))return g.get(h);c=a.apply(this,c);d.cache=g.set(h,c)||g;return c};c.cache=new (jb.Cache||Ha);return c}function kc(a){if("string"==typeof a)return a;if(F(a))return lc(a,kc)+"";if(ba(a))return mc?mc.call(a):"";var b=a+"";return"0"==b&&1/a==-od?"-0":b}function nc(a){if(!oc(a)){a= -a.text||"";var b=va.getElementsByTagName("title");b&&void 0!==b[0]&&(a=b[0].text)}return a}function Sb(a){var b=/^(?:(?:https?|ftp):)\/*(?:[^@]+@)?([^:/#]+)/.exec(a);return b?b[1]:a}function bc(a){var b=a.length;"."===a.charAt(--b)&&(a=a.slice(0,b));"*."===a.slice(0,2)&&(a=a.slice(1));return a}function cc(a){var b="",c=Gb("referrer",ca.location.href)||Gb("referer",ca.location.href);if(c)return c;if(a)return a;try{b=ca.top.document.referrer}catch(e){if(ca.parent)try{b=ca.parent.document.referrer}catch(d){b= -""}}""===b&&(b=va.referrer);return b}function v(a,b,c,e){if(a.addEventListener)return a.addEventListener(b,c,e),!0;if(a.attachEvent)return a.attachEvent("on"+b,c);a["on"+b]=c}function Gb(a,b){return(a=(new RegExp("^[^#]*[?&]"+a+"=([^&#]*)")).exec(b))?decodeURIComponent(a[1].replace(/\+/g," ")):null}function La(a){var b=Array.prototype.slice.call(arguments,1);return pd(da(a,function(a){if("function"===typeof a)try{return a.apply(null,b)}catch(e){}else return a}))}function E(a){"undefined"!==typeof console&& -console.warn("Snowplow: "+a)}function kb(a){return a.className.match(/\S+/g)||[]}function Hb(a,b){if(Array.isArray(a)||!N(a))return function(){return!0};if(a.hasOwnProperty("filter"))return a.filter;var c=a.hasOwnProperty("whitelist");a=a.whitelist||a.blacklist;Array.isArray(a)||(a=[a]);for(var e={},d=0;d<a.length;d++)e[a[d]]=!0;return b?function(a){a:{a=kb(a);var b;for(b=0;b<a.length;b++)if(e[a[b]]){a=!0;break a}a=!1}return a===c}:function(a){return a.name in e===c}}function qd(a){return N(a)?a.hasOwnProperty("transform")? -a.transform:function(a){return a}:function(a){return a}}function Tb(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:63072E3;try{var e=Date.now()+1E3*c;wa.setItem("".concat(a,".expires"),e);wa.setItem(a,b);return!0}catch(d){return!1}}function pc(a){try{return wa.removeItem(a),wa.removeItem(a+".expires"),!0}catch(b){return!1}}function rd(){for(var a="_sp_root_domain_test_"+(new Date).getTime(),b="_test_value_"+(new Date).getTime(),c=ca.location.hostname.split("."),e=c.length-1;0<= -e;){var d=c.slice(e,c.length).join(".");A(a,b,0,"/",d);if(A(a)===b){A(a,"",-1,"/",d);a=va.cookie.split("; ");b=[];for(c=0;c<a.length;c++)"_sp_root_domain_test_"===a[c].substring(0,21)&&b.push(a[c]);a=b;for(b=0;b<a.length;b++)A(a[b],"",-1,"/",d);return d}--e}return ca.location.hostname}function qc(a,b){for(var c=0;c<b.length;c++)if(b[c]===a)return!0;return!1}function A(a,b,c,e,d,f,h){return 1<arguments.length?va.cookie=a+"="+encodeURIComponent(b)+(c?"; Expires="+(new Date(+new Date+1E3*c)).toUTCString(): -"")+(e?"; Path="+e:"")+(d?"; Domain="+d:"")+(f?"; SameSite="+f:"")+(h?"; Secure":""):decodeURIComponent((("; "+va.cookie).split("; "+a+"=")[1]||"").split(";")[0])}function lb(a){a=parseInt(a);return isNaN(a)?void 0:a}function Ib(a){a=parseFloat(a);return isNaN(a)?void 0:a}function xa(a){return a&&"function"===typeof a?!0:!1}function sd(a,b,c,e,d){function f(e,f,h){h=h||{};g.hasOwnProperty(e)?E("Tracker namespace "+e+" already exists."):(g[e]=new a(d,e,b,c,h),g[e].setCollectorUrl(f))}function h(){var a; -for(a=0;a<arguments.length;a+=1){var b=arguments[a];var c=Array.prototype.shift.call(b);if(xa(c))try{c.apply(g,b)}catch(mb){E("Custom callback error - ".concat(mb))}finally{continue}var d=c.split(":");c=d[0];d=1<d.length?d[1].split(";"):[];d=[c,d];c=d[0];d=d[1];if("newTracker"===c)f(b[0],b[1],b[2]);else if("setCollectorCf"!==c&&"setCollectorUrl"!==c||d&&0!==d.length){var e=[];if(d&&0!==d.length)for(var h=0;h<d.length;h++)g.hasOwnProperty(d[h])?e.push(g[d[h]]):E('Warning: Tracker namespace "'+d[h]+ -'" not configured');else e=da(g);0===e.length&&E("Warning: No tracker configured");for(d=0;d<e.length;d++)e[d][c].apply(e[d],b)}else d=b[0],b=b[1],E(c+" is deprecated. Set the collector when a new tracker instance using newTracker."),b=void 0===b?"sp":b,f(b),g[b][c](d)}}for(var g={},k=0;k<e.length;k++)h(e[k]);return{push:h}}function rc(a,b,c){if("translate.googleusercontent.com"===a)""===c&&(c=b),a=/^(?:https?|ftp)(?::\/*(?:[^?]+))([?][^#]+)/.exec(b),b=Gb("u",a[1]),a=Sb(b);else{var e;if(!(e="cc.bingj.com"=== -a||"webcache.googleusercontent.com"===a))a:{if(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(a))try{var d=document.body.children[0].children[0].children[0].children[0].children[0].children[0].innerHTML;e="You have reached the cached page for"===d.slice(0,36);break a}catch(f){e=!1;break a}e=void 0}e&&(b=document.links[0].href,a=Sb(b))}return[a,b,c]}function td(){try{var a=!!ya.localStorage}catch(b){a= -!0}if(!a)return!1;try{return ya.localStorage.setItem("modernizr","modernizr"),ya.localStorage.removeItem("modernizr"),!0}catch(b){return!1}}function ud(){var a=ya,b="inner";"innerWidth"in ya||(b="client",a=Ma.documentElement||Ma.body);var c=a[b+"Width"];a=a[b+"Height"];return 0<=c&&0<=a?c+"x"+a:null}function vd(){var a=Ma.documentElement,b=Ma.body,c=Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth);a=Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight,b?Math.max(b.offsetHeight,b.scrollHeight): -0);return isNaN(c)||isNaN(a)?"":c+"x"+a}function wd(a,b){var c,e={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"},d={};if(R.mimeTypes&&R.mimeTypes.length)for(c in e)if(Object.prototype.hasOwnProperty.call(e,c)){var f=R.mimeTypes[e[c]];d[c]=f&&f.enabledPlugin?"1":"0"}R.constructor=== -window.Navigator&&"unknown"!==typeof R.javaEnabled&&void 0!==R.javaEnabled&&R.javaEnabled()&&(d.java="1");xa(ya.GearsFactory)&&(d.gears="1");d.res=nb.width+"x"+nb.height;d.cd=nb.colorDepth;a&&(a=b||"testcookie",void 0===R.cookieEnabled?(A(a,"1"),a="1"===A(a)?"1":"0"):a=R.cookieEnabled?"1":"0",d.cookie=a);return d}function xd(a,b,c){function e(b,d){for(var e,f,h,k;null!==(e=b.parentNode)&&void 0!==e&&"A"!==(f=b.tagName.toUpperCase())&&"AREA"!==f;)b=e;if(void 0!==b.href){e=b.hostname||Sb(b.href);f= -e.toLowerCase();var p=b.href.replace(e,f);/^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto):/i.test(p)||(e=b.id,f=kb(b),h=b.target,k=g?b.innerHTML:null,p=unescape(p),a.trackLinkClick(p,e,f,h,k,c(La(d,b))))}}function d(a){return function(b){b=b||window.event;var c=b.which||b.button;var d=b.target||b.srcElement;"click"===b.type?d&&e(d,a):"mousedown"===b.type?1!==c&&2!==c||!d?p=x=null:(p=c,x=d):"mouseup"===b.type&&(c===p&&d===x&&e(d,a),p=x=null)}}var f,h,g,k,p,x;return{configureLinkClickTracking:function(a, -b,c,d){g=c;k=d;h=b;f=Hb(a,!0)},addClickListeners:function(){var a=document.links,c;for(c=0;c<a.length;c++)if(f(a[c])&&!a[c][b]){var e=a[c];h?(v(e,"mouseup",d(k),!1),v(e,"mousedown",d(k),!1)):v(e,"click",d(k),!1);a[c][b]=!0}}}}function yd(a,b,c){function e(a){return a[zd(["name","id","type","nodeName"],function(b){return a[b]&&"string"===typeof a[b]})]}function d(a){for(;a&&a.nodeName&&"HTML"!==a.nodeName.toUpperCase()&&"FORM"!==a.nodeName.toUpperCase();)a=a.parentNode;if(a&&a.nodeName&&"FORM"===a.nodeName.toUpperCase())return e(a)} -function f(a){var b=[];L(k,function(c){c=a.getElementsByTagName(c).filter(function(a){return a.hasOwnProperty(p)});L(c,function(a){if("submit"!==a.type){var c={name:e(a),value:a.value,nodeName:a.nodeName};a.type&&"INPUT"===a.nodeName.toUpperCase()&&(c.type=a.type);"checkbox"!==a.type&&"radio"!==a.type||a.checked||(c.value=null);b.push(c)}})});return b}function h(b,f){return function(g){g=g.target;var h=g.nodeName&&"INPUT"===g.nodeName.toUpperCase()?g.type:null,k="checkbox"!==g.type||g.checked?n(g.value, -g):null;("change_form"===b||"checkbox"!==h&&"radio"!==h)&&a.trackFormFocusOrChange(b,d(g),e(g),g.nodeName,h,kb(g),k,c(La(f,g,h,k)))}}function g(b){return function(d){d=d.target;var g=f(d);L(g,function(a){a.value=n(a.value,a)});a.trackFormSubmission(e(d),kb(d),g,c(La(b,d,g)))}}var k=["textarea","input","select"],p=b+"form",x=function(){return!0},q=function(){return!0},n=function(a){return a};return{configureFormTracking:function(a){a&&(x=Hb(a.forms,!0),q=Hb(a.fields,!1),n=qd(a.fields))},addFormListeners:function(a){L(document.getElementsByTagName("form"), -function(b){x(b)&&!b[p]&&(L(k,function(c){L(b.getElementsByTagName(c),function(b){q(b)&&!b[p]&&"password"!==b.type.toLowerCase()&&(v(b,"focus",h("focus_form",a),!1),v(b,"change",h("change_form",a),!1),b[p]=!0)})}),v(b,"submit",g(a)),b[p]=!0)})}}}function Ad(a){function b(b,e,d,f,h,g){a.trackSelfDescribingEvent({schema:"iglu:com.snowplowanalytics.snowplow/application_error/jsonschema/1-0-1",data:{programmingLanguage:"JAVASCRIPT",message:b||"JS Exception. Browser doesn't support ErrorEvent API",stackTrace:h&& -h.stack?h.stack:null,lineNumber:d,lineColumn:f,fileName:e}},g)}return{trackError:b,enableErrorTracking:function(a,e,d){v(Bd,"error",function(c){if(xa(a)&&a(c)||null==a){var f=xa(e)?d.concat(e(c)):d;b(c.message,c.filename,c.lineno,c.colno,c.error,f)}},!0)}}}function sc(a,b,c,e,d,f,h,g,k,p,x){function q(a){var b="?",c={co:!0,cx:!0},d=!0,e;for(e in a)a.hasOwnProperty(e)&&!c.hasOwnProperty(e)&&(d?d=!1:b+="&",b+=encodeURIComponent(e)+"="+encodeURIComponent(a[e]));for(var g in c)a.hasOwnProperty(g)&&c.hasOwnProperty(g)&& -(b+="&"+g+"="+encodeURIComponent(a[g]));return b}function n(a){a=Cd(a,function(a){return a.toString()});return{evt:a,bytes:z(JSON.stringify(a))}}function z(a){for(var b=0,c=0;c<a.length;c++){var d=a.charCodeAt(c);127>=d?b+=1:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,c++):b=65535>d?b+3:b+4}return b}function t(){for(;D.length&&"string"!==typeof D[0]&&"object"!==H(D[0]);)D.shift();if(1>D.length)O=!1;else{if(!oc(r))throw"No Snowplow collector configured, cannot track";O=!0;var a=D[0];if(P){var b=function(a){for(var b= -0;b<a;b++)D.shift();e&&Tb(w,JSON.stringify(D.slice(0,p)));t()},c=mb(r),d=setTimeout(function(){c.abort();O=!1},x),f=function(a){for(var b=0,c=0;b<a.length&&!(c+=a[b].bytes,c>=g);)b+=1;return b}(D);c.onreadystatechange=function(){if(4===c.readyState&&200<=c.status&&400>c.status){clearTimeout(d);if(A&&!v)try{uc.setItem(J,!0)}catch(tc){}b(f)}else 4===c.readyState&&400<=c.status&&(clearTimeout(d),O=!1)};a=da(D.slice(0,f),function(a){return a.evt});if(0<a.length){var h;if(!(h=v)&&(h=A))try{h=uc.getItem(J)}catch(tc){h= -void 0}if(v=h){h=new Blob([m(Jb(a))],{type:"application/json"});try{var q=navigator.sendBeacon(r,h)}catch(tc){q=!1}}!0===q&&b(f);A&&q||c.send(m(Jb(a)))}}else{q=new Image(1,1);var n=!0;q.onload=function(){n&&(n=!1,D.shift(),e&&Tb(w,JSON.stringify(D.slice(0,p))),t())};q.onerror=function(){n&&(O=n=!1)};q.src=k?r+a.replace("?","?stm="+(new Date).getTime()+"&"):r+a;setTimeout(function(){n&&O&&(n=!1,t())},x)}}}function mb(a){var b=new XMLHttpRequest;b.open("POST",a,!0);b.withCredentials=!0;b.setRequestHeader("Content-Type", -"application/json; charset=UTF-8");return b}function m(a){return JSON.stringify({schema:"iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",data:a})}function Jb(a){for(var b=(new Date).getTime().toString(),c=0;c<a.length;c++)a[c].stm=b;return a}var y=window.localStorage,O=!1,r,v;d=d.toLowerCase?d.toLowerCase():d;var F=null===d||!0===d||"beacon"===d||"true"===d,A=!!(F&&navigator&&navigator.sendBeacon)&&F,P=("post"===d||A)&&"get"!==d,L=(P=P&&!!(window.XMLHttpRequest&&"withCredentials"in -new XMLHttpRequest))?f:"/i";h=td()&&e&&P&&h||1;var w="snowplowOutQueue_".concat(a,"_").concat(b,"_").concat(P?"post2":"get");var J="spBeaconPreflight_".concat(a,"_").concat(b);if(e)try{var D=JSON.parse(y.getItem(w))}catch($e){}Array.isArray(D)||(D=[]);c.outQueues.push(D);P&&1<h&&c.bufferFlushers.push(function(){O||t()});return{enqueueRequest:function(a,b){r=b+L;if(P){a=n(a);if(a.bytes>=g){E("Event of size "+a.bytes+" is too long - the maximum size is "+g);mb(r).send(m(Jb([a.evt])));return}D.push(a)}else D.push(q(a)); -a=!1;e&&(a=Tb(w,JSON.stringify(D.slice(0,p))));O||a&&!(D.length>=h)||t()},executeQueue:t}}function Dd(a){var b={};"object"===H(a)&&null!==a&&Object.getOwnPropertyNames(a).forEach(function(c,e,d){"function"===typeof a[c]&&(b[c]=Ed(a[c]))});return b}function Fd(a){if(!a)return a;switch(4-a.length%4){case 2:a+="==";break;case 3:a+="="}a=a.replace(/-/g,"+").replace(/_/g,"/");return Gd(a)}function Gd(a){var b=0,c=0;var e="";var d=[];if(!a)return a;a+="";do{var f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(b++)); +'use strict';(function(){function D(a){"@babel/helpers - typeof";D="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};return D(a)}function Sb(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(a);b&&(e=e.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable}));c.push.apply(c,e)}return c} +function nd(a){for(var b=1;b<arguments.length;b++){var c=null!=arguments[b]?arguments[b]:{};b%2?Sb(Object(c),!0).forEach(function(b){var d=c[b];b in a?Object.defineProperty(a,b,{value:d,enumerable:!0,configurable:!0,writable:!0}):a[b]=d}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(c)):Sb(Object(c)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(c,b))})}return a}function qa(a){var b=Array.isArray(a)?jb(a):void 0;b||(b= +"undefined"!==typeof Symbol&&Symbol.iterator in Object(a)?Array.from(a):void 0);if(!(a=b||fc(a)))throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");return a}function fc(a,b){if(a){if("string"===typeof a)return jb(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);"Object"===c&&a.constructor&&(c=a.constructor.name);if("Map"===c||"Set"===c)return Array.from(a);if("Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return jb(a, +b)}}function jb(a,b){if(null==b||b>a.length)b=a.length;for(var c=0,e=Array(b);c<b;c++)e[c]=a[c];return e}function kb(a,b){var c;if("undefined"===typeof Symbol||null==a[Symbol.iterator]){if(Array.isArray(a)||(c=fc(a))||b&&a&&"number"===typeof a.length){c&&(a=c);var e=0;b=function(){};return{s:b,n:function(){return e>=a.length?{done:!0}:{done:!1,value:a[e++]}},e:function(a){throw a;},f:b}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +}var d=!0,f=!1,h;return{s:function(){c=a[Symbol.iterator]()},n:function(){var a=c.next();d=a.done;return a},e:function(a){f=!0;h=a},f:function(){try{d||null==c.return||c.return()}finally{if(f)throw h;}}}}function ra(a){var b={exports:{}};return a(b,b.exports),b.exports}function sa(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var e=a[b];this.set(e[0],e[1])}}function ba(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b<c;){var e=a[b];this.set(e[0],e[1])}}function ta(a){var b=-1,c=null== +a?0:a.length;for(this.clear();++b<c;){var e=a[b];this.set(e[0],e[1])}}function ua(a){this.size=(this.__data__=new lb(a)).size}function Ha(a){var b=-1,c=null==a?0:a.length;for(this.__data__=new va;++b<c;)this.add(a[b])}function Ia(a,b,c,e,d){if(a===b)b=!0;else if(null==a||null==b||!Q(a)&&!Q(b))b=a!==a&&b!==b;else a:{var f=u(a),h=u(b),g=f?"[object Array]":gc(a),k=h?"[object Array]":gc(b);g="[object Arguments]"==g?"[object Object]":g;k="[object Arguments]"==k?"[object Object]":k;var p="[object Object]"== +g;h="[object Object]"==k;if((k=g==k)&&Ja(a)){if(!Ja(b)){b=!1;break a}f=!0;p=!1}if(k&&!p)d||(d=new Ka),b=f||hc(a)?ic(a,b,c,e,Ia,d):od(a,b,g,c,e,Ia,d);else{if(!(c&1)&&(f=p&&jc.call(a,"__wrapped__"),g=h&&jc.call(b,"__wrapped__"),f||g)){a=f?a.value():a;b=g?b.value():b;d||(d=new Ka);b=Ia(a,b,c,e,d);break a}if(k)b:if(d||(d=new Ka),f=c&1,g=kc(a,La,lc),h=g.length,k=kc(b,La,lc).length,h==k||f){for(k=h;k--;){var v=g[k];if(!(f?v in b:pd.call(b,v))){b=!1;break b}}p=d.get(a);v=d.get(b);if(p&&v)b=p==b&&v==a;else{p= +!0;d.set(a,b);d.set(b,a);for(var M=f;++k<h;){v=g[k];var m=a[v],r=b[v];if(e)var N=f?e(r,m,v,b,a,d):e(m,r,v,a,b,d);if(void 0===N?m!==r&&!Ia(m,r,c,e,d):!N){p=!1;break}M||(M="constructor"==v)}p&&!M&&(c=a.constructor,e=b.constructor,c!=e&&"constructor"in a&&"constructor"in b&&!("function"==typeof c&&c instanceof c&&"function"==typeof e&&e instanceof e)&&(p=!1));d["delete"](a);d["delete"](b);b=p}}else b=!1;else b=!1}}return b}function Fb(a,b){if("function"!=typeof a||null!=b&&"function"!=typeof b)throw new TypeError("Expected a function"); +var c=function d(){var c=arguments,h=b?b.apply(this,c):c[0],g=d.cache;if(g.has(h))return g.get(h);c=a.apply(this,c);d.cache=g.set(h,c)||g;return c};c.cache=new (Fb.Cache||va);return c}function mc(a){if("string"==typeof a)return a;if(u(a))return nc(a,mc)+"";if(Ma(a))return oc?oc.call(a):"";var b=a+"";return"0"==b&&1/a==-qd?"-0":b}function pc(a){if(!qc(a)){a=a.text||"";var b=wa.getElementsByTagName("title");b&&void 0!==b[0]&&(a=b[0].text)}return a}function Tb(a){var b=/^(?:(?:https?|ftp):)\/*(?:[^@]+@)?([^:/#]+)/.exec(a); +return b?b[1]:a}function cc(a){var b=a.length;"."===a.charAt(--b)&&(a=a.slice(0,b));"*."===a.slice(0,2)&&(a=a.slice(1));return a}function dc(a){var b="",c=Gb("referrer",Z.location.href)||Gb("referer",Z.location.href);if(c)return c;if(a)return a;try{b=Z.top.document.referrer}catch(e){if(Z.parent)try{b=Z.parent.document.referrer}catch(d){b=""}}""===b&&(b=wa.referrer);return b}function q(a,b,c,e){if(a.addEventListener)return a.addEventListener(b,c,e),!0;if(a.attachEvent)return a.attachEvent("on"+b,c); +a["on"+b]=c}function Gb(a,b){return(a=(new RegExp("^[^#]*[?&]"+a+"=([^&#]*)")).exec(b))?decodeURIComponent(a[1].replace(/\+/g," ")):null}function mb(a){var b=Array.prototype.slice.call(arguments,1);return rd(ca(a,function(a){if("function"===typeof a)try{return a.apply(null,b)}catch(e){}else return a}))}function y(a){"undefined"!==typeof console&&console.warn("Snowplow: "+a)}function da(a){return a.className.match(/\S+/g)||[]}function Hb(a,b){if(Array.isArray(a)||!I(a))return function(){return!0}; +if(a.hasOwnProperty("filter"))return a.filter;var c=a.hasOwnProperty("whitelist");a=a.whitelist||a.blacklist;Array.isArray(a)||(a=[a]);for(var e={},d=0;d<a.length;d++)e[a[d]]=!0;return b?function(a){a:{a=da(a);var b;for(b=0;b<a.length;b++)if(e[a[b]]){a=!0;break a}a=!1}return a===c}:function(a){return a.name in e===c}}function sd(a){return I(a)?a.hasOwnProperty("transform")?a.transform:function(a){return a}:function(a){return a}}function Ub(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]: +63072E3;try{var e=Date.now()+1E3*c;xa.setItem("".concat(a,".expires"),e);xa.setItem(a,b);return!0}catch(d){return!1}}function rc(a){try{return xa.removeItem(a),xa.removeItem(a+".expires"),!0}catch(b){return!1}}function td(a,b){for(var c="_sp_root_domain_test_"+(new Date).getTime(),e="_test_value_"+(new Date).getTime(),d=Z.location.hostname.split("."),f=d.length-1;0<=f;){var h=d.slice(f,d.length).join(".");J(c,e,0,"/",h,a,b);if(J(c)===e){J(c,"",-1,"/",h,a,b);c=wa.cookie.split("; ");e=[];for(d=0;d< +c.length;d++)"_sp_root_domain_test_"===c[d].substring(0,21)&&e.push(c[d]);c=e;for(e=0;e<c.length;e++)J(c[e],"",-1,"/",h,a,b);return h}--f}return Z.location.hostname}function sc(a,b){for(var c=0;c<b.length;c++)if(b[c]===a)return!0;return!1}function J(a,b,c,e,d,f,h){return 1<arguments.length?wa.cookie=a+"="+encodeURIComponent(b)+(c?"; Expires="+(new Date(+new Date+1E3*c)).toUTCString():"")+(e?"; Path="+e:"")+(d?"; Domain="+d:"")+(f?"; SameSite="+f:"")+(h?"; Secure":""):decodeURIComponent((("; "+wa.cookie).split("; "+ +a+"=")[1]||"").split(";")[0])}function nb(a){a=parseInt(a);return isNaN(a)?void 0:a}function Ib(a){a=parseFloat(a);return isNaN(a)?void 0:a}function ob(a){return a&&"function"===typeof a?!0:!1}function ud(a,b,c,e,d){function f(e,f,h){h=h||{};g.hasOwnProperty(e)?y("Tracker namespace "+e+" already exists."):(g[e]=new a(d,e,b,c,h),g[e].setCollectorUrl(f))}function h(){var a;for(a=0;a<arguments.length;a+=1){var b=arguments[a];var c=Array.prototype.shift.call(b);if(ob(c))try{c.apply(g,b)}catch(C){y("Custom callback error - ".concat(C))}finally{continue}var d= +c.split(":");c=d[0];d=1<d.length?d[1].split(";"):[];d=[c,d];c=d[0];d=d[1];if("newTracker"===c)f(b[0],b[1],b[2]);else if("setCollectorCf"!==c&&"setCollectorUrl"!==c||d&&0!==d.length){var e=[];if(d&&0!==d.length)for(var h=0;h<d.length;h++)g.hasOwnProperty(d[h])?e.push(g[d[h]]):y('Warning: Tracker namespace "'+d[h]+'" not configured');else e=ca(g);0===e.length&&y("Warning: No tracker configured");for(d=0;d<e.length;d++)e[d][c].apply(e[d],b)}else d=b[0],b=b[1],y(c+" is deprecated. Set the collector when a new tracker instance using newTracker."), +b=void 0===b?"sp":b,f(b),g[b][c](d)}}for(var g={},k=0;k<e.length;k++)h(e[k]);return{push:h}}function tc(a,b,c){if("translate.googleusercontent.com"===a)""===c&&(c=b),a=/^(?:https?|ftp)(?::\/*(?:[^?]+))([?][^#]+)/.exec(b),b=Gb("u",a[1]),a=Tb(b);else{var e;if(!(e="cc.bingj.com"===a||"webcache.googleusercontent.com"===a))a:{if(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(a))try{var d= +document.body.children[0].children[0].children[0].children[0].children[0].children[0].innerHTML;e="You have reached the cached page for"===d.slice(0,36);break a}catch(f){e=!1;break a}e=void 0}e&&(b=document.links[0].href,a=Tb(b))}return[a,b,c]}function vd(){try{var a=!!ya.localStorage}catch(b){a=!0}if(!a)return!1;try{return ya.localStorage.setItem("modernizr","modernizr"),ya.localStorage.removeItem("modernizr"),!0}catch(b){return!1}}function wd(){var a=ya,b="inner";"innerWidth"in ya||(b="client", +a=pb.documentElement||pb.body);var c=a[b+"Width"];a=a[b+"Height"];return 0<=c&&0<=a?c+"x"+a:null}function xd(){var a=pb.documentElement,b=pb.body,c=Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth);a=Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight,b?Math.max(b.offsetHeight,b.scrollHeight):0);return isNaN(c)||isNaN(a)?"":c+"x"+a}function yd(){var a,b={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash", +java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"},c={};if(R.mimeTypes&&R.mimeTypes.length)for(a in b)if(Object.prototype.hasOwnProperty.call(b,a)){var e=R.mimeTypes[b[a]];c[a]=e&&e.enabledPlugin?"1":"0"}R.constructor===window.Navigator&&"unknown"!==typeof R.javaEnabled&&void 0!==R.javaEnabled&&R.javaEnabled()&&(c.java="1");ob(ya.GearsFactory)&&(c.gears="1");c.res=qb.width+"x"+qb.height;c.cd=qb.colorDepth;c.cookie=R.cookieEnabled?"1":"0";return c}function zd(a, +b,c){function e(b,d){for(var e,f,h,k;null!==(e=b.parentNode)&&void 0!==e&&"A"!==(f=b.tagName.toUpperCase())&&"AREA"!==f;)b=e;if(void 0!==b.href){e=b.hostname||Tb(b.href);f=e.toLowerCase();var p=b.href.replace(e,f);/^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto):/i.test(p)||(e=b.id,f=da(b),h=b.target,k=g?b.innerHTML:null,p=unescape(p),a.trackLinkClick(p,e,f,h,k,c(mb(d,b))))}}function d(a){return function(b){b=b||window.event;var c=b.which||b.button;var d=b.target||b.srcElement;"click"=== +b.type?d&&e(d,a):"mousedown"===b.type?1!==c&&2!==c||!d?p=v=null:(p=c,v=d):"mouseup"===b.type&&(c===p&&d===v&&e(d,a),p=v=null)}}var f,h,g,k,p,v;return{configureLinkClickTracking:function(a,b,c,d){g=c;k=d;h=b;f=Hb(a,!0)},addClickListeners:function(){var a=document.links,c;for(c=0;c<a.length;c++)if(f(a[c])&&!a[c][b]){var e=a[c];h?(q(e,"mouseup",d(k),!1),q(e,"mousedown",d(k),!1)):q(e,"click",d(k),!1);a[c][b]=!0}}}}function Ad(a,b,c){function e(a){return a[Bd(["name","id","type","nodeName"],function(b){return a[b]&& +"string"===typeof a[b]})]}function d(a){for(;a&&a.nodeName&&"HTML"!==a.nodeName.toUpperCase()&&"FORM"!==a.nodeName.toUpperCase();)a=a.parentNode;if(a&&a.nodeName&&"FORM"===a.nodeName.toUpperCase())return e(a)}function f(a){var b=[];O(k,function(c){c=Array.prototype.filter.call(a.getElementsByTagName(c),function(a){return a.hasOwnProperty(p)});O(c,function(a){if("submit"!==a.type){var c={name:e(a),value:a.value,nodeName:a.nodeName};a.type&&"INPUT"===a.nodeName.toUpperCase()&&(c.type=a.type);"checkbox"!== +a.type&&"radio"!==a.type||a.checked||(c.value=null);b.push(c)}})});return b}function h(b,f){return function(g){g=g.target;var h=g.nodeName&&"INPUT"===g.nodeName.toUpperCase()?g.type:null,k="checkbox"!==g.type||g.checked?m(g.value,g):null;("change_form"===b||"checkbox"!==h&&"radio"!==h)&&a.trackFormFocusOrChange(b,d(g),e(g),g.nodeName,h,da(g),k,c(mb(f,g,h,k)))}}function g(b){return function(d){d=d.target;var g=f(d);O(g,function(a){a.value=m(a.value,a)});a.trackFormSubmission(e(d),da(d),g,c(mb(b,d, +g)))}}var k=["textarea","input","select"],p=b+"form",v=function(){return!0},M=function(){return!0},m=function(a){return a};return{configureFormTracking:function(a){a&&(v=Hb(a.forms,!0),M=Hb(a.fields,!1),m=sd(a.fields))},addFormListeners:function(a){O(document.getElementsByTagName("form"),function(b){v(b)&&!b[p]&&(O(k,function(c){O(b.getElementsByTagName(c),function(b){M(b)&&!b[p]&&"password"!==b.type.toLowerCase()&&(q(b,"focus",h("focus_form",a),!1),q(b,"change",h("change_form",a),!1),b[p]=!0)})}), +q(b,"submit",g(a)),b[p]=!0)})}}}function Cd(a){function b(b,e,d,f,h,g){a.trackSelfDescribingEvent({schema:"iglu:com.snowplowanalytics.snowplow/application_error/jsonschema/1-0-1",data:{programmingLanguage:"JAVASCRIPT",message:b||"JS Exception. Browser doesn't support ErrorEvent API",stackTrace:h&&h.stack?h.stack:null,lineNumber:d,lineColumn:f,fileName:e}},g)}return{trackError:b,enableErrorTracking:function(a,e,d){q(Dd,"error",function(c){if(ob(a)&&a(c)||null==a){var f=ob(e)?d.concat(e(c)):d;b(c.message, +c.filename,c.lineno,c.colno,c.error,f)}},!0)}}}function Ed(a,b,c,e,d,f,h,g,k,p,v,M){function m(a){var b="?",c={co:!0,cx:!0},d=!0,e;for(e in a)a.hasOwnProperty(e)&&!c.hasOwnProperty(e)&&(d?d=!1:b+="&",b+=encodeURIComponent(e)+"="+encodeURIComponent(a[e]));for(var g in c)a.hasOwnProperty(g)&&c.hasOwnProperty(g)&&(b+="&"+g+"="+encodeURIComponent(a[g]));return b}function r(a){a=Fd(a,function(a){return a.toString()});return{evt:a,bytes:N(JSON.stringify(a))}}function N(a){for(var b=0,c=0;c<a.length;c++){var d= +a.charCodeAt(c);127>=d?b+=1:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,c++):b=65535>d?b+3:b+4}return b}function C(){for(;E.length&&"string"!==typeof E[0]&&"object"!==D(E[0]);)E.shift();if(1>E.length)q=!1;else{if(!qc(u))throw"No collector configured";q=!0;var a=E[0];if(P){var b=function(a){for(var b=0,c=0;b<a.length&&!(c+=a[b].bytes,c>=g);)b+=1;return b},c=function(a){for(var b=0;b<a;b++)E.shift();e&&Ub(L,JSON.stringify(E.slice(0,p)));C()};if(F){a=vc(a);var d=n(a,!1);var f=1}else a=u,d=n(a,!0),f=b(E);var h= +setTimeout(function(){d.abort();q=!1},v);d.onreadystatechange=function(){if(4===d.readyState&&200<=d.status&&400>d.status){clearTimeout(h);if(x&&!J)try{wc.setItem(Q,!0)}catch(uc){}c(f)}else 4===d.readyState&&400<=d.status&&(clearTimeout(h),q=!1)};if(F)d.send();else if(b=E.slice(0,f),0<b.length){var k;if(!(k=J)&&(k=x))try{k=wc.getItem(Q)}catch(uc){k=void 0}J=k;b=ca(b,function(a){return a.evt});if(J){k=new Blob([Jb(w(b))],{type:"application/json"});try{var m=navigator.sendBeacon(a,k)}catch(uc){m=!1}}!0=== +m&&c(f);x&&m||d.send(Jb(w(b)))}}else if(M)q=!1;else{m=new Image(1,1);var r=!0;m.onload=function(){r&&(r=!1,E.shift(),e&&Ub(L,JSON.stringify(E.slice(0,p))),C())};m.onerror=function(){r&&(q=r=!1)};m.src=vc(a);setTimeout(function(){r&&q&&(r=!1,C())},v)}}}function n(a,b){var c=new XMLHttpRequest;b?(c.open("POST",a,!0),c.setRequestHeader("Content-Type","application/json; charset=UTF-8")):c.open("GET",a,!0);c.withCredentials=!0;M&&c.setRequestHeader("SP-Anonymous","*");return c}function Jb(a){return JSON.stringify({schema:"iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4", +data:a})}function w(a){for(var b=(new Date).getTime().toString(),c=0;c<a.length;c++)a[c].stm=b;return a}function vc(a){return k?u+a.replace("?","?stm="+(new Date).getTime()+"&"):u+a}var B=window.localStorage,q=!1,u,J;d=d.toLowerCase?d.toLowerCase():d;var O=null===d||!0===d||"beacon"===d||"true"===d,x=!!(O&&navigator&&navigator.sendBeacon)&&O,F="get"===d,P=!!(window.XMLHttpRequest&&"withCredentials"in new XMLHttpRequest),I=!F&&P&&("post"===d||O),U=I?f:"/i";h=vd()&&e&&I&&h||1;var L="snowplowOutQueue_".concat(a, +"_").concat(b,"_").concat(I?"post2":"get");var Q="spBeaconPreflight_".concat(a,"_").concat(b);if(e)try{var E=JSON.parse(B.getItem(L))}catch(df){}Array.isArray(E)||(E=[]);c.outQueues.push(E);P&&1<h&&c.bufferFlushers.push(function(){q||C()});return{enqueueRequest:function(a,b){u=b+U;if(I){a=r(a);if(a.bytes>=g){y("Event ("+a.bytes+"B) too big, max is "+g);n(u,!0).send(Jb(w([a.evt])));return}E.push(a)}else E.push(m(a));a=!1;e&&(a=Ub(L,JSON.stringify(E.slice(0,p))));q||a&&!(E.length>=h)||C()},executeQueue:function(){q|| +C()},setUseLocalStorage:function(a){e=a},setAnonymousTracking:function(a){M=a},setCollectorUrl:function(a){u=a+U}}}function Gd(a){var b={};"object"===D(a)&&null!==a&&Object.getOwnPropertyNames(a).forEach(function(c,e,d){"function"===typeof a[c]&&(b[c]=Hd(a[c]))});return b}function Id(a){if(!a)return a;switch(4-a.length%4){case 2:a+="==";break;case 3:a+="="}a=a.replace(/-/g,"+").replace(/_/g,"/");return Jd(a)}function Jd(a){var b=0,c=0;var e="";var d=[];if(!a)return a;a+="";do{var f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(b++)); var h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(b++));e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(b++));var g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(b++));var k=f<<18|h<<12|e<<6|g;f=k>>16&255;h=k>>8&255;k&=255;64===e?d[c++]=String.fromCharCode(f):64===g?d[c++]=String.fromCharCode(f,h):d[c++]=String.fromCharCode(f,h,k)}while(b<a.length);e=d.join("");return function(a){return decodeURIComponent(a.split("").map(function(a){return"%"+ -("00"+a.charCodeAt(0).toString(16)).slice(-2)}).join(""))}(e.replace(/\0+$/,""))}function Kb(a){if(!vc(a))return!1;for(var b in a)if(Object.prototype.hasOwnProperty.call(a,b))return!0;return!1}function vc(a){return"undefined"!==typeof a&&null!==a&&(a.constructor==={}.constructor||a.constructor===[].constructor)}function za(a){var b={},c=function(a,c){null!=c&&""!==c&&(b[a]=c)};return{add:c,addDict:function(a){for(var b in a)Object.prototype.hasOwnProperty.call(a,b)&&c(b,a[b])},addJson:function(b, -d,f){if(f&&Kb(f))if(f=JSON.stringify(f),a){if(f){d=f;var e=f=0,g=[];if(d){d=unescape(encodeURIComponent(d));do{var k=d.charCodeAt(f++);var p=d.charCodeAt(f++);var x=d.charCodeAt(f++);var q=k<<16|p<<8|x;k=q>>18&63;p=q>>12&63;x=q>>6&63;q&=63;g[e++]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(k)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(p)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(x)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(q)}while(f< -d.length);f=g.join("");d=d.length%3;d=(d?f.slice(0,d-3):f)+"===".slice(d||3)}d=d.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}else d=f;c(b,d)}else c(d,f)},build:function(){return b}}}function Hd(){var a=[],b=[];return{getGlobalPrimitives:function(){return a},getConditionalProviders:function(){return b},addGlobalContexts:function(c){var e=[],d=[];c=Fa(c);var f;try{for(c.s();!(f=c.n()).done;){var h=f.value;wc(h)?e.push(h):fa(h)&&d.push(h)}}catch(g){c.e(g)}finally{c.f()}a=a.concat(d);b=b.concat(e)}, -clearGlobalContexts:function(){b=[];a=[]},removeGlobalContexts:function(c){c=Fa(c);var e;try{var d=function(){var c=e.value;wc(c)?b=b.filter(function(a){return!ob(a,c)}):fa(c)&&(a=a.filter(function(a){return!ob(a,c)}))};for(c.s();!(e=c.n()).done;)d()}catch(f){c.e(f)}finally{c.f()}},getApplicableContexts:function(c){c=c.build();var e=Kb(c)&&"e"in c?"string"===typeof c.e:!1;if(e){c=ld({},c);try{null!=c&&pb(c,"ue_px",qb)&&(c.ue_px=JSON.parse(Fd(J(c,["ue_px"]))));var d=c}catch(g){d=c}c=d;e="string"=== -typeof J(c,"ue_px.data.schema")?J(c,"ue_px.data.schema"):"string"===typeof J(c,"ue_pr.data.schema")?J(c,"ue_pr.data.schema"):"string"===typeof J(c,"schema")?J(c,"schema"):"";var f=J(c,"e","");d=[];var h=Na(a,c,f,e);d.push.apply(d,pa(h));c=Id(b,c,f,e);d.push.apply(d,pa(c));return d}return[]}}}function Jd(a){if("*"===a[0]||"*"===a[1])return!1;if(0<a.slice(2).length){var b=!1;a=Fa(a.slice(2));var c;try{for(a.s();!(c=a.n()).done;)if("*"===c.value)b=!0;else if(b)return!1}catch(e){a.e(e)}finally{a.f()}return!0}return 2== -a.length?!0:!1}function xc(a){return(a=a.split("."))&&1<a.length?Jd(a):!1}function yc(a){a=/^iglu:((?:(?:[a-zA-Z0-9-_]+|\*).)+(?:[a-zA-Z0-9-_]+|\*))\/([a-zA-Z0-9-_.]+|\*)\/jsonschema\/([1-9][0-9]*|\*)-(0|[1-9][0-9]*|\*)-(0|[1-9][0-9]*|\*)$/.exec(a);if(null!==a&&xc(a[1]))return a.slice(1,6)}function Lb(a){if(a=yc(a)){var b=a[0];return 5===a.length&&xc(b)}return!1}function Kd(a){return Array.isArray(a)&&a.every(function(a){return"string"===typeof a})}function zc(a){return Kd(a)?a.every(function(a){return Lb(a)}): -"string"===typeof a?Lb(a):!1}function Oa(a){return Kb(a)&&"schema"in a&&"data"in a?"string"===typeof a.schema&&"object"===H(a.data):!1}function Ld(a){var b=0;if(T(a)&&"[object Object]"==U(a)){var c=Md(a);null===c?c=!0:(c=Nd.call(c,"constructor")&&c.constructor,c="function"==typeof c&&c instanceof c&&Ac.call(c)==Od)}else c=!1;if(c){if(null!=a&&pb(a,"accept",qb))if(zc(a.accept))b+=1;else return!1;if(null!=a&&pb(a,"reject",qb))if(zc(a.reject))b+=1;else return!1;return 0<b&&2>=b}return!1}function Bc(a){return"function"=== -typeof a&&1>=a.length}function fa(a){return"function"===typeof a&&1>=a.length||Oa(a)}function Cc(a){return Array.isArray(a)&&2===a.length?Array.isArray(a[1])?Bc(a[0])&&rb(a[1],fa):Bc(a[0])&&fa(a[1]):!1}function Dc(a){return Array.isArray(a)&&2===a.length?Ld(a[0])?Array.isArray(a[1])?rb(a[1],fa):fa(a[1]):!1:!1}function wc(a){return Cc(a)||Dc(a)}function Pd(a,b){var c=0,e=0,d=J(a,"accept");Array.isArray(d)?a.accept.some(function(a){return sb(a,b)})&&e++:"string"===typeof d&&sb(d,b)&&e++;d=J(a,"reject"); -Array.isArray(d)?a.reject.some(function(a){return sb(a,b)})&&c++:"string"===typeof d&&sb(d,b)&&c++;return 0<e&&0===c?!0:!1}function sb(a,b){if(!Lb(a))return!1;a=yc(a);b=/^iglu:([a-zA-Z0-9-_.]+)\/([a-zA-Z0-9-_]+)\/jsonschema\/([1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)$/.exec(b);b=null!==b?b.slice(1,6):void 0;if(a&&b){if(!Qd(a[0],b[0]))return!1;for(var c=1;5>c;c++)if(!Ec(a[c],b[c]))return!1;return!0}return!1}function Qd(a,b){b=b.split(".");a=a.split(".");if(b&&a){if(b.length!==a.length)return!1; -for(var c=0;c<a.length;c++)if(!Ec(b[c],a[c]))return!1;return!0}return!1}function Ec(a,b){return a&&b&&"*"===a||a===b}function Fc(a){return Array.isArray(a)?a:[a]}function Na(a,b,c,e){var d;a=Fc(a);a=da(a,function(a){a:if(Oa(a))a=[a];else{if("function"===typeof a&&1>=a.length){b:{var d=void 0;try{d=a({event:b,eventType:c,eventSchema:e});if(Oa(d)||Array.isArray(d)&&rb(d,Oa)){var g=d;break b}g=void 0;break b}catch(k){}g=void 0}if(Oa(g)){a=[g];break a}else if(Array.isArray(g)){a=g;break a}}a=void 0}if(a&& -0!==a.length)return a});return(d=[]).concat.apply(d,pa(Gc(a)))}function Id(a,b,c,e){var d;a=Fc(a);a=da(a,function(a){a:{if(Cc(a)){var d=a[0],g=!1;try{g=d({event:b,eventType:c,eventSchema:e})}catch(k){g=!1}if(!0===g){a=Na(a[1],b,c,e);break a}}else if(Dc(a)&&Pd(a[0],e)){a=Na(a[1],b,c,e);break a}a=[]}if(a&&0!==a.length)return a});return(d=[]).concat.apply(d,pa(Gc(a)))}function Rd(a,b){var c=Hd(),e={};"undefined"===typeof a&&(a=!0);var d=function(a,b){var c={};b=b||{};for(var d in a)if(b[d]||null!==a[d]&& -"undefined"!==typeof a[d])c[d]=a[d];return c},f=function(a,d,f,h){a.addDict(e);a.add("eid",Sd.v4());f=null==f?{type:"dtm",value:(new Date).getTime()}:"number"===typeof f?{type:"dtm",value:f}:"ttm"===f.type?{type:"ttm",value:f.value}:{type:"dtm",value:f.value||(new Date).getTime()};a.add(f.type,f.value.toString());f=c.getApplicableContexts(a);var g=[];d&&d.length&&g.push.apply(g,pa(d));f&&f.length&&g.push.apply(g,pa(f));d=g&&g.length?{schema:"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0", -data:g}:void 0;void 0!==d&&a.addJson("cx","co",d);"function"===typeof b&&b(a);try{h&&h(a.build())}catch(n){console.warn("Snowplow: error running custom callback")}return a},h=function(b,c,d,e){var g=za(a);b={schema:"iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0",data:b};g.add("e","ue");g.addJson("ue_px","ue_pr",b);return f(g,c,d,e)};return{addPayloadPair:function(a,b){e[a]=b},setBase64Encoding:function(b){a=b},addPayloadDict:function(a){for(var b in a)Object.prototype.hasOwnProperty.call(a, -b)&&(e[b]=a[b])},resetPayloadPairs:function(a){e=vc(a)?a:{}},setTrackerVersion:function(a){e.tv=a},setTrackerNamespace:function(a){e.tna=a},setAppId:function(a){e.aid=a},setPlatform:function(a){e.p=a},setUserId:function(a){e.uid=a},setScreenResolution:function(a,b){e.res=a+"x"+b},setViewport:function(a,b){e.vp=a+"x"+b},setColorDepth:function(a){e.cd=a},setTimezone:function(a){e.tz=a},setLang:function(a){e.lang=a},setIpAddress:function(a){e.ip=a},setUseragent:function(a){e.ua=a},trackUnstructEvent:h, -trackSelfDescribingEvent:h,trackPageView:function(b,c,d,e,h,n){var g=za(a);g.add("e","pv");g.add("url",b);g.add("page",c);g.add("refr",d);return f(g,e,h,n)},trackPagePing:function(b,c,d,e,h,n,z,t,mb,m){var g=za(a);g.add("e","pp");g.add("url",b);g.add("page",c);g.add("refr",d);g.add("pp_mix",e.toString());g.add("pp_max",h.toString());g.add("pp_miy",n.toString());g.add("pp_may",z.toString());return f(g,t,mb,m)},trackStructEvent:function(b,c,d,e,h,n,z,t){var g=za(a);g.add("e","se");g.add("se_ca",b); -g.add("se_ac",c);g.add("se_la",d);g.add("se_pr",e);g.add("se_va",null==h?void 0:h.toString());return f(g,n,z,t)},trackEcommerceTransaction:function(b,c,d,e,h,n,z,t,m,r,Jb,y){var g=za(a);g.add("e","tr");g.add("tr_id",b);g.add("tr_af",c);g.add("tr_tt",d);g.add("tr_tx",e);g.add("tr_sh",h);g.add("tr_ci",n);g.add("tr_st",z);g.add("tr_co",t);g.add("tr_cu",m);return f(g,r,Jb,y)},trackEcommerceTransactionItem:function(b,c,d,e,h,n,z,t,m,r){var g=za(a);g.add("e","ti");g.add("ti_id",b);g.add("ti_sk",c);g.add("ti_nm", -d);g.add("ti_ca",e);g.add("ti_pr",h);g.add("ti_qu",n);g.add("ti_cu",z);return f(g,t,m,r)},trackScreenView:function(a,b,c,e,f){return h({schema:"iglu:com.snowplowanalytics.snowplow/screen_view/jsonschema/1-0-0",data:d({name:a,id:b})},c,e,f)},trackLinkClick:function(a,b,c,e,f,n,z,t){a={schema:"iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1",data:d({targetUrl:a,elementId:b,elementClasses:c,elementTarget:e,elementContent:f})};return h(a,n,z,t)},trackAdImpression:function(a,b,c,e,f,n, -z,t,m,r,v){a={schema:"iglu:com.snowplowanalytics.snowplow/ad_impression/jsonschema/1-0-0",data:d({impressionId:a,costModel:b,cost:c,targetUrl:e,bannerId:f,zoneId:n,advertiserId:z,campaignId:t})};return h(a,m,r,v)},trackAdClick:function(a,b,c,e,f,n,z,t,m,r,v,y){a={schema:"iglu:com.snowplowanalytics.snowplow/ad_click/jsonschema/1-0-0",data:d({targetUrl:a,clickId:b,costModel:c,cost:e,bannerId:f,zoneId:n,impressionId:z,advertiserId:t,campaignId:m})};return h(a,r,v,y)},trackAdConversion:function(a,b,c, -e,f,n,z,t,m,r,v,y){a={schema:"iglu:com.snowplowanalytics.snowplow/ad_conversion/jsonschema/1-0-0",data:d({conversionId:a,costModel:b,cost:c,category:e,action:f,property:n,initialValue:z,advertiserId:t,campaignId:m})};return h(a,r,v,y)},trackSocialInteraction:function(a,b,c,e,f,n){a={schema:"iglu:com.snowplowanalytics.snowplow/social_interaction/jsonschema/1-0-0",data:d({action:a,network:b,target:c})};return h(a,e,f,n)},trackAddToCart:function(a,b,c,e,f,n,z,t,m){return h({schema:"iglu:com.snowplowanalytics.snowplow/add_to_cart/jsonschema/1-0-0", -data:d({sku:a,name:b,category:c,unitPrice:e,quantity:f,currency:n})},z,t,m)},trackRemoveFromCart:function(a,b,c,e,f,n,m,t,r){return h({schema:"iglu:com.snowplowanalytics.snowplow/remove_from_cart/jsonschema/1-0-0",data:d({sku:a,name:b,category:c,unitPrice:e,quantity:f,currency:n})},m,t,r)},trackFormFocusOrChange:function(a,b,c,e,f,n,m,t,r,v){var g="";b={formId:b,elementId:c,nodeName:e,elementClasses:n,value:m};"change_form"===a?(g="iglu:com.snowplowanalytics.snowplow/change_form/jsonschema/1-0-0", -b.type=f):"focus_form"===a&&(g="iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-0-0",b.elementType=f);return h({schema:g,data:d(b,{value:!0})},t,r,v)},trackFormSubmission:function(a,b,c,e,f,n){return h({schema:"iglu:com.snowplowanalytics.snowplow/submit_form/jsonschema/1-0-0",data:d({formId:a,formClasses:b,elements:c})},e,f,n)},trackSiteSearch:function(a,b,c,e,f,n,m){return h({schema:"iglu:com.snowplowanalytics.snowplow/site_search/jsonschema/1-0-0",data:d({terms:a,filters:b,totalResults:c, -pageResults:e})},f,n,m)},trackConsentWithdrawn:function(a,b,c,e,f,n,m,t){b={schema:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0",data:d({id:b,version:c,name:e,description:f})};return h({schema:"iglu:com.snowplowanalytics.snowplow/consent_withdrawn/jsonschema/1-0-0",data:d({all:a})},b.data&&n?n.concat([b]):n,m,t)},trackConsentGranted:function(a,b,c,e,f,n,m,t){a={schema:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0",data:d({id:a,version:b,name:c,description:e})}; -return h({schema:"iglu:com.snowplowanalytics.snowplow/consent_granted/jsonschema/1-0-0",data:d({expiry:f})},n?n.concat([a]):[a],m,t)},addGlobalContexts:function(a){c.addGlobalContexts(a)},clearGlobalContexts:function(){c.clearGlobalContexts()},removeGlobalContexts:function(a){c.removeGlobalContexts(a)}}}function Pa(a,b,c,e,d){function f(a){return-1<Rb.map(function(a){return a.toLowerCase()}).indexOf(a.toLowerCase())}function h(){Qa=rc(B.domain,C.location.href,cc());Qa[1]!==Aa&&(Mb=cc(Aa));Ja=bc(Qa[0]); -Aa=Qa[1]}function g(){var a=(new Date).getTime();if(this.href){a="_sp="+(Nb+"."+a);var b=this.href.split("#"),c=b[0].split("?"),d=c.shift();if(c=c.join("?")){for(var e=!0,f=c.split("&"),g=0;g<f.length;g++)if("_sp="===f[g].substr(0,4)){e=!1;f[g]=a;c=f.join("&");break}e&&(c=a+"&"+c)}else c=a;b[0]=d+"?"+c;this.href=b.join("#")}}function k(a){for(var b=0;b<B.links.length;b++){var c=B.links[b];!c.spDecorationEnabled&&a(c)&&(v(c,"click",g,!0),v(c,"mousedown",g,!0),c.spDecorationEnabled=!0)}}function p(a){if(Pa){var b= -/#.*/;a=a.replace(b,"")}Sa&&(b=/[{}]/g,a=a.replace(b,""));return a}function m(a){return(a=/^([a-z]+):/.exec(a))?a[1]:null}function q(a){return Ua+a+"."+zb}function n(a){a=q(a);if("localStorage"==G){a:{try{var b=wa.getItem(a+".expires");if(null===b||+b>Date.now()){var c=wa.getItem(a);break a}else wa.removeItem(a),wa.removeItem(a+".expires");c=void 0;break a}catch(af){}c=void 0}return c}if("cookie"==G||"cookieAndLocalStorage"==G)return A(a)}function r(){h();zb=Qb((ka||Ja)+(Da||"/")).slice(0,4)}function t(){Ub= -(new Date).getTime()}function F(){var a=H(),b=a[0];b<Vb?Vb=b:b>Wb&&(Wb=b);a=a[1];a<Xb?Xb=a:a>Yb&&(Yb=a);t()}function H(){var a=B.compatMode&&"BackCompat"!==B.compatMode?B.documentElement:B.body;return[a.scrollLeft||C.pageXOffset,a.scrollTop||C.pageYOffset]}function J(){var a=H(),b=a[0];Wb=Vb=b;Yb=Xb=a=a[1]}function y(a){a=Math.round(a);if(!isNaN(a))return a}function O(){var a=q("ses");R(a,"*",La)}function N(a,b,c,d,e,f){var dc=q("id");R(dc,a+"."+b+"."+c+"."+d+"."+e+"."+f,jb)}function R(a,b,c){if(!ha|| -tb)"localStorage"==G?Tb(a,b,c):("cookie"==G||"cookieAndLocalStorage"==G)&&A(a,b,c,Da,ka,Ab,Bb)}function S(){var a=q("id"),b=q("ses");pc(a);pc(b);A(a,"",-1,"/",void 0);A(b,"",-1,"/",void 0)}function T(){if(!ha||tb){var a="none"!=G&&!!n("ses"),b=P();b[1]?Nb=b[1]:(Nb=ha?"":V(),b[1]=Nb);Q=b[6];a||(b[3]++,Q=V(),b[6]=Q,b[5]=b[4]);"none"!=G&&(O(),b[4]=Math.round((new Date).getTime()/1E3),b.shift(),N.apply(null,b))}}function P(){if("none"==G)return[];var a=Math.round((new Date).getTime()/1E3),b=n("id");b? -(a=b.split("."),a.unshift("0")):a=["1",Nb,a,0,a,""];a[6]||(a[6]=V());return a}function U(a){return nb?"https://"+a:Kb?"http://"+a:("https:"===B.location.protocol?"https":"http")+"://"+a}function w(a){var b=ec.concat(a||[]);I.webPage&&b.push({schema:"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",data:{id:D()}});I.performanceTiming&&(a=aa())&&b.push(a);if(C.optimizely){I.optimizelySummary&&(a=ta(),L(a,function(a){b.push(a)}));I.optimizelyXSummary&&(a=ya(),L(a,function(a){b.push(a)})); -if(I.optimizelyExperiments){var c=ma();for(a=0;a<c.length;a++)b.push(c[a])}if(I.optimizelyStates)for(c=oa(),a=0;a<c.length;a++)b.push(c[a]);if(I.optimizelyVariations)for(c=pa(),a=0;a<c.length;a++)b.push(c[a]);I.optimizelyVisitor&&(a=qa())&&b.push(a);if(I.optimizelyAudiences)for(c=ra(),a=0;a<c.length;a++)b.push(c[a]);if(I.optimizelyDimensions)for(c=sa(),a=0;a<c.length;a++)b.push(c[a])}I.parrable&&(a=za())&&b.push(a);I.gdprBasis&&Ra.gdprBasis&&(a=Ra.gdprBasis?{schema:"iglu:com.snowplowanalytics.snowplow/gdpr/jsonschema/1-0-0", -data:{basisForProcessing:Ra.gdprBasis,documentId:Ra.gdprDocId||null,documentVersion:Ra.gdprDocVer||null,documentDescription:Ra.gdprDocDesc||null}}:void 0,a&&b.push(a));I.clientHints&&Ba&&b.push({schema:"iglu:org.ietf/http_client_hints/jsonschema/1-0-0",data:Ba});return b}function X(){Eb&&null!=e.pageViewId||(e.pageViewId=V())}function D(){null==e.pageViewId&&(e.pageViewId=V());return e.pageViewId}function aa(){var a="navigationStart redirectStart redirectEnd fetchStart domainLookupStart domainLookupEnd connectStart secureConnectionStart connectEnd requestStart responseStart responseEnd unloadEventStart unloadEventEnd domLoading domInteractive domContentLoadedEventStart domContentLoadedEventEnd domComplete loadEventStart loadEventEnd msFirstPaint chromeFirstPaint requestEnd proxyStart proxyEnd".split(" "), -b=C.performance||C.mozPerformance||C.msPerformance||C.webkitPerformance;if(b){var c={},d;for(d in b.timing)qc(d,a)&&null!==b.timing[d]&&(c[d]=b.timing[d]);delete c.requestEnd;return{schema:"iglu:org.w3/PerformanceTiming/jsonschema/1-0-0",data:c}}}function ea(a,b){if(C.optimizely&&C.optimizely.data){var c=C.optimizely.data[a];"undefined"!==typeof b&&void 0!==c&&(c=c[b])}return c}function Y(a,b){if(C.optimizely&&"function"===typeof C.optimizely.get){var c=C.optimizely.get(a);"undefined"!==typeof b&& -void 0!==c&&(c=c[b])}return c}function ca(){var a=ea("state"),b=ea("experiments");return da(a&&b&&a.activeExperiments,function(c){var d=b[c];return{activeExperimentId:c.toString(),variation:a.variationIdsMap[c][0].toString(),conditional:d&&d.conditional,manual:d&&d.manual,name:d&&d.name}})}function la(){var a=Y("state"),b=a&&a.getActiveExperimentIds(),c=a&&a.getVariationMap(),d=Y("visitor");return da(b,function(a){var b=c[a],e=b&&b.name&&b.name.toString()||null;b=b&&b.id;var f=d&&d.visitorId&&d.visitorId.toString()|| -null;return{experimentId:lb(a)||null,variationName:e,variation:lb(b)||null,visitorId:f}})}function ma(){var a=ea("experiments");if(a){var b=[],c;for(c in a)if(a.hasOwnProperty(c)){var d={};d.id=c;var e=a[c];d.code=e.code;d.manual=e.manual;d.conditional=e.conditional;d.name=e.name;d.variationIds=e.variation_ids;b.push({schema:"iglu:com.optimizely/experiment/jsonschema/1-0-0",data:d})}return b}return[]}function oa(){var a=[],b=ea("experiments");if(b)for(var c in b)b.hasOwnProperty(c)&&a.push(c);if(b= -ea("state")){c=[];for(var d=b.activeExperiments||[],e=0;e<a.length;e++){var f=a[e],g={};g.experimentId=f;g.isActive=qc(a[e],d);g.variationIndex=(b.variationMap||{})[f];g.variationName=(b.variationNamesMap||{})[f];var h=b.variationIdsMap||{};h[f]&&1===h[f].length&&(g.variationId=h[f][0]);c.push({schema:"iglu:com.optimizely/state/jsonschema/1-0-0",data:g})}return c}return[]}function pa(){var a=ea("variations");if(a){var b=[],c;for(c in a)if(a.hasOwnProperty(c)){var d={};d.id=c;var e=a[c];d.name=e.name; -d.code=e.code;b.push({schema:"iglu:com.optimizely/variation/jsonschema/1-0-0",data:d})}return b}return[]}function qa(){var a=ea("visitor");if(a){var b={};b.browser=a.browser;b.browserVersion=a.browserVersion;b.device=a.device;b.deviceType=a.deviceType;b.ip=a.ip;var c=a.platform||{};b.platformId=c.id;b.platformVersion=c.version;c=a.location||{};b.locationCity=c.city;b.locationRegion=c.region;b.locationCountry=c.country;b.mobile=a.mobile;b.mobileId=a.mobileId;b.referrer=a.referrer;b.os=a.os;return{schema:"iglu:com.optimizely/visitor/jsonschema/1-0-0", -data:b}}}function ra(){var a=ea("visitor","audiences");if(a){var b=[],c;for(c in a)a.hasOwnProperty(c)&&b.push({schema:"iglu:com.optimizely/visitor_audience/jsonschema/1-0-0",data:{id:c,isMember:a[c]}});return b}return[]}function sa(){var a=ea("visitor","dimensions");if(a){var b=[],c;for(c in a)a.hasOwnProperty(c)&&b.push({schema:"iglu:com.optimizely/visitor_dimension/jsonschema/1-0-0",data:{id:c,value:a[c]}});return b}return[]}function ta(){return da(ca(),function(a){return{schema:"iglu:com.optimizely.snowplow/optimizely_summary/jsonschema/1-0-0", -data:a}})}function ya(){return da(la(),function(a){return{schema:"iglu:com.optimizely.optimizelyx/summary/jsonschema/1-0-0",data:a}})}function za(){var a=window._hawk;if(a){var b={encryptedId:null,optout:null};b.encryptedId=a.browserid;a=new RegExp("(?:^|;)\\s?"+"_parrable_hawk_optout".replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")+"=(.*?)(?:;|$)","i");a=document.cookie.match(a);b.optout=a&&decodeURIComponent(a[1])?a&&decodeURIComponent(a[1]):"false";return{schema:"iglu:com.parrable/encrypted_payload/jsonschema/1-0-0", -data:b}}}function fa(){!Db&&M.geolocation&&M.geolocation.getCurrentPosition&&(Db=!0,M.geolocation.getCurrentPosition(function(a){var b=a.coords;ec.push({schema:"iglu:com.snowplowanalytics.snowplow/geolocation_context/jsonschema/1-1-0",data:{latitude:b.latitude,longitude:b.longitude,latitudeLongitudeAccuracy:b.accuracy,altitude:b.altitude,altitudeAccuracy:b.altitudeAccuracy,bearing:b.heading,speed:b.speed,timestamp:Math.round(a.timestamp)}})}))}function Ea(){var a={};L("__utma __utmb __utmc __utmv __utmz _ga".split(" "), -function(b){var c=A(b);c&&(a[b]=c)});return{schema:"iglu:com.google.analytics/cookies/jsonschema/1-0-0",data:a}}function Ia(a,b,c,d,e){h();Fb&&X();Fb=!0;ub=B.title;Ob=a;a=nc(Ob||ub);u.trackPageView(p(vb||Aa),a,p(ba||Mb),w((b||[]).concat(c?c():[])),d,e);d=new Date;e=!1;if(W.enabled&&!W.installed){e=W.installed=!0;var f={update:function(){if("undefined"!==typeof window&&"function"===typeof window.addEventListener){var a=!1,b=Object.defineProperty({},"passive",{get:function(){a=!0}}),c=function(){}; -window.addEventListener("testPassiveEventSupport",c,b);window.removeEventListener("testPassiveEventSupport",c,b);f.hasSupport=a}}};f.update();a="onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";Object.prototype.hasOwnProperty.call(f,"hasSupport")?v(B,a,t,{passive:!0}):v(B,a,t);J();a=function(a){var b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:t;return function(a){return v(B,a,b)}};L("click mouseup mousedown mousemove keypress keydown keyup".split(" "), -a(B));L(["resize","focus","blur"],a(C));a(C,F)("scroll")}if(W.enabled&&(sb||e)){Ub=d.getTime();for(var g in W.configurations)W.configurations.hasOwnProperty(g)&&(d=W.configurations[g],clearInterval(d.activityInterval),Ka(d,(b||[]).concat(c?c():[])))}}function Ka(a,b){var c=function(a,b){h();a({context:b,pageViewId:D(),minXOffset:Vb,minYOffset:Xb,maxXOffset:Wb,maxYOffset:Yb});J()},d=function(){Ub+a.configHeartBeatTimer>(new Date).getTime()&&c(a.callback,b)};a.activityInterval=0!=a.configMinimumVisitLength? -setTimeout(function(){Ub+a.configMinimumVisitLength>(new Date).getTime()&&c(a.callback,b);a.activityInterval=setInterval(d,a.configHeartBeatTimer)},a.configMinimumVisitLength):setInterval(d,a.configHeartBeatTimer)}function va(a,b,c){if("number"==typeof a&&a==fc(a)&&"number"==typeof b&&b==fc(b))return{configMinimumVisitLength:1E3*a,configHeartBeatTimer:1E3*b,activityInterval:null,callback:c};E("Activity tracking not enabled, please provide integer values for minimumVisitLength and heartBeatDelay."); -return{}}function Oa(a){var b=a.context,c=a.minXOffset,d=a.minYOffset,e=a.maxXOffset;a=a.maxYOffset;var f=B.title;f!==ub&&(ub=f,Ob=null);u.trackPagePing(p(vb||Aa),nc(Ob||ub),p(ba||Mb),y(c),y(e),y(d),y(a),w(b))}function ja(a,b){return""!==a?a+b.charAt(0).toUpperCase()+b.slice(1):b}function K(a){var b,c,d=["","webkit","ms","moz"];if(!ib)for(c=0;c<d.length;c++){var e=d[c];if(B[ja(e,"hidden")]){"prerender"===B[ja(e,"visibilityState")]&&(b=!0);break}else if(!1===B[ja(e,"hidden")])break}b?v(B,e+"visibilitychange", -function Td(){B.removeEventListener(e+"visibilitychange",Td,!1);a()}):a()}d=d||{};d.hasOwnProperty("post")?d.eventMethod=!0===d.post?"post":"get":d.eventMethod=d.eventMethod||"post";d.hasOwnProperty("useStm")||(d.useStm=!0);var Ca=function(a){return a.hasOwnProperty("stateStorageStrategy")?a.stateStorageStrategy:Na||qb?Na&&qb?"cookieAndLocalStorage":Na?"cookie":"localStorage":"none"},na=function(a){return a.hasOwnProperty("anonymousTracking")?!0===a.anonymousTracking.withSessionTracking:!1},Wa=Object.freeze({consent:"consent", -contract:"contract",legalObligation:"legal_obligation",vitalInterests:"vital_interests",publicTask:"public_task",legitimateInterests:"legitimate_interests"}),u=Rd(!0,function(a){var b=Math.round((new Date).getTime()/1E3),c=n("ses"),d=P(),f=d[0],g=d[1],dc=d[2],k=d[3],l=d[4],m=d[5];d=d[6];var q=Pb?!!A(Pb):!1;Fa||q?S():("0"===f?(Q=d,c||"none"==G||(k++,m=l,Q=V()),ia=k):(new Date).getTime()-Ta>1E3*La&&(Q=V(),ia++),a.add("vp",ud()),a.add("ds",vd()),a.add("vid",tb?ia:ha?null:ia),a.add("sid",tb?Q:ha?null: -Q),a.add("duid",ha?null:g),a.add("uid",ha?null:wb),h(),a.add("refr",p(ba||Mb)),a.add("url",p(vb||Aa)),"none"!=G&&(N(g,dc,ia,b,m,Q),O()),Ta=(new Date).getTime());b=pb;c=new Date;f=Pb?!!A(Pb):!1;Fa||f||(gb.enqueueRequest(a.build(),xa),e.expireDateTime=c.getTime()+b)}),Ga=!1,l={},ua={},Ha={},B=document,C=window,M=navigator,Qa=rc(B.domain,C.location.href,cc()),Ja=bc(Qa[0]),Aa=Qa[1],Mb=Qa[2],ba,kb=d.hasOwnProperty("platform")?d.platform:"web",xa,Ma=d.hasOwnProperty("postPath")?d.postPath:"/com.snowplowanalytics.snowplow/tp2", -ob=d.hasOwnProperty("appId")?d.appId:"",vb,ub=B.title,Ob,pb=d.hasOwnProperty("pageUnloadTimer")?d.pageUnloadTimer:500,sb=d.hasOwnProperty("resetActivityTrackingOnPageView")?d.resetActivityTrackingOnPageView:!0,Pa,Sa,Ua=d.hasOwnProperty("cookieName")?d.cookieName:"_sp_",ka=d.hasOwnProperty("cookieDomain")?d.cookieDomain:null,Da="/",Ab=d.hasOwnProperty("cookieSameSite")?d.cookieSameSite:"None",Bb=d.hasOwnProperty("cookieSecure")?d.cookieSecure:!0,hb=M.doNotTrack||M.msDoNotTrack||C.doNotTrack,Fa=d.hasOwnProperty("respectDoNotTrack")? -d.respectDoNotTrack&&("yes"===hb||"1"===hb):!1,Pb,ib,jb=d.hasOwnProperty("cookieLifetime")?d.cookieLifetime:63072E3,La=d.hasOwnProperty("sessionCookieTimeout")?d.sessionCookieTimeout:1800,Hb=B.characterSet||B.charset,nb=d.hasOwnProperty("forceSecureTracker")?!0===d.forceSecureTracker:!1,Kb=!nb&&d.hasOwnProperty("forceUnsecureTracker")?!0===d.forceUnsecureTracker:!1,tb=na(d),ha=!!d.anonymousTracking,qb=d.hasOwnProperty("useLocalStorage")?(E("argmap.useLocalStorage is deprecated. Use argmap.stateStorageStrategy instead."), -d.useLocalStorage):!0,Na=d.hasOwnProperty("useCookies")?(E("argmap.useCookies is deprecated. Use argmap.stateStorageStrategy instead."),d.useCookies):!0,G=Ca(d),Lb=M.userLanguage||M.language,Zb=wd("cookie"==G||"cookieAndLocalStorage"==G,q("testcookie")),rb=a+"_"+b,Ub,Ta=(new Date).getTime(),Vb,Wb,Xb,Yb,Qb=Ud,zb,Nb,Q,ia=1,wb,Va,Xa,Ya,Za,$a,ab,bb,cb,db,eb,fb,$b=[],xb=new xd(u,rb,w),ac=new yd(u,rb,w),Cb=new Ad(u),gb=new sc(a,b,e,"localStorage"==G||"cookieAndLocalStorage"==G,d.eventMethod,Ma,d.bufferSize, -d.maxPostBytes||4E4,d.useStm,d.maxLocalStorageQueueSize||1E3,d.connectionTimeout||5E3),Db=!1,I=d.contexts||{},ec=[],yb=[],Eb=!1,Fb=!1,W={enabled:!1,installed:!1,configurations:{}},Ba=null;I.clientHints&&M.userAgentData&&(Ba={isMobile:M.userAgentData.mobile,brands:M.userAgentData.brands},I.clientHints.includeHighEntropy&&M.userAgentData.getHighEntropyValues&&M.userAgentData.getHighEntropyValues(["platform","platformVersion","architecture","model","uaFullVersion"]).then(function(a){Ba.architecture= -a.architecture;Ba.model=a.model;Ba.platform=a.platform;Ba.uaFullVersion=a.uaFullVersion;Ba.platformVersion=a.platformVersion}));var Rb=d.skippedBrowserFeatures||[],Ra={};d.hasOwnProperty("discoverRootDomain")&&d.discoverRootDomain&&(ka=rd());I.gaCookies&&ec.push(Ea());I.geolocation&&fa();u.setBase64Encoding(d.hasOwnProperty("encodeBase64")?d.encodeBase64:!0);u.setTrackerVersion(c);u.setTrackerNamespace(b);u.setAppId(ob);u.setPlatform(kb);u.setTimezone(Vd.jstz.determine().name());u.addPayloadPair("lang", -Lb);u.addPayloadPair("cs",Hb);for(var Z in Zb)Object.prototype.hasOwnProperty.call(Zb,Z)&&("res"!==Z&&"cd"!==Z&&"cookie"!==Z||f(Z)?f(Z)||u.addPayloadPair("f_"+Z,Zb[Z]):u.addPayloadPair(Z,Zb[Z]));r();T();d.crossDomainLinker&&k(d.crossDomainLinker);l.getDomainSessionIndex=function(){return ia};l.getPageViewId=function(){return D()};l.newSession=function(){var a=Math.round((new Date).getTime()/1E3),b=P(),c=b[1],d=b[2],e=b[3],f=b[4],g=b[5],h=b[6];"0"===b[0]?(Q=h,"none"!=G&&(e++,g=f,Q=V()),ia=e,O()):(Q= -V(),ia++);"none"!=G&&(N(c,d,ia,a,g,Q),O());Ta=(new Date).getTime()};l.getCookieName=function(a){return q(a)};l.getUserId=function(){return wb};l.getDomainUserId=function(){return P()[1]};l.getDomainUserInfo=function(){return P()};l.getUserFingerprint=function(){E("User Fingerprinting is no longer supported. This function will be removed in a future release.");return 0};l.setAppId=function(a){E("setAppId is deprecated. Instead use the argmap argument on tracker initialisation: appId");u.setAppId(a)}; -l.setReferrerUrl=function(a){ba=a};l.setCustomUrl=function(a){h();var b=Aa,c;m(a)?vb=a:"/"===a.slice(0,1)?vb=m(b)+"://"+Sb(b)+a:(b=p(b),0<=(c=b.indexOf("?"))&&(b=b.slice(0,c)),(c=b.lastIndexOf("/"))!==b.length-1&&(b=b.slice(0,c+1)),vb=b+a)};l.setDocumentTitle=function(a){ub=B.title;Ob=a};l.discardHashTag=function(a){Pa=a};l.discardBrace=function(a){Sa=a};l.setCookieNamePrefix=function(a){E("setCookieNamePrefix is deprecated. Instead use the argmap argument on tracker initialisation: cookieName"); -Ua=a};l.setCookieDomain=function(a){E("setCookieDomain is deprecated. Instead use the argmap argument on tracker initialisation: cookieDomain");ka=bc(a);r()};l.setCookiePath=function(a){Da=a;r()};l.setVisitorCookieTimeout=function(a){jb=a};l.setSessionCookieTimeout=function(a){E("setSessionCookieTimeout is deprecated. Instead use the argmap argument on tracker initialisation: sessionCookieTimeout");La=a};l.setUserFingerprintSeed=function(){E("User Fingerprinting is no longer supported. This function will be removed in a future release.")}; -l.enableUserFingerprint=function(){E("User Fingerprinting is no longer supported. This function will be removed in a future release.")};l.respectDoNotTrack=function(a){E("respectDoNotTrack is deprecated. Instead use the argmap argument on tracker initialisation: respectDoNotTrack");var b=M.doNotTrack||M.msDoNotTrack;Fa=a&&("yes"===b||"1"===b)};l.crossDomainLinker=function(a){k(a)};l.enableLinkClickTracking=function(a,b,c,d){e.hasLoaded?(xb.configureLinkClickTracking(a,b,c,d),xb.addClickListeners()): -e.registeredOnLoadHandlers.push(function(){xb.configureLinkClickTracking(a,b,c,d);xb.addClickListeners()})};l.refreshLinkClickTracking=function(){e.hasLoaded?xb.addClickListeners():e.registeredOnLoadHandlers.push(function(){xb.addClickListeners()})};l.enableActivityTracking=function(a,b){W.enabled=!0;W.configurations.pagePing=va(a,b,Oa)};l.enableActivityTrackingCallback=function(a,b,c){W.enabled=!0;W.configurations.callback=va(a,b,c)};l.updatePageActivity=function(){t()};l.enableFormTracking=function(a, -b){e.hasLoaded?(ac.configureFormTracking(a),ac.addFormListeners(b)):e.registeredOnLoadHandlers.push(function(){ac.configureFormTracking(a);ac.addFormListeners(b)})};l.killFrame=function(){C.location!==C.top.location&&(C.top.location=C.location)};l.redirectFile=function(a){"file:"===C.location.protocol&&(C.location=a)};l.setOptOutCookie=function(a){Pb=a};l.setCountPreRendered=function(a){ib=a};l.setUserId=function(a){wb=a};l.identifyUser=function(a){l.setUserId(a)};l.setUserIdFromLocation=function(a){h(); -wb=Gb(a,Aa)};l.setUserIdFromReferrer=function(a){h();wb=Gb(a,Mb)};l.setUserIdFromCookie=function(a){wb=A(a)};l.setCollectorCf=function(a){xa=U(a+".cloudfront.net")};l.setCollectorUrl=function(a){xa=U(a)};l.setPlatform=function(a){E("setPlatform is deprecated. Instead use the argmap argument on tracker initialisation: platform");u.setPlatform(a)};l.encodeBase64=function(a){E("encodeBase64 is deprecated. Instead use the argmap argument on tracker initialisation: encodeBase64");u.setBase64Encoding(a)}; -l.flushBuffer=function(){gb.executeQueue()};l.enableGeolocationContext=fa;l.trackPageView=function(a,b,c,d,e){K(function(){Ia(a,b,c,d,e)})};l.trackStructEvent=function(a,b,c,d,e,f,g,h){K(function(){u.trackStructEvent(a,b,c,d,e,w(f),g,h)})};l.trackSelfDescribingEvent=function(a,b,c,d){K(function(){u.trackSelfDescribingEvent(a,w(b),c,d)})};l.trackUnstructEvent=function(a,b,c){K(function(){u.trackSelfDescribingEvent(a,w(b),c)})};l.addTrans=function(a,b,c,d,e,f,g,h,k,l,p){Va=a;Xa=b;Ya=c;Za=d;$a=e;ab= -f;bb=g;cb=h;db=k;eb=l;fb=p};l.addItem=function(a,b,c,d,e,f,g,h,k){$b.push({orderId:a,sku:b,name:c,category:d,price:e,quantity:f,currency:g,context:h,tstamp:k})};l.trackTrans=function(){K(function(){var a=fb;u.trackEcommerceTransaction(Va,Xa,Ya,Za,$a,ab,bb,cb,db,w(eb),a);for(a=0;a<$b.length;a++){var b=$b[a],c=b.tstamp;u.trackEcommerceTransactionItem(b.orderId,b.sku,b.name,b.category,b.price,b.quantity,b.currency,w(b.context),c)}fb=eb=db=cb=bb=ab=$a=Za=Ya=Xa=Va=void 0;$b=[]})};l.trackLinkClick=function(a, -b,c,d,e,f,g){K(function(){u.trackLinkClick(a,b,c,d,e,w(f),g)})};l.trackAdImpression=function(a,b,c,d,e,f,g,h,k,l){K(function(){u.trackAdImpression(a,b,c,d,e,f,g,h,w(k),l)})};l.trackAdClick=function(a,b,c,d,e,f,g,h,k,l,p){K(function(){u.trackAdClick(a,b,c,d,e,f,g,h,k,w(l),p)})};l.trackAdConversion=function(a,b,c,d,e,f,g,h,k,l,p){K(function(){u.trackAdConversion(a,b,c,d,e,f,g,h,k,w(l),p)})};l.trackSocialInteraction=function(a,b,c,d,e){K(function(){u.trackSocialInteraction(a,b,c,w(d),e)})};l.trackAddToCart= -function(a,b,c,d,e,f,g,h){K(function(){u.trackAddToCart(a,b,c,d,e,f,w(g),h)})};l.trackRemoveFromCart=function(a,b,c,d,e,f,g,h){K(function(){u.trackRemoveFromCart(a,b,c,d,e,f,w(g),h)})};l.trackSiteSearch=function(a,b,c,d,e,f){K(function(){u.trackSiteSearch(a,b,c,d,w(e),f)})};l.trackTiming=function(a,b,c,d,e,f){K(function(){u.trackSelfDescribingEvent({schema:"iglu:com.snowplowanalytics.snowplow/timing/jsonschema/1-0-0",data:{category:a,variable:b,timing:c,label:d}},w(e),f)})};l.trackConsentWithdrawn= -function(a,b,c,d,e,f,g){K(function(){u.trackConsentWithdrawn(a,b,c,d,e,w(f),g)})};l.trackConsentGranted=function(a,b,c,d,e,f,g){K(function(){u.trackConsentGranted(a,b,c,d,e,w(f),g)})};l.trackEnhancedEcommerceAction=function(a,b,c){var d=yb.concat(b||[]);yb.length=0;K(function(){u.trackSelfDescribingEvent({schema:"iglu:com.google.analytics.enhanced-ecommerce/action/jsonschema/1-0-0",data:{action:a}},w(d),c)})};l.addEnhancedEcommerceActionContext=function(a,b,c,d,e,f,g,h,k,l){yb.push({schema:"iglu:com.google.analytics.enhanced-ecommerce/actionFieldObject/jsonschema/1-0-0", -data:{id:a,affiliation:b,revenue:Ib(c),tax:Ib(d),shipping:Ib(e),coupon:f,list:g,step:lb(h),option:k,currency:l}})};l.addEnhancedEcommerceImpressionContext=function(a,b,c,d,e,f,g,h,k){yb.push({schema:"iglu:com.google.analytics.enhanced-ecommerce/impressionFieldObject/jsonschema/1-0-0",data:{id:a,name:b,list:c,brand:d,category:e,variant:f,position:lb(g),price:Ib(h),currency:k}})};l.addEnhancedEcommerceProductContext=function(a,b,c,d,e,f,g,h,k,l,p){yb.push({schema:"iglu:com.google.analytics.enhanced-ecommerce/productFieldObject/jsonschema/1-0-0", -data:{id:a,name:b,list:c,brand:d,category:e,variant:f,price:Ib(g),quantity:lb(h),coupon:k,position:lb(l),currency:p}})};l.addEnhancedEcommercePromoContext=function(a,b,c,d,e){yb.push({schema:"iglu:com.google.analytics.enhanced-ecommerce/promoFieldObject/jsonschema/1-0-0",data:{id:a,name:b,creative:c,position:d,currency:e}})};l.enableGdprContext=function(a){var b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null,d=3<arguments.length&& -void 0!==arguments[3]?arguments[3]:null,e=Wa[a];e?(I.gdprBasis=!0,Ra={gdprBasis:e,gdprDocId:b,gdprDocVer:c,gdprDocDesc:d}):E("enableGdprContext failed. basisForProcessing must be set to one of: consent, legalObligation, vitalInterests publicTask, legitimateInterests")};l.addGlobalContexts=function(a){u.addGlobalContexts(a)};l.removeGlobalContexts=function(a){u.removeGlobalContexts(a)};l.clearGlobalContexts=function(){u.clearGlobalContexts()};l.enableErrorTracking=function(a,b){Cb.enableErrorTracking(a, -b,w())};l.trackError=function(a,b,c,d,e,f){f=w(f);Cb.trackError(a,b,c,d,e,f)};l.preservePageViewId=function(){Eb=!0};l.disableAnonymousTracking=function(c){c?(Object.assign(d,{stateStorageStrategy:c,anonymousTracking:!1}),G=Ca(d),gb=new sc(a,b,e,"localStorage"==G||"cookieAndLocalStorage"==G,d.eventMethod,Ma,d.bufferSize,d.maxPostBytes||4E4,d.useStm,d.maxLocalStorageQueueSize||1E3,d.connectionTimeout||5E3)):Object.assign(d,{anonymousTracking:!1});ha=!!d.anonymousTracking;tb=na(d);T()};l.enableAnonymousTracking= -function(a){Object.assign(d,{anonymousTracking:a||!0});ha=!!d.anonymousTracking;(tb=na(d))||X()};l.clearUserData=S;l.setDebug=function(a){Ha=(Ga=(!!a).valueOf())?l:ua};ua=Dd(l);return Ha=Ga?l:ua}function Hc(a,b){function c(){var a;if(!f.hasLoaded)for(f.hasLoaded=!0,a=0;a<f.registeredOnLoadHandlers.length;a++)f.registeredOnLoadHandlers[a]();return!0}var e=document,d=window,f={outQueues:[],bufferFlushers:[],expireDateTime:null,hasLoaded:!1,registeredOnLoadHandlers:[],pageViewId:null};d.Snowplow={getTrackerCf:function(a){var c= -new Pa(b,"","js-2.16.2",f,{});c.setCollectorCf(a);return c},getTrackerUrl:function(a){var c=new Pa(b,"","js-2.16.2",f,{});c.setCollectorUrl(a);return c},getAsyncTracker:function(){return new Pa(b,"","js-2.16.2",f,{})}};v(d,"beforeunload",function(){L(f.bufferFlushers,function(a){a()});if(f.expireDateTime){do{var a=new Date;if(0===f.outQueues.filter(function(a){return 0<a.length}).length)break}while(a.getTime()<f.expireDateTime)}},!1);(function(){var a;e.addEventListener?v(e,"DOMContentLoaded",function k(){e.removeEventListener("DOMContentLoaded", -k,!1);c()}):e.attachEvent&&(e.attachEvent("onreadystatechange",function k(){"complete"===e.readyState&&(e.detachEvent("onreadystatechange",k),c())}),e.documentElement.doScroll&&d===d.top&&function p(){if(!f.hasLoaded){try{e.documentElement.doScroll("left")}catch(x){setTimeout(p,0);return}c()}}());/WebKit/.test(navigator.userAgent)&&(a=setInterval(function(){if(f.hasLoaded||/loaded|complete/.test(e.readyState))clearInterval(a),c()},10));v(d,"load",c,!1)})();return new sd(Pa,"js-2.16.2",f,a,b)}var Wd= -function(a,b){for(var c=-1,e=null==a?0:a.length;++c<e&&!1!==b(a[c],c,a););return a},Xd=function(a){return function(b,c,e){var d=-1,f=Object(b);e=e(b);for(var h=e.length;h--;){var g=e[a?h:++d];if(!1===c(f[g],g,f))break}return b}}(),Sa="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{},Ic="object"==H(Sa)&&Sa&&Sa.Object===Object&&Sa,Yd="object"==("undefined"===typeof self?"undefined":H(self))&&self&&self.Object=== -Object&&self,S=Ic||Yd||Function("return this")(),X=S.Symbol,Jc=Object.prototype,Zd=Jc.hasOwnProperty,$d=Jc.toString,ja=X?X.toStringTag:void 0,ae=Object.prototype.toString,Kc=X?X.toStringTag:void 0,U=function(a){if(null==a)a=void 0===a?"[object Undefined]":"[object Null]";else if(Kc&&Kc in Object(a)){var b=Zd.call(a,ja),c=a[ja];try{a[ja]=void 0;var e=!0}catch(f){}var d=$d.call(a);e&&(b?a[ja]=c:delete a[ja]);a=d}else a=ae.call(a);return a},T=function(a){return null!=a&&"object"==H(a)},Lc=function(a){return T(a)&& -"[object Arguments]"==U(a)},Mc=Object.prototype,be=Mc.hasOwnProperty,ce=Mc.propertyIsEnumerable,Nc=Lc(function(){return arguments}())?Lc:function(a){return T(a)&&be.call(a,"callee")&&!ce.call(a,"callee")},F=Array.isArray,de=function(){return!1},ib=qa(function(a,b){var c=(b=b&&!b.nodeType&&b)&&a&&!a.nodeType&&a;b=c&&c.exports===b?S.Buffer:void 0;a.exports=(b?b.isBuffer:void 0)||de}),ee=/^(?:0|[1-9]\d*)$/,Ta=function(a,b){var c=H(a);b=null==b?9007199254740991:b;return!!b&&("number"==c||"symbol"!=c&& -ee.test(a))&&-1<a&&0==a%1&&a<b},Qb=function(a){return"number"==typeof a&&-1<a&&0==a%1&&9007199254740991>=a},m={};m["[object Float32Array]"]=m["[object Float64Array]"]=m["[object Int8Array]"]=m["[object Int16Array]"]=m["[object Int32Array]"]=m["[object Uint8Array]"]=m["[object Uint8ClampedArray]"]=m["[object Uint16Array]"]=m["[object Uint32Array]"]=!0;m["[object Arguments]"]=m["[object Array]"]=m["[object ArrayBuffer]"]=m["[object Boolean]"]=m["[object DataView]"]=m["[object Date]"]=m["[object Error]"]= -m["[object Function]"]=m["[object Map]"]=m["[object Number]"]=m["[object Object]"]=m["[object RegExp]"]=m["[object Set]"]=m["[object String]"]=m["[object WeakMap]"]=!1;var fe=function(a){return T(a)&&Qb(a.length)&&!!m[U(a)]},ge=function(a){return function(b){return a(b)}},Oc=qa(function(a,b){var c=b&&!b.nodeType&&b;c=(b=c&&a&&!a.nodeType&&a)&&b.exports===c&&Ic.process;a:{try{var e=b&&b.require&&b.require("util").types;if(e){var d=e;break a}d=c&&c.binding&&c.binding("util");break a}catch(f){}d=void 0}a.exports= -d}),Pc=Oc&&Oc.isTypedArray,Rb=Pc?ge(Pc):fe,he=Object.prototype.hasOwnProperty,ie=Object.prototype,Qc=function(a,b){return function(c){return a(b(c))}},je=Qc(Object.keys,Object),ke=Object.prototype.hasOwnProperty,N=function(a){var b=H(a);return null!=a&&("object"==b||"function"==b)},Rc=function(a){if(!N(a))return!1;a=U(a);return"[object Function]"==a||"[object GeneratorFunction]"==a||"[object AsyncFunction]"==a||"[object Proxy]"==a},Ca=function(a){return null!=a&&Qb(a.length)&&!Rc(a)},Ka=function(a){if(Ca(a)){var b= -F(a),c=!b&&Nc(a),e=!b&&!c&&ib(a),d=!b&&!c&&!e&&Rb(a);if(b=b||c||e||d){c=a.length;for(var f=String,h=-1,g=Array(c);++h<c;)g[h]=f(h);c=g}else c=[];f=c.length;for(var k in a)!he.call(a,k)||b&&("length"==k||e&&("offset"==k||"parent"==k)||d&&("buffer"==k||"byteLength"==k||"byteOffset"==k)||Ta(k,f))||c.push(k);a=c}else if(k=a&&a.constructor,a===("function"==typeof k&&k.prototype||ie)){k=[];for(e in Object(a))ke.call(a,e)&&"constructor"!=e&&k.push(e);a=k}else a=je(a);return a},Sc=function(a,b){return a&& -Xd(a,b,Ka)},Ua=function(a,b){return function(c,e){if(null==c)return c;if(!Ca(c))return a(c,e);for(var d=c.length,f=b?d:-1,h=Object(c);(b?f--:++f<d)&&!1!==e(h[f],f,h););return c}}(Sc),Tc=function(a){return a},L=function(a,b){return(F(a)?Wd:Ua)(a,"function"==typeof b?b:Tc)},Uc=function(a,b){for(var c=-1,e=null==a?0:a.length,d=0,f=[];++c<e;){var h=a[c];b(h,c,a)&&(f[d++]=h)}return f},le=function(a,b){var c=[];Ua(a,function(a,d,f){b(a,d,f)&&c.push(a)});return c},zb=function(a,b){return a===b||a!==a&&b!== -b},ka=function(a,b){for(var c=a.length;c--;)if(zb(a[c][0],b))return c;return-1},me=Array.prototype.splice;ra.prototype.clear=function(){this.__data__=[];this.size=0};ra.prototype["delete"]=function(a){var b=this.__data__;a=ka(b,a);if(0>a)return!1;a==b.length-1?b.pop():me.call(b,a,1);--this.size;return!0};ra.prototype.get=function(a){var b=this.__data__;a=ka(b,a);return 0>a?void 0:b[a][1]};ra.prototype.has=function(a){return-1<ka(this.__data__,a)};ra.prototype.set=function(a,b){var c=this.__data__, -e=ka(c,a);0>e?(++this.size,c.push([a,b])):c[e][1]=b;return this};var Ga=ra,Va=S["__core-js_shared__"],Vc=function(){var a=/[^.]+$/.exec(Va&&Va.keys&&Va.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}(),ne=Function.prototype.toString,la=function(a){if(null!=a){try{return ne.call(a)}catch(b){}return a+""}return""},oe=/^\[object .+?Constructor\]$/,pe=RegExp("^"+Function.prototype.toString.call(Object.prototype.hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, -"$1.*?")+"$"),ma=function(a,b){a=null==a?void 0:a[b];return(!N(a)||Vc&&Vc in a?0:(Rc(a)?pe:oe).test(la(a)))?a:void 0},na=ma(S,"Map"),Wa=ma(Object,"create"),qe=Object.prototype.hasOwnProperty,re=Object.prototype.hasOwnProperty;Y.prototype.clear=function(){this.__data__=Wa?Wa(null):{};this.size=0};Y.prototype["delete"]=function(a){a=this.has(a)&&delete this.__data__[a];this.size-=a?1:0;return a};Y.prototype.get=function(a){var b=this.__data__;return Wa?(a=b[a],"__lodash_hash_undefined__"===a?void 0: -a):qe.call(b,a)?b[a]:void 0};Y.prototype.has=function(a){var b=this.__data__;return Wa?void 0!==b[a]:re.call(b,a)};Y.prototype.set=function(a,b){var c=this.__data__;this.size+=this.has(a)?0:1;c[a]=Wa&&void 0===b?"__lodash_hash_undefined__":b;return this};var Da=function(a,b){a=a.__data__;var c=H(b);return("string"==c||"number"==c||"symbol"==c||"boolean"==c?"__proto__"!==b:null===b)?a["string"==typeof b?"string":"hash"]:a.map};sa.prototype.clear=function(){this.size=0;this.__data__={hash:new Y,map:new (na|| -Ga),string:new Y}};sa.prototype["delete"]=function(a){a=Da(this,a)["delete"](a);this.size-=a?1:0;return a};sa.prototype.get=function(a){return Da(this,a).get(a)};sa.prototype.has=function(a){return Da(this,a).has(a)};sa.prototype.set=function(a,b){var c=Da(this,a),e=c.size;c.set(a,b);this.size+=c.size==e?0:1;return this};var Ha=sa;ta.prototype.clear=function(){this.__data__=new Ga;this.size=0};ta.prototype["delete"]=function(a){var b=this.__data__;a=b["delete"](a);this.size=b.size;return a};ta.prototype.get= -function(a){return this.__data__.get(a)};ta.prototype.has=function(a){return this.__data__.has(a)};ta.prototype.set=function(a,b){var c=this.__data__;if(c instanceof Ga){var e=c.__data__;if(!na||199>e.length)return e.push([a,b]),this.size=++c.size,this;c=this.__data__=new Ha(e)}c.set(a,b);this.size=c.size;return this};var Ja=ta;ua.prototype.add=ua.prototype.push=function(a){this.__data__.set(a,"__lodash_hash_undefined__");return this};ua.prototype.has=function(a){return this.__data__.has(a)};var se= -function(a,b){for(var c=-1,e=null==a?0:a.length;++c<e;)if(b(a[c],c,a))return!0;return!1},gc=function(a,b,c,e,d,f){var h=c&1,g=a.length,k=b.length;if(g!=k&&!(h&&k>g))return!1;k=f.get(a);var p=f.get(b);if(k&&p)return k==b&&p==a;k=-1;p=!0;var m=c&2?new ua:void 0;f.set(a,b);for(f.set(b,a);++k<g;){var q=a[k],n=b[k];if(e)var r=h?e(n,q,k,b,a,f):e(q,n,k,a,b,f);if(void 0!==r){if(r)continue;p=!1;break}if(m){if(!se(b,function(a,b){if(!m.has(b)&&(q===a||d(q,a,c,e,f)))return m.push(b)})){p=!1;break}}else if(q!== -n&&!d(q,n,c,e,f)){p=!1;break}}f["delete"](a);f["delete"](b);return p},Wc=S.Uint8Array,te=function(a){var b=-1,c=Array(a.size);a.forEach(function(a,d){c[++b]=[d,a]});return c},ue=function(a){var b=-1,c=Array(a.size);a.forEach(function(a){c[++b]=a});return c},Xc=X?X.prototype:void 0,Xa=Xc?Xc.valueOf:void 0,md=function(a,b,c,e,d,f,h){switch(c){case "[object DataView]":if(a.byteLength!=b.byteLength||a.byteOffset!=b.byteOffset)break;a=a.buffer;b=b.buffer;case "[object ArrayBuffer]":if(a.byteLength!=b.byteLength|| -!f(new Wc(a),new Wc(b)))break;return!0;case "[object Boolean]":case "[object Date]":case "[object Number]":return zb(+a,+b);case "[object Error]":return a.name==b.name&&a.message==b.message;case "[object RegExp]":case "[object String]":return a==b+"";case "[object Map]":var g=te;case "[object Set]":g||(g=ue);if(a.size!=b.size&&!(e&1))break;if(c=h.get(a))return c==b;e|=2;h.set(a,b);b=gc(g(a),g(b),e,d,f,h);h["delete"](a);return b;case "[object Symbol]":if(Xa)return Xa.call(a)==Xa.call(b)}return!1}, -ic=function(a,b,c){b=b(a);if(!F(a)){a=c(a);c=-1;for(var e=a.length,d=b.length;++c<e;)b[d+c]=a[c]}return b},ve=function(){return[]},we=Object.prototype.propertyIsEnumerable,Yc=Object.getOwnPropertySymbols,jc=Yc?function(a){if(null==a)return[];a=Object(a);return Uc(Yc(a),function(b){return we.call(a,b)})}:ve,nd=Object.prototype.hasOwnProperty,Ya=ma(S,"DataView"),Za=ma(S,"Promise"),$a=ma(S,"Set"),ab=ma(S,"WeakMap"),xe=la(Ya),ye=la(na),ze=la(Za),Ae=la($a),Be=la(ab),oa=U;if(Ya&&"[object DataView]"!=oa(new Ya(new ArrayBuffer(1)))|| -na&&"[object Map]"!=oa(new na)||Za&&"[object Promise]"!=oa(Za.resolve())||$a&&"[object Set]"!=oa(new $a)||ab&&"[object WeakMap]"!=oa(new ab))oa=function(a){var b=U(a);if(a=(a="[object Object]"==b?a.constructor:void 0)?la(a):"")switch(a){case xe:return"[object DataView]";case ye:return"[object Map]";case ze:return"[object Promise]";case Ae:return"[object Set]";case Be:return"[object WeakMap]"}return b};var Fb=oa,hc=Object.prototype.hasOwnProperty,ob=Ia,Ce=function(a,b,c,e){var d=c.length,f=d,h=!e; -if(null==a)return!f;for(a=Object(a);d--;){var g=c[d];if(h&&g[2]?g[1]!==a[g[0]]:!(g[0]in a))return!1}for(;++d<f;){g=c[d];var k=g[0],p=a[k],m=g[1];if(h&&g[2]){if(void 0===p&&!(k in a))return!1}else{g=new Ja;if(e)var q=e(p,m,k,a,b,g);if(void 0===q?!ob(m,p,3,e,g):!q)return!1}}return!0},De=function(a){for(var b=Ka(a),c=b.length;c--;){var e=b[c],d=a[e];b[c]=[e,d,d===d&&!N(d)]}return b},Zc=function(a,b){return function(c){return null==c?!1:c[a]===b&&(void 0!==b||a in Object(c))}},Ee=function(a){var b=De(a); -return 1==b.length&&b[0][2]?Zc(b[0][0],b[0][1]):function(c){return c===a||Ce(c,a,b)}},ba=function(a){return"symbol"==H(a)||T(a)&&"[object Symbol]"==U(a)},Fe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ge=/^\w*$/,bb=function(a,b){if(F(a))return!1;var c=H(a);return"number"==c||"symbol"==c||"boolean"==c||null==a||ba(a)?!0:Ge.test(a)||!Fe.test(a)||null!=b&&a in Object(b)};jb.Cache=Ha;var He=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ie=/\\(\\)?/g, -Je=function(a){a=jb(a,function(a){500===b.size&&b.clear();return a});var b=a.cache;return a}(function(a){var b=[];46===a.charCodeAt(0)&&b.push("");a.replace(He,function(a,e,d,f){b.push(d?f.replace(Ie,"$1"):e||a)});return b}),lc=function(a,b){for(var c=-1,e=null==a?0:a.length,d=Array(e);++c<e;)d[c]=b(a[c],c,a);return d},od=1/0,$c=X?X.prototype:void 0,mc=$c?$c.toString:void 0,ad=function(a,b){return F(a)?a:bb(a,b)?[a]:Je(null==a?"":kc(a))},Ke=1/0,Ab=function(a){if("string"==typeof a||ba(a))return a; -var b=a+"";return"0"==b&&1/a==-Ke?"-0":b},bd=function(a,b){b=ad(b,a);for(var c=0,e=b.length;null!=a&&c<e;)a=a[Ab(b[c++])];return c&&c==e?a:void 0},J=function(a,b,c){a=null==a?void 0:bd(a,b);return void 0===a?c:a},Le=function(a,b){return null!=a&&b in Object(a)},pb=function(a,b,c){b=ad(b,a);for(var e=-1,d=b.length,f=!1;++e<d;){var h=Ab(b[e]);if(!(f=null!=a&&c(a,h)))break;a=a[h]}if(f||++e!=d)return f;d=null==a?0:a.length;return!!d&&Qb(d)&&Ta(h,d)&&(F(a)||Nc(a))},Me=function(a,b){return bb(a)&&b===b&& -!N(b)?Zc(Ab(a),b):function(c){var e=J(c,a);return void 0===e&&e===b?null!=c&&pb(c,a,Le):ob(b,e,3)}},Ne=function(a){return function(b){return null==b?void 0:b[a]}},Oe=function(a){return function(b){return bd(b,a)}},Ea=function(a){return"function"==typeof a?a:null==a?Tc:"object"==H(a)?F(a)?Me(a[0],a[1]):Ee(a):bb(a)?Ne(Ab(a)):Oe(a)},pd=function(a,b){return(F(a)?Uc:le)(a,Ea(b))},oc=function(a){return"string"==typeof a||!F(a)&&T(a)&&"[object String]"==U(a)},Pe=function(a,b){var c=-1,e=Ca(a)?Array(a.length): -[];Ua(a,function(a,f,h){e[++c]=b(a,f,h)});return e},da=function(a,b){return(F(a)?lc:Pe)(a,Ea(b))},ca=window,va=document,wa=window.localStorage,uc=window.sessionStorage,cd=0/0,Qe=/^\s+|\s+$/g,Re=/^[-+]0x[0-9a-f]+$/i,Se=/^0b[01]+$/i,Te=/^0o[0-7]+$/i,Ue=parseInt,Ve=function(a){if("number"==typeof a)return a;if(ba(a))return cd;N(a)&&(a="function"==typeof a.valueOf?a.valueOf():a,a=N(a)?a+"":a);if("string"!=typeof a)return 0===a?a:+a;a=a.replace(Qe,"");var b=Se.test(a);return b||Te.test(a)?Ue(a.slice(2), -b?2:8):Re.test(a)?cd:+a},dd=1/0,fc=function(a){a?(a=Ve(a),a=a===dd||a===-dd?1.7976931348623157E308*(0>a?-1:1):a===a?a:0):a=0===a?a:0;var b=a%1;return a===a?b?a-b:a:0},Vd=qa(function(a,b){(function(a){var c=function(){var a=function(a){a=-a.getTimezoneOffset();return null!==a?a:0},b=function(a,b,c){var d=new Date;void 0!==a&&d.setFullYear(a);d.setMonth(b);d.setDate(c);return d};return{determine:function(){var d=a(b(void 0,0,2)),e=a(b(void 0,5,2)),f=d-e;return new c.TimeZone(c.olson.timezones[0>f?d+ +("00"+a.charCodeAt(0).toString(16)).slice(-2)}).join(""))}(e.replace(/\0+$/,""))}function Na(a){if(!xc(a))return!1;for(var b in a)if(Object.prototype.hasOwnProperty.call(a,b))return!0;return!1}function xc(a){return"undefined"!==typeof a&&null!==a&&(a.constructor==={}.constructor||a.constructor===[].constructor)}function za(a){var b={},c=function(a,c){null!=c&&""!==c&&(b[a]=c)};return{add:c,addDict:function(a){for(var b in a)Object.prototype.hasOwnProperty.call(a,b)&&c(b,a[b])},addJson:function(b, +d,f){if(f&&Na(f))if(f=JSON.stringify(f),a){if(f){d=f;var e=f=0,g=[];if(d){d=unescape(encodeURIComponent(d));do{var k=d.charCodeAt(f++);var p=d.charCodeAt(f++);var v=d.charCodeAt(f++);var M=k<<16|p<<8|v;k=M>>18&63;p=M>>12&63;v=M>>6&63;M&=63;g[e++]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(k)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(p)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(v)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(M)}while(f< +d.length);f=g.join("");d=d.length%3;d=(d?f.slice(0,d-3):f)+"===".slice(d||3)}d=d.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}else d=f;c(b,d)}else c(d,f)},build:function(){return b}}}function Kd(){var a=[],b=[];return{getGlobalPrimitives:function(){return a},getConditionalProviders:function(){return b},addGlobalContexts:function(c){var e=[],d=[];c=kb(c);var f;try{for(c.s();!(f=c.n()).done;){var h=f.value;yc(h)?e.push(h):ea(h)&&d.push(h)}}catch(g){c.e(g)}finally{c.f()}a=a.concat(d);b=b.concat(e)}, +clearGlobalContexts:function(){b=[];a=[]},removeGlobalContexts:function(c){c=kb(c);var e;try{var d=function(){var c=e.value;yc(c)?b=b.filter(function(a){return!rb(a,c)}):ea(c)&&(a=a.filter(function(a){return!rb(a,c)}))};for(c.s();!(e=c.n()).done;)d()}catch(f){c.e(f)}finally{c.f()}},getApplicableContexts:function(c){c=c.build();var e=Na(c)&&"e"in c?"string"===typeof c.e:!1;if(e){c=nd({},c);try{null!=c&&sb(c,"ue_px",Kb)&&(c.ue_px=JSON.parse(Id(F(c,["ue_px"]))));var d=c}catch(g){d=c}c=d;e="string"=== +typeof F(c,"ue_px.data.schema")?F(c,"ue_px.data.schema"):"string"===typeof F(c,"ue_pr.data.schema")?F(c,"ue_pr.data.schema"):"string"===typeof F(c,"schema")?F(c,"schema"):"";var f=F(c,"e","");d=[];var h=tb(a,c,f,e);d.push.apply(d,qa(h));c=Ld(b,c,f,e);d.push.apply(d,qa(c));return d}return[]}}}function Md(a){if("*"===a[0]||"*"===a[1])return!1;if(0<a.slice(2).length){var b=!1;a=kb(a.slice(2));var c;try{for(a.s();!(c=a.n()).done;)if("*"===c.value)b=!0;else if(b)return!1}catch(e){a.e(e)}finally{a.f()}return!0}return 2== +a.length?!0:!1}function zc(a){return(a=a.split("."))&&1<a.length?Md(a):!1}function Ac(a){a=/^iglu:((?:(?:[a-zA-Z0-9-_]+|\*).)+(?:[a-zA-Z0-9-_]+|\*))\/([a-zA-Z0-9-_.]+|\*)\/jsonschema\/([1-9][0-9]*|\*)-(0|[1-9][0-9]*|\*)-(0|[1-9][0-9]*|\*)$/.exec(a);if(null!==a&&zc(a[1]))return a.slice(1,6)}function Oa(a){if(a=Ac(a)){var b=a[0];return 5===a.length&&zc(b)}return!1}function Nd(a){return Array.isArray(a)&&a.every(function(a){return"string"===typeof a})}function Bc(a){return Nd(a)?a.every(function(a){return Oa(a)}): +"string"===typeof a?Oa(a):!1}function Pa(a){return Na(a)&&"schema"in a&&"data"in a?"string"===typeof a.schema&&"object"===D(a.data):!1}function Od(a){var b=0;if(Q(a)&&"[object Object]"==W(a)){var c=Pd(a);null===c?c=!0:(c=Qd.call(c,"constructor")&&c.constructor,c="function"==typeof c&&c instanceof c&&Cc.call(c)==Rd)}else c=!1;if(c){if(null!=a&&sb(a,"accept",Kb))if(Bc(a.accept))b+=1;else return!1;if(null!=a&&sb(a,"reject",Kb))if(Bc(a.reject))b+=1;else return!1;return 0<b&&2>=b}return!1}function Dc(a){return"function"=== +typeof a&&1>=a.length}function ea(a){return"function"===typeof a&&1>=a.length||Pa(a)}function Ec(a){return Array.isArray(a)&&2===a.length?Array.isArray(a[1])?Dc(a[0])&&Lb(a[1],ea):Dc(a[0])&&ea(a[1]):!1}function Fc(a){return Array.isArray(a)&&2===a.length?Od(a[0])?Array.isArray(a[1])?Lb(a[1],ea):ea(a[1]):!1:!1}function yc(a){return Ec(a)||Fc(a)}function Sd(a,b){var c=0,e=0,d=F(a,"accept");Array.isArray(d)?a.accept.some(function(a){return ub(a,b)})&&e++:"string"===typeof d&&ub(d,b)&&e++;d=F(a,"reject"); +Array.isArray(d)?a.reject.some(function(a){return ub(a,b)})&&c++:"string"===typeof d&&ub(d,b)&&c++;return 0<e&&0===c?!0:!1}function ub(a,b){if(!Oa(a))return!1;a=Ac(a);b=/^iglu:([a-zA-Z0-9-_.]+)\/([a-zA-Z0-9-_]+)\/jsonschema\/([1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)$/.exec(b);b=null!==b?b.slice(1,6):void 0;if(a&&b){if(!Td(a[0],b[0]))return!1;for(var c=1;5>c;c++)if(!Gc(a[c],b[c]))return!1;return!0}return!1}function Td(a,b){b=b.split(".");a=a.split(".");if(b&&a){if(b.length!==a.length)return!1; +for(var c=0;c<a.length;c++)if(!Gc(b[c],a[c]))return!1;return!0}return!1}function Gc(a,b){return a&&b&&"*"===a||a===b}function Hc(a){return Array.isArray(a)?a:[a]}function tb(a,b,c,e){var d;a=Hc(a);a=ca(a,function(a){a:if(Pa(a))a=[a];else{if("function"===typeof a&&1>=a.length){b:{var d=void 0;try{d=a({event:b,eventType:c,eventSchema:e});if(Pa(d)||Array.isArray(d)&&Lb(d,Pa)){var g=d;break b}g=void 0;break b}catch(k){}g=void 0}if(Pa(g)){a=[g];break a}else if(Array.isArray(g)){a=g;break a}}a=void 0}if(a&& +0!==a.length)return a});return(d=[]).concat.apply(d,qa(Ic(a)))}function Ld(a,b,c,e){var d;a=Hc(a);a=ca(a,function(a){a:{if(Ec(a)){var d=a[0],g=!1;try{g=d({event:b,eventType:c,eventSchema:e})}catch(k){g=!1}if(!0===g){a=tb(a[1],b,c,e);break a}}else if(Fc(a)&&Sd(a[0],e)){a=tb(a[1],b,c,e);break a}a=[]}if(a&&0!==a.length)return a});return(d=[]).concat.apply(d,qa(Ic(a)))}function Ud(a,b){var c=Kd(),e={};"undefined"===typeof a&&(a=!0);var d=function(a,b){var c={};b=b||{};for(var d in a)if(b[d]||null!==a[d]&& +"undefined"!==typeof a[d])c[d]=a[d];return c},f=function(a,d,f,h){a.addDict(e);a.add("eid",Vd.v4());f=null==f?{type:"dtm",value:(new Date).getTime()}:"number"===typeof f?{type:"dtm",value:f}:"ttm"===f.type?{type:"ttm",value:f.value}:{type:"dtm",value:f.value||(new Date).getTime()};a.add(f.type,f.value.toString());f=c.getApplicableContexts(a);var g=[];d&&d.length&&g.push.apply(g,qa(d));f&&f.length&&g.push.apply(g,qa(f));d=g&&g.length?{schema:"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0", +data:g}:void 0;void 0!==d&&a.addJson("cx","co",d);"function"===typeof b&&b(a);try{h&&h(a.build())}catch(m){console.warn("Snowplow: error running custom callback")}return a},h=function(b,c,d,e){var g=za(a);b={schema:"iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0",data:b};g.add("e","ue");g.addJson("ue_px","ue_pr",b);return f(g,c,d,e)};return{addPayloadPair:function(a,b){e[a]=b},setBase64Encoding:function(b){a=b},addPayloadDict:function(a){for(var b in a)Object.prototype.hasOwnProperty.call(a, +b)&&(e[b]=a[b])},resetPayloadPairs:function(a){e=xc(a)?a:{}},setTrackerVersion:function(a){e.tv=a},setTrackerNamespace:function(a){e.tna=a},setAppId:function(a){e.aid=a},setPlatform:function(a){e.p=a},setUserId:function(a){e.uid=a},setScreenResolution:function(a,b){e.res=a+"x"+b},setViewport:function(a,b){e.vp=a+"x"+b},setColorDepth:function(a){e.cd=a},setTimezone:function(a){e.tz=a},setLang:function(a){e.lang=a},setIpAddress:function(a){e.ip=a},setUseragent:function(a){e.ua=a},trackUnstructEvent:h, +trackSelfDescribingEvent:h,trackPageView:function(b,c,d,e,h,m){var g=za(a);g.add("e","pv");g.add("url",b);g.add("page",c);g.add("refr",d);return f(g,e,h,m)},trackPagePing:function(b,c,d,e,h,m,r,N,C,n){var g=za(a);g.add("e","pp");g.add("url",b);g.add("page",c);g.add("refr",d);g.add("pp_mix",e.toString());g.add("pp_max",h.toString());g.add("pp_miy",m.toString());g.add("pp_may",r.toString());return f(g,N,C,n)},trackStructEvent:function(b,c,d,e,h,m,r,N){var g=za(a);g.add("e","se");g.add("se_ca",b);g.add("se_ac", +c);g.add("se_la",d);g.add("se_pr",e);g.add("se_va",null==h?void 0:h.toString());return f(g,m,r,N)},trackEcommerceTransaction:function(b,c,d,e,h,m,r,N,C,n,Jb,w){var g=za(a);g.add("e","tr");g.add("tr_id",b);g.add("tr_af",c);g.add("tr_tt",d);g.add("tr_tx",e);g.add("tr_sh",h);g.add("tr_ci",m);g.add("tr_st",r);g.add("tr_co",N);g.add("tr_cu",C);return f(g,n,Jb,w)},trackEcommerceTransactionItem:function(b,c,d,e,h,m,r,N,C,n){var g=za(a);g.add("e","ti");g.add("ti_id",b);g.add("ti_sk",c);g.add("ti_nm",d);g.add("ti_ca", +e);g.add("ti_pr",h);g.add("ti_qu",m);g.add("ti_cu",r);return f(g,N,C,n)},trackScreenView:function(a,b,c,e,f){return h({schema:"iglu:com.snowplowanalytics.snowplow/screen_view/jsonschema/1-0-0",data:d({name:a,id:b})},c,e,f)},trackLinkClick:function(a,b,c,e,f,m,r,N){a={schema:"iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1",data:d({targetUrl:a,elementId:b,elementClasses:c,elementTarget:e,elementContent:f})};return h(a,m,r,N)},trackAdImpression:function(a,b,c,e,f,m,r,N,n,q,u){a={schema:"iglu:com.snowplowanalytics.snowplow/ad_impression/jsonschema/1-0-0", +data:d({impressionId:a,costModel:b,cost:c,targetUrl:e,bannerId:f,zoneId:m,advertiserId:r,campaignId:N})};return h(a,n,q,u)},trackAdClick:function(a,b,c,e,f,m,r,n,C,q,u,w){a={schema:"iglu:com.snowplowanalytics.snowplow/ad_click/jsonschema/1-0-0",data:d({targetUrl:a,clickId:b,costModel:c,cost:e,bannerId:f,zoneId:m,impressionId:r,advertiserId:n,campaignId:C})};return h(a,q,u,w)},trackAdConversion:function(a,b,c,e,f,m,r,n,C,q,u,w){a={schema:"iglu:com.snowplowanalytics.snowplow/ad_conversion/jsonschema/1-0-0", +data:d({conversionId:a,costModel:b,cost:c,category:e,action:f,property:m,initialValue:r,advertiserId:n,campaignId:C})};return h(a,q,u,w)},trackSocialInteraction:function(a,b,c,e,f,m){a={schema:"iglu:com.snowplowanalytics.snowplow/social_interaction/jsonschema/1-0-0",data:d({action:a,network:b,target:c})};return h(a,e,f,m)},trackAddToCart:function(a,b,c,e,f,m,r,n,q){return h({schema:"iglu:com.snowplowanalytics.snowplow/add_to_cart/jsonschema/1-0-0",data:d({sku:a,name:b,category:c,unitPrice:e,quantity:f, +currency:m})},r,n,q)},trackRemoveFromCart:function(a,b,c,e,f,m,r,n,q){return h({schema:"iglu:com.snowplowanalytics.snowplow/remove_from_cart/jsonschema/1-0-0",data:d({sku:a,name:b,category:c,unitPrice:e,quantity:f,currency:m})},r,n,q)},trackFormFocusOrChange:function(a,b,c,e,f,m,r,n,q,u){var g="";b={formId:b,elementId:c,nodeName:e,elementClasses:m,value:r};"change_form"===a?(g="iglu:com.snowplowanalytics.snowplow/change_form/jsonschema/1-0-0",b.type=f):"focus_form"===a&&(g="iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-0-0", +b.elementType=f);return h({schema:g,data:d(b,{value:!0})},n,q,u)},trackFormSubmission:function(a,b,c,e,f,m){return h({schema:"iglu:com.snowplowanalytics.snowplow/submit_form/jsonschema/1-0-0",data:d({formId:a,formClasses:b,elements:c})},e,f,m)},trackSiteSearch:function(a,b,c,e,f,m,r){return h({schema:"iglu:com.snowplowanalytics.snowplow/site_search/jsonschema/1-0-0",data:d({terms:a,filters:b,totalResults:c,pageResults:e})},f,m,r)},trackConsentWithdrawn:function(a,b,c,e,f,m,r,n){b={schema:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0", +data:d({id:b,version:c,name:e,description:f})};return h({schema:"iglu:com.snowplowanalytics.snowplow/consent_withdrawn/jsonschema/1-0-0",data:d({all:a})},b.data&&m?m.concat([b]):m,r,n)},trackConsentGranted:function(a,b,c,e,f,m,r,n){a={schema:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0",data:d({id:a,version:b,name:c,description:e})};return h({schema:"iglu:com.snowplowanalytics.snowplow/consent_granted/jsonschema/1-0-0",data:d({expiry:f})},m?m.concat([a]):[a],r,n)},addGlobalContexts:function(a){c.addGlobalContexts(a)}, +clearGlobalContexts:function(){c.clearGlobalContexts()},removeGlobalContexts:function(a){c.removeGlobalContexts(a)}}}function Qa(a,b,c,e,d){function f(a){return-1<Sb.map(function(a){return a.toLowerCase()}).indexOf(a.toLowerCase())}function h(){Ra=tc(z.domain,A.location.href,dc());Ra[1]!==Aa&&(Mb=dc(Aa));Ma=cc(Ra[0]);Aa=Ra[1]}function g(){var a=(new Date).getTime();if(this.href){a="_sp="+(Nb+"."+a);var b=this.href.split("#"),c=b[0].split("?"),d=c.shift();if(c=c.join("?")){for(var e=!0,f=c.split("&"), +g=0;g<f.length;g++)if("_sp="===f[g].substr(0,4)){e=!1;f[g]=a;c=f.join("&");break}e&&(c=a+"&"+c)}else c=a;b[0]=d+"?"+c;this.href=b.join("#")}}function k(a){for(var b=0;b<z.links.length;b++){var c=z.links[b];!c.spDecorationEnabled&&a(c)&&(q(c,"click",g,!0),q(c,"mousedown",g,!0),c.spDecorationEnabled=!0)}}function p(a){if(Qa){var b=/#.*/;a=a.replace(b,"")}Wa&&(b=/[{}]/g,a=a.replace(b,""));return a}function v(a){return(a=/^([a-z]+):/.exec(a))?a[1]:null}function n(a){a=Sa+a+"."+Ta;if("localStorage"==G){a:{try{var b= +xa.getItem(a+".expires");if(null===b||+b>Date.now()){var c=xa.getItem(a);break a}else xa.removeItem(a),xa.removeItem(a+".expires");c=void 0;break a}catch(ef){}c=void 0}return c}if("cookie"==G||"cookieAndLocalStorage"==G)return J(a)}function m(){h();Ta=Lb((vb||Ma)+(Ea||"/")).slice(0,4)}function r(){Vb=(new Date).getTime()}function u(){var a=C(),b=a[0];b<Wb?Wb=b:b>Xb&&(Xb=b);a=a[1];a<Yb?Yb=a:a>Zb&&(Zb=a);r()}function C(){var a=z.compatMode&&"BackCompat"!==z.compatMode?z.documentElement:z.body;return[a.scrollLeft|| +A.pageXOffset,a.scrollTop||A.pageYOffset]}function B(){var a=C(),b=a[0];Xb=Wb=b;Zb=Yb=a=a[1]}function D(a){a=Math.round(a);if(!isNaN(a))return a}function w(){I(Sa+"ses."+Ta,"*",Ja)}function F(a,b,c,d,e,f){I(Sa+"id."+Ta,a+"."+b+"."+c+"."+d+"."+e+"."+f,kb)}function I(a,b,c){if(!fa||Ua)"localStorage"==G?Ub(a,b,c):("cookie"==G||"cookieAndLocalStorage"==G)&&J(a,b,c,Ea,vb,ja,oa)}function L(){var a=Sa+"id."+Ta,b=Sa+"ses."+Ta;rc(a);rc(b);J(a,"",-1,"/",vb,ja,oa);J(b,"",-1,"/",vb,ja,oa)}function Q(){if(!fa|| +Ua){var a="none"!=G&&!!n("ses"),b=R();b[1]?Nb=b[1]:(Nb=fa?"":P(),b[1]=Nb);T=b[6];a||(b[3]++,T=P(),b[6]=T,b[5]=b[4]);"none"!=G&&(w(),b[4]=Math.round((new Date).getTime()/1E3),b.shift(),F.apply(null,b))}}function R(){if("none"==G)return[];var a=Math.round((new Date).getTime()/1E3),b=n("id");b?(a=b.split("."),a.unshift("0")):a=["1",Nb,a,0,a,""];a[6]||(a[6]=P());return a}function W(a){return mb?"https://"+a:Hb?"http://"+a:("https:"===z.location.protocol?"https":"http")+"://"+a}function x(a){var b=ib.concat(a|| +[]);H.webPage&&b.push({schema:"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",data:{id:V()}});H.performanceTiming&&(a=ba())&&b.push(a);if(A.optimizely){H.optimizelySummary&&(a=ua(),O(a,function(a){b.push(a)}));H.optimizelyXSummary&&(a=ya(),O(a,function(a){b.push(a)}));if(H.optimizelyExperiments){var c=la();for(a=0;a<c.length;a++)b.push(c[a])}if(H.optimizelyStates)for(c=pa(),a=0;a<c.length;a++)b.push(c[a]);if(H.optimizelyVariations)for(c=qa(),a=0;a<c.length;a++)b.push(c[a]);H.optimizelyVisitor&& +(a=ra())&&b.push(a);if(H.optimizelyAudiences)for(c=sa(),a=0;a<c.length;a++)b.push(c[a]);if(H.optimizelyDimensions)for(c=ta(),a=0;a<c.length;a++)b.push(c[a])}H.parrable&&(a=za())&&b.push(a);H.gdprBasis&&Va.gdprBasis&&(a=Va.gdprBasis?{schema:"iglu:com.snowplowanalytics.snowplow/gdpr/jsonschema/1-0-0",data:{basisForProcessing:Va.gdprBasis,documentId:Va.gdprDocId||null,documentVersion:Va.gdprDocVer||null,documentDescription:Va.gdprDocDesc||null}}:void 0,a&&b.push(a));H.clientHints&&Ba&&b.push({schema:"iglu:org.ietf/http_client_hints/jsonschema/1-0-0", +data:Ba});return b}function Y(){Db&&null!=e.pageViewId||(e.pageViewId=P())}function V(){null==e.pageViewId&&(e.pageViewId=P());return e.pageViewId}function ba(){var a="navigationStart redirectStart redirectEnd fetchStart domainLookupStart domainLookupEnd connectStart secureConnectionStart connectEnd requestStart responseStart responseEnd unloadEventStart unloadEventEnd domLoading domInteractive domContentLoadedEventStart domContentLoadedEventEnd domComplete loadEventStart loadEventEnd msFirstPaint chromeFirstPaint requestEnd proxyStart proxyEnd".split(" "), +b=A.performance||A.mozPerformance||A.msPerformance||A.webkitPerformance;if(b){var c={},d;for(d in b.timing)sc(d,a)&&null!==b.timing[d]&&(c[d]=b.timing[d]);delete c.requestEnd;return{schema:"iglu:org.w3/PerformanceTiming/jsonschema/1-0-0",data:c}}}function U(a,b){if(A.optimizely&&A.optimizely.data){var c=A.optimizely.data[a];"undefined"!==typeof b&&void 0!==c&&(c=c[b])}return c}function Z(a,b){if(A.optimizely&&"function"===typeof A.optimizely.get){var c=A.optimizely.get(a);"undefined"!==typeof b&& +void 0!==c&&(c=c[b])}return c}function ka(){var a=U("state"),b=U("experiments");return ca(a&&b&&a.activeExperiments,function(c){var d=b[c];return{activeExperimentId:c.toString(),variation:a.variationIdsMap[c][0].toString(),conditional:d&&d.conditional,manual:d&&d.manual,name:d&&d.name}})}function E(){var a=Z("state"),b=a&&a.getActiveExperimentIds(),c=a&&a.getVariationMap(),d=Z("visitor");return ca(b,function(a){var b=c[a],e=b&&b.name&&b.name.toString()||null;b=b&&b.id;var f=d&&d.visitorId&&d.visitorId.toString()|| +null;return{experimentId:nb(a)||null,variationName:e,variation:nb(b)||null,visitorId:f}})}function la(){var a=U("experiments");if(a){var b=[],c;for(c in a)if(a.hasOwnProperty(c)){var d={};d.id=c;var e=a[c];d.code=e.code;d.manual=e.manual;d.conditional=e.conditional;d.name=e.name;d.variationIds=e.variation_ids;b.push({schema:"iglu:com.optimizely/experiment/jsonschema/1-0-0",data:d})}return b}return[]}function pa(){var a=[],b=U("experiments");if(b)for(var c in b)b.hasOwnProperty(c)&&a.push(c);if(b= +U("state")){c=[];for(var d=b.activeExperiments||[],e=0;e<a.length;e++){var f=a[e],g={};g.experimentId=f;g.isActive=sc(a[e],d);g.variationIndex=(b.variationMap||{})[f];g.variationName=(b.variationNamesMap||{})[f];var h=b.variationIdsMap||{};h[f]&&1===h[f].length&&(g.variationId=h[f][0]);c.push({schema:"iglu:com.optimizely/state/jsonschema/1-0-0",data:g})}return c}return[]}function qa(){var a=U("variations");if(a){var b=[],c;for(c in a)if(a.hasOwnProperty(c)){var d={};d.id=c;var e=a[c];d.name=e.name; +d.code=e.code;b.push({schema:"iglu:com.optimizely/variation/jsonschema/1-0-0",data:d})}return b}return[]}function ra(){var a=U("visitor");if(a){var b={};b.browser=a.browser;b.browserVersion=a.browserVersion;b.device=a.device;b.deviceType=a.deviceType;b.ip=a.ip;var c=a.platform||{};b.platformId=c.id;b.platformVersion=c.version;c=a.location||{};b.locationCity=c.city;b.locationRegion=c.region;b.locationCountry=c.country;b.mobile=a.mobile;b.mobileId=a.mobileId;b.referrer=a.referrer;b.os=a.os;return{schema:"iglu:com.optimizely/visitor/jsonschema/1-0-0", +data:b}}}function sa(){var a=U("visitor","audiences");if(a){var b=[],c;for(c in a)a.hasOwnProperty(c)&&b.push({schema:"iglu:com.optimizely/visitor_audience/jsonschema/1-0-0",data:{id:c,isMember:a[c]}});return b}return[]}function ta(){var a=U("visitor","dimensions");if(a){var b=[],c;for(c in a)a.hasOwnProperty(c)&&b.push({schema:"iglu:com.optimizely/visitor_dimension/jsonschema/1-0-0",data:{id:c,value:a[c]}});return b}return[]}function ua(){return ca(ka(),function(a){return{schema:"iglu:com.optimizely.snowplow/optimizely_summary/jsonschema/1-0-0", +data:a}})}function ya(){return ca(E(),function(a){return{schema:"iglu:com.optimizely.optimizelyx/summary/jsonschema/1-0-0",data:a}})}function za(){var a=window._hawk;if(a){var b={encryptedId:null,optout:null};b.encryptedId=a.browserid;a=new RegExp("(?:^|;)\\s?"+"_parrable_hawk_optout".replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")+"=(.*?)(?:;|$)","i");a=document.cookie.match(a);b.optout=a&&decodeURIComponent(a[1])?a&&decodeURIComponent(a[1]):"false";return{schema:"iglu:com.parrable/encrypted_payload/jsonschema/1-0-0", +data:b}}}function ea(){!Cb&&S.geolocation&&S.geolocation.getCurrentPosition&&(Cb=!0,S.geolocation.getCurrentPosition(function(a){var b=a.coords;ib.push({schema:"iglu:com.snowplowanalytics.snowplow/geolocation_context/jsonschema/1-1-0",data:{latitude:b.latitude,longitude:b.longitude,latitudeLongitudeAccuracy:b.accuracy,altitude:b.altitude,altitudeAccuracy:b.altitudeAccuracy,bearing:b.heading,speed:b.speed,timestamp:Math.round(a.timestamp)}})}))}function Fa(){var a={};O("__utma __utmb __utmc __utmv __utmz _ga".split(" "), +function(b){var c=J(b);c&&(a[b]=c)});return{schema:"iglu:com.google.analytics/cookies/jsonschema/1-0-0",data:a}}function Ia(a,b,c,d,e){h();Eb&&Y();Eb=!0;wb=z.title;Ob=a;a=pc(Ob||wb);t.trackPageView(p(xb||Aa),a,p(da||Mb),x((b||[]).concat(c?c():[])),d,e);d=new Date;e=!1;if(X.enabled&&!X.installed){e=X.installed=!0;var f={update:function(){if("undefined"!==typeof window&&"function"===typeof window.addEventListener){var a=!1,b=Object.defineProperty({},"passive",{get:function(){a=!0}}),c=function(){}; +window.addEventListener("testPassiveEventSupport",c,b);window.removeEventListener("testPassiveEventSupport",c,b);f.hasSupport=a}}};f.update();a="onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";Object.prototype.hasOwnProperty.call(f,"hasSupport")?q(z,a,r,{passive:!0}):q(z,a,r);B();a=function(a){var b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:r;return function(a){return q(z,a,b)}};O("click mouseup mousedown mousemove keypress keydown keyup".split(" "), +a(z));O(["resize","focus","blur"],a(A));a(A,u)("scroll")}if(X.enabled&&(ub||e)){Vb=d.getTime();for(var g in X.configurations)X.configurations.hasOwnProperty(g)&&(d=X.configurations[g],clearInterval(d.activityInterval),La(d,b,c))}}function La(a,b,c){var d=function(a,b){h();a({context:b,pageViewId:V(),minXOffset:Wb,minYOffset:Yb,maxXOffset:Xb,maxYOffset:Zb});B()},e=function(){Vb+a.configHeartBeatTimer>(new Date).getTime()&&d(a.callback,(b||[]).concat(c?c():[]))};a.activityInterval=0!=a.configMinimumVisitLength? +setTimeout(function(){Vb+a.configMinimumVisitLength>(new Date).getTime()&&d(a.callback,(b||[]).concat(c?c():[]));a.activityInterval=setInterval(e,a.configHeartBeatTimer)},a.configMinimumVisitLength):setInterval(e,a.configHeartBeatTimer)}function wa(a,b,c){if("number"==typeof a&&a==ec(a)&&"number"==typeof b&&b==ec(b))return{configMinimumVisitLength:1E3*a,configHeartBeatTimer:1E3*b,activityInterval:null,callback:c};y("Activity tracking not enabled, please provide integer values for minimumVisitLength and heartBeatDelay."); +return{}}function Pa(a){var b=a.context,c=a.minXOffset,d=a.minYOffset,e=a.maxXOffset;a=a.maxYOffset;var f=z.title;f!==wb&&(wb=f,Ob=null);t.trackPagePing(p(xb||Aa),pc(Ob||wb),p(da||Mb),D(c),D(e),D(d),D(a),x(b))}function ia(a,b){return""!==a?a+b.charAt(0).toUpperCase()+b.slice(1):b}function K(a){var b,c,d=["","webkit","ms","moz"];if(!jb)for(c=0;c<d.length;c++){var e=d[c];if(z[ia(e,"hidden")]){"prerender"===z[ia(e,"visibilityState")]&&(b=!0);break}else if(!1===z[ia(e,"hidden")])break}b?q(z,e+"visibilitychange", +function Xd(){z.removeEventListener(e+"visibilitychange",Xd,!1);a()}):a()}d=d||{};d.hasOwnProperty("post")?d.eventMethod=!0===d.post?"post":"get":d.eventMethod=d.eventMethod||"post";d.hasOwnProperty("useStm")||(d.useStm=!0);var Da=function(a){return a.hasOwnProperty("stateStorageStrategy")?a.stateStorageStrategy:Na||qb?Na&&qb?"cookieAndLocalStorage":Na?"cookie":"localStorage":"none"},ma=function(a){return a.hasOwnProperty("anonymousTracking")?!0===a.anonymousTracking.withSessionTracking:!1},na=function(a){return a.hasOwnProperty("anonymousTracking")? +!0===a.anonymousTracking.withServerAnonymisation:!1},lb=Object.freeze({consent:"consent",contract:"contract",legalObligation:"legal_obligation",vitalInterests:"vital_interests",publicTask:"public_task",legitimateInterests:"legitimate_interests"}),t=Ud(!0,function(a){var b=Math.round((new Date).getTime()/1E3),c=n("ses"),d=R(),f=d[0],g=d[1],Wd=d[2],k=d[3],l=d[4],m=d[5];d=d[6];var v=Pb?!!J(Pb):!1;Ga||v?L():("0"===f?(T=d,c||"none"==G||(k++,m=l,T=P()),ha=k):(new Date).getTime()-Oa>1E3*Ja&&(T=P(),ha++), +a.add("vp",wd()),a.add("ds",xd()),a.add("vid",Ua?ha:fa?null:ha),a.add("sid",Ua?T:fa?null:T),a.add("duid",fa?null:g),a.add("uid",fa?null:yb),h(),a.add("refr",p(da||Mb)),a.add("url",p(xb||Aa)),"none"!=G&&(F(g,Wd,ha,b,m,T),w()),Oa=(new Date).getTime());b=sb;c=new Date;f=Pb?!!J(Pb):!1;Ga||f||(Ca.enqueueRequest(a.build(),Qb),e.expireDateTime=c.getTime()+b)}),Ha=!1,l={},va={},Ka={},z=document,A=window,S=navigator,Ra=tc(z.domain,A.location.href,dc()),Ma=cc(Ra[0]),Aa=Ra[1],Mb=Ra[2],da,ob=d.hasOwnProperty("platform")? +d.platform:"web",Qb,pb=d.hasOwnProperty("postPath")?d.postPath:"/com.snowplowanalytics.snowplow/tp2",rb=d.hasOwnProperty("appId")?d.appId:"",xb,wb=z.title,Ob,sb=d.hasOwnProperty("pageUnloadTimer")?d.pageUnloadTimer:500,ub=d.hasOwnProperty("resetActivityTrackingOnPageView")?d.resetActivityTrackingOnPageView:!0,Qa,Wa,Sa=d.hasOwnProperty("cookieName")?d.cookieName:"_sp_",vb=d.hasOwnProperty("cookieDomain")?d.cookieDomain:null,Ea="/",ja=d.hasOwnProperty("cookieSameSite")?d.cookieSameSite:"None",oa=d.hasOwnProperty("cookieSecure")? +d.cookieSecure:!0,gb=S.doNotTrack||S.msDoNotTrack||A.doNotTrack,Ga=d.hasOwnProperty("respectDoNotTrack")?d.respectDoNotTrack&&("yes"===gb||"1"===gb):!1,Pb,jb,kb=d.hasOwnProperty("cookieLifetime")?d.cookieLifetime:63072E3,Ja=d.hasOwnProperty("sessionCookieTimeout")?d.sessionCookieTimeout:1800,Fb=z.characterSet||z.charset,mb=d.hasOwnProperty("forceSecureTracker")?!0===d.forceSecureTracker:!1,Hb=!mb&&d.hasOwnProperty("forceUnsecureTracker")?!0===d.forceUnsecureTracker:!1,Ua=ma(d),Rb=na(d),fa=!!d.anonymousTracking, +qb=d.hasOwnProperty("useLocalStorage")?(y("argmap.useLocalStorage is deprecated. Use argmap.stateStorageStrategy instead."),d.useLocalStorage):!0,Na=d.hasOwnProperty("useCookies")?(y("argmap.useCookies is deprecated. Use argmap.stateStorageStrategy instead."),d.useCookies):!0,G=Da(d),Kb=S.userLanguage||S.language,$b=yd(),tb=a+"_"+b,Vb,Oa=(new Date).getTime(),Wb,Xb,Yb,Zb,Lb=Yd,Ta,Nb,T,ha=1,yb,Xa,Ya,Za,$a,ab,bb,cb,db,eb,fb,hb,ac=[],zb=new zd(t,tb,x),bc=new Ad(t,tb,x),Bb=new Cd(t),Ca=new Ed(a,b,e,"localStorage"== +G||"cookieAndLocalStorage"==G,d.eventMethod,pb,d.bufferSize,d.maxPostBytes||4E4,d.useStm,d.maxLocalStorageQueueSize||1E3,d.connectionTimeout||5E3,Rb),Cb=!1,H=d.contexts||{},ib=[],Ab=[],Db=!1,Eb=!1,X={enabled:!1,installed:!1,configurations:{}},Ba=null;H.clientHints&&S.userAgentData&&(Ba={isMobile:S.userAgentData.mobile,brands:S.userAgentData.brands},H.clientHints.includeHighEntropy&&S.userAgentData.getHighEntropyValues&&S.userAgentData.getHighEntropyValues(["platform","platformVersion","architecture", +"model","uaFullVersion"]).then(function(a){Ba.architecture=a.architecture;Ba.model=a.model;Ba.platform=a.platform;Ba.uaFullVersion=a.uaFullVersion;Ba.platformVersion=a.platformVersion}));var Sb=d.skippedBrowserFeatures||[],Va={};d.hasOwnProperty("discoverRootDomain")&&d.discoverRootDomain&&(vb=td(ja,oa));H.gaCookies&&ib.push(Fa());H.geolocation&&ea();t.setBase64Encoding(d.hasOwnProperty("encodeBase64")?d.encodeBase64:!0);t.setTrackerVersion(c);t.setTrackerNamespace(b);t.setAppId(rb);t.setPlatform(ob); +t.setTimezone(Zd.jstz.determine().name());t.addPayloadPair("lang",Kb);t.addPayloadPair("cs",Fb);for(var aa in $b)Object.prototype.hasOwnProperty.call($b,aa)&&("res"!==aa&&"cd"!==aa&&"cookie"!==aa||f(aa)?f(aa)||t.addPayloadPair("f_"+aa,$b[aa]):t.addPayloadPair(aa,$b[aa]));m();Q();d.crossDomainLinker&&k(d.crossDomainLinker);l.getDomainSessionIndex=function(){return ha};l.getPageViewId=function(){return V()};l.newSession=function(){var a=Math.round((new Date).getTime()/1E3),b=R(),c=b[1],d=b[2],e=b[3], +f=b[4],g=b[5],h=b[6];"0"===b[0]?(T=h,"none"!=G&&(e++,g=f,T=P()),ha=e,w()):(T=P(),ha++);"none"!=G&&(F(c,d,ha,a,g,T),w());Oa=(new Date).getTime()};l.getCookieName=function(a){return Sa+a+"."+Ta};l.getUserId=function(){return yb};l.getDomainUserId=function(){return R()[1]};l.getDomainUserInfo=function(){return R()};l.getUserFingerprint=function(){y("User Fingerprinting is no longer supported. This function will be removed in a future release.");return 0};l.setAppId=function(a){y("setAppId is deprecated. Instead use the argmap argument on tracker initialisation: appId"); +t.setAppId(a)};l.setReferrerUrl=function(a){da=a};l.setCustomUrl=function(a){h();var b=Aa,c;v(a)?xb=a:"/"===a.slice(0,1)?xb=v(b)+"://"+Tb(b)+a:(b=p(b),0<=(c=b.indexOf("?"))&&(b=b.slice(0,c)),(c=b.lastIndexOf("/"))!==b.length-1&&(b=b.slice(0,c+1)),xb=b+a)};l.setDocumentTitle=function(a){wb=z.title;Ob=a};l.discardHashTag=function(a){Qa=a};l.discardBrace=function(a){Wa=a};l.setCookieNamePrefix=function(a){y("setCookieNamePrefix is deprecated. Instead use the argmap argument on tracker initialisation: cookieName"); +Sa=a};l.setCookieDomain=function(a){y("setCookieDomain is deprecated. Instead use the argmap argument on tracker initialisation: cookieDomain");vb=cc(a);m()};l.setCookiePath=function(a){Ea=a;m()};l.setVisitorCookieTimeout=function(a){kb=a};l.setSessionCookieTimeout=function(a){y("setSessionCookieTimeout is deprecated. Instead use the argmap argument on tracker initialisation: sessionCookieTimeout");Ja=a};l.setUserFingerprintSeed=function(){y("User Fingerprinting is no longer supported. This function will be removed in a future release.")}; +l.enableUserFingerprint=function(){y("User Fingerprinting is no longer supported. This function will be removed in a future release.")};l.respectDoNotTrack=function(a){y("respectDoNotTrack is deprecated. Instead use the argmap argument on tracker initialisation: respectDoNotTrack");var b=S.doNotTrack||S.msDoNotTrack;Ga=a&&("yes"===b||"1"===b)};l.crossDomainLinker=function(a){k(a)};l.enableLinkClickTracking=function(a,b,c,d){e.hasLoaded?(zb.configureLinkClickTracking(a,b,c,d),zb.addClickListeners()): +e.registeredOnLoadHandlers.push(function(){zb.configureLinkClickTracking(a,b,c,d);zb.addClickListeners()})};l.refreshLinkClickTracking=function(){e.hasLoaded?zb.addClickListeners():e.registeredOnLoadHandlers.push(function(){zb.addClickListeners()})};l.enableActivityTracking=function(a,b){X.enabled=!0;X.configurations.pagePing=wa(a,b,Pa)};l.enableActivityTrackingCallback=function(a,b,c){X.enabled=!0;X.configurations.callback=wa(a,b,c)};l.updatePageActivity=function(){r()};l.enableFormTracking=function(a, +b){e.hasLoaded?(bc.configureFormTracking(a),bc.addFormListeners(b)):e.registeredOnLoadHandlers.push(function(){bc.configureFormTracking(a);bc.addFormListeners(b)})};l.killFrame=function(){A.location!==A.top.location&&(A.top.location=A.location)};l.redirectFile=function(a){"file:"===A.location.protocol&&(A.location=a)};l.setOptOutCookie=function(a){Pb=a};l.setCountPreRendered=function(a){jb=a};l.setUserId=function(a){yb=a};l.identifyUser=function(a){l.setUserId(a)};l.setUserIdFromLocation=function(a){h(); +yb=Gb(a,Aa)};l.setUserIdFromReferrer=function(a){h();yb=Gb(a,Mb)};l.setUserIdFromCookie=function(a){yb=J(a)};l.setCollectorCf=function(a){Qb=W(a+".cloudfront.net");Ca.setCollectorUrl(Qb)};l.setCollectorUrl=function(a){Qb=W(a);Ca.setCollectorUrl(Qb)};l.setPlatform=function(a){y("setPlatform is deprecated. Instead use the argmap argument on tracker initialisation: platform");t.setPlatform(a)};l.encodeBase64=function(a){y("encodeBase64 is deprecated. Instead use the argmap argument on tracker initialisation: encodeBase64"); +t.setBase64Encoding(a)};l.flushBuffer=function(){Ca.executeQueue()};l.enableGeolocationContext=ea;l.trackPageView=function(a,b,c,d,e){K(function(){Ia(a,b,c,d,e)})};l.trackStructEvent=function(a,b,c,d,e,f,g,h){K(function(){t.trackStructEvent(a,b,c,d,e,x(f),g,h)})};l.trackSelfDescribingEvent=function(a,b,c,d){K(function(){t.trackSelfDescribingEvent(a,x(b),c,d)})};l.trackUnstructEvent=function(a,b,c){K(function(){t.trackSelfDescribingEvent(a,x(b),c)})};l.addTrans=function(a,b,c,d,e,f,g,h,k,l,p){Xa=a; +Ya=b;Za=c;$a=d;ab=e;bb=f;cb=g;db=h;eb=k;fb=l;hb=p};l.addItem=function(a,b,c,d,e,f,g,h,k){ac.push({orderId:a,sku:b,name:c,category:d,price:e,quantity:f,currency:g,context:h,tstamp:k})};l.trackTrans=function(){K(function(){var a=hb;t.trackEcommerceTransaction(Xa,Ya,Za,$a,ab,bb,cb,db,eb,x(fb),a);for(a=0;a<ac.length;a++){var b=ac[a],c=b.tstamp;t.trackEcommerceTransactionItem(b.orderId,b.sku,b.name,b.category,b.price,b.quantity,b.currency,x(b.context),c)}hb=fb=eb=db=cb=bb=ab=$a=Za=Ya=Xa=void 0;ac=[]})}; +l.trackLinkClick=function(a,b,c,d,e,f,g){K(function(){t.trackLinkClick(a,b,c,d,e,x(f),g)})};l.trackAdImpression=function(a,b,c,d,e,f,g,h,k,l){K(function(){t.trackAdImpression(a,b,c,d,e,f,g,h,x(k),l)})};l.trackAdClick=function(a,b,c,d,e,f,g,h,k,l,p){K(function(){t.trackAdClick(a,b,c,d,e,f,g,h,k,x(l),p)})};l.trackAdConversion=function(a,b,c,d,e,f,g,h,k,l,p){K(function(){t.trackAdConversion(a,b,c,d,e,f,g,h,k,x(l),p)})};l.trackSocialInteraction=function(a,b,c,d,e){K(function(){t.trackSocialInteraction(a, +b,c,x(d),e)})};l.trackAddToCart=function(a,b,c,d,e,f,g,h){K(function(){t.trackAddToCart(a,b,c,d,e,f,x(g),h)})};l.trackRemoveFromCart=function(a,b,c,d,e,f,g,h){K(function(){t.trackRemoveFromCart(a,b,c,d,e,f,x(g),h)})};l.trackSiteSearch=function(a,b,c,d,e,f){K(function(){t.trackSiteSearch(a,b,c,d,x(e),f)})};l.trackTiming=function(a,b,c,d,e,f){K(function(){t.trackSelfDescribingEvent({schema:"iglu:com.snowplowanalytics.snowplow/timing/jsonschema/1-0-0",data:{category:a,variable:b,timing:c,label:d}},x(e), +f)})};l.trackConsentWithdrawn=function(a,b,c,d,e,f,g){K(function(){t.trackConsentWithdrawn(a,b,c,d,e,x(f),g)})};l.trackConsentGranted=function(a,b,c,d,e,f,g){K(function(){t.trackConsentGranted(a,b,c,d,e,x(f),g)})};l.trackEnhancedEcommerceAction=function(a,b,c){var d=Ab.concat(b||[]);Ab.length=0;K(function(){t.trackSelfDescribingEvent({schema:"iglu:com.google.analytics.enhanced-ecommerce/action/jsonschema/1-0-0",data:{action:a}},x(d),c)})};l.addEnhancedEcommerceActionContext=function(a,b,c,d,e,f,g, +h,k,l){Ab.push({schema:"iglu:com.google.analytics.enhanced-ecommerce/actionFieldObject/jsonschema/1-0-0",data:{id:a,affiliation:b,revenue:Ib(c),tax:Ib(d),shipping:Ib(e),coupon:f,list:g,step:nb(h),option:k,currency:l}})};l.addEnhancedEcommerceImpressionContext=function(a,b,c,d,e,f,g,h,k){Ab.push({schema:"iglu:com.google.analytics.enhanced-ecommerce/impressionFieldObject/jsonschema/1-0-0",data:{id:a,name:b,list:c,brand:d,category:e,variant:f,position:nb(g),price:Ib(h),currency:k}})};l.addEnhancedEcommerceProductContext= +function(a,b,c,d,e,f,g,h,k,l,p){Ab.push({schema:"iglu:com.google.analytics.enhanced-ecommerce/productFieldObject/jsonschema/1-0-0",data:{id:a,name:b,list:c,brand:d,category:e,variant:f,price:Ib(g),quantity:nb(h),coupon:k,position:nb(l),currency:p}})};l.addEnhancedEcommercePromoContext=function(a,b,c,d,e){Ab.push({schema:"iglu:com.google.analytics.enhanced-ecommerce/promoFieldObject/jsonschema/1-0-0",data:{id:a,name:b,creative:c,position:d,currency:e}})};l.enableGdprContext=function(a){var b=1<arguments.length&& +void 0!==arguments[1]?arguments[1]:null,c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null,d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,e=lb[a];e?(H.gdprBasis=!0,Va={gdprBasis:e,gdprDocId:b,gdprDocVer:c,gdprDocDesc:d}):y("enableGdprContext failed. basisForProcessing must be set to one of: consent, legalObligation, vitalInterests publicTask, legitimateInterests")};l.addGlobalContexts=function(a){t.addGlobalContexts(a)};l.removeGlobalContexts=function(a){t.removeGlobalContexts(a)}; +l.clearGlobalContexts=function(){t.clearGlobalContexts()};l.enableErrorTracking=function(a,b){Bb.enableErrorTracking(a,b,x())};l.trackError=function(a,b,c,d,e,f){f=x(f);Bb.trackError(a,b,c,d,e,f)};l.preservePageViewId=function(){Db=!0};l.disableAnonymousTracking=function(a){a?(d.stateStorageStrategy=a,d.anonymousTracking=!1,G=Da(d)):d.anonymousTracking=!1;fa=!!d.anonymousTracking;Ua=ma(d);Rb=na(d);Ca.setUseLocalStorage("localStorage"==G||"cookieAndLocalStorage"==G);Ca.setAnonymousTracking(Rb);Q(); +Ca.executeQueue()};l.enableAnonymousTracking=function(a){d.anonymousTracking=a||!0;fa=!!d.anonymousTracking;Ua=ma(d);Rb=na(d);Ua||Y();Ca.setAnonymousTracking(Rb)};l.clearUserData=L;l.setDebug=function(a){Ka=(Ha=(!!a).valueOf())?l:va};va=Gd(l);return Ka=Ha?l:va}function Jc(a,b){function c(){var a;if(!f.hasLoaded)for(f.hasLoaded=!0,a=0;a<f.registeredOnLoadHandlers.length;a++)f.registeredOnLoadHandlers[a]();return!0}var e=document,d=window,f={outQueues:[],bufferFlushers:[],expireDateTime:null,hasLoaded:!1, +registeredOnLoadHandlers:[],pageViewId:null};d.Snowplow={getTrackerCf:function(a){var c=new Qa(b,"","js-2.17.3",f,{});c.setCollectorCf(a);return c},getTrackerUrl:function(a){var c=new Qa(b,"","js-2.17.3",f,{});c.setCollectorUrl(a);return c},getAsyncTracker:function(){return new Qa(b,"","js-2.17.3",f,{})}};q(d,"beforeunload",function(){O(f.bufferFlushers,function(a){a()});if(f.expireDateTime){do{var a=new Date;if(0===Array.prototype.filter.call(f.outQueues,function(a){return 0<a.length}).length)break}while(a.getTime()< +f.expireDateTime)}},!1);(function(){var a;e.addEventListener?q(e,"DOMContentLoaded",function k(){e.removeEventListener("DOMContentLoaded",k,!1);c()}):e.attachEvent&&(e.attachEvent("onreadystatechange",function k(){"complete"===e.readyState&&(e.detachEvent("onreadystatechange",k),c())}),e.documentElement.doScroll&&d===d.top&&function p(){if(!f.hasLoaded){try{e.documentElement.doScroll("left")}catch(v){setTimeout(p,0);return}c()}}());/WebKit/.test(navigator.userAgent)&&(a=setInterval(function(){if(f.hasLoaded|| +/loaded|complete/.test(e.readyState))clearInterval(a),c()},10));q(d,"load",c,!1)})();return new ud(Qa,"js-2.17.3",f,a,b)}var $d=function(a,b){for(var c=-1,e=null==a?0:a.length;++c<e&&!1!==b(a[c],c,a););return a},ae=function(a){return function(b,c,e){var d=-1,f=Object(b);e=e(b);for(var h=e.length;h--;){var g=e[a?h:++d];if(!1===c(f[g],g,f))break}return b}}(),Wa="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self? +self:{},Kc="object"==D(Wa)&&Wa&&Wa.Object===Object&&Wa,be="object"==("undefined"===typeof self?"undefined":D(self))&&self&&self.Object===Object&&self,L=Kc||be||Function("return this")(),Y=L.Symbol,Lc=Object.prototype,ce=Lc.hasOwnProperty,de=Lc.toString,ia=Y?Y.toStringTag:void 0,ee=Object.prototype.toString,Mc=Y?Y.toStringTag:void 0,W=function(a){if(null==a)a=void 0===a?"[object Undefined]":"[object Null]";else if(Mc&&Mc in Object(a)){var b=ce.call(a,ia),c=a[ia];try{a[ia]=void 0;var e=!0}catch(f){}var d= +de.call(a);e&&(b?a[ia]=c:delete a[ia]);a=d}else a=ee.call(a);return a},Q=function(a){return null!=a&&"object"==D(a)},Nc=function(a){return Q(a)&&"[object Arguments]"==W(a)},Oc=Object.prototype,fe=Oc.hasOwnProperty,ge=Oc.propertyIsEnumerable,Pc=Nc(function(){return arguments}())?Nc:function(a){return Q(a)&&fe.call(a,"callee")&&!ge.call(a,"callee")},u=Array.isArray,he=function(){return!1},Ja=ra(function(a,b){var c=(b=b&&!b.nodeType&&b)&&a&&!a.nodeType&&a;b=c&&c.exports===b?L.Buffer:void 0;a.exports= +(b?b.isBuffer:void 0)||he}),ie=/^(?:0|[1-9]\d*)$/,Xa=function(a,b){var c=D(a);b=null==b?9007199254740991:b;return!!b&&("number"==c||"symbol"!=c&&ie.test(a))&&-1<a&&0==a%1&&a<b},Ya=function(a){return"number"==typeof a&&-1<a&&0==a%1&&9007199254740991>=a},n={};n["[object Float32Array]"]=n["[object Float64Array]"]=n["[object Int8Array]"]=n["[object Int16Array]"]=n["[object Int32Array]"]=n["[object Uint8Array]"]=n["[object Uint8ClampedArray]"]=n["[object Uint16Array]"]=n["[object Uint32Array]"]=!0;n["[object Arguments]"]= +n["[object Array]"]=n["[object ArrayBuffer]"]=n["[object Boolean]"]=n["[object DataView]"]=n["[object Date]"]=n["[object Error]"]=n["[object Function]"]=n["[object Map]"]=n["[object Number]"]=n["[object Object]"]=n["[object RegExp]"]=n["[object Set]"]=n["[object String]"]=n["[object WeakMap]"]=!1;var je=function(a){return Q(a)&&Ya(a.length)&&!!n[W(a)]},ke=function(a){return function(b){return a(b)}},Qc=ra(function(a,b){var c=b&&!b.nodeType&&b;c=(b=c&&a&&!a.nodeType&&a)&&b.exports===c&&Kc.process; +a:{try{var e=b&&b.require&&b.require("util").types;if(e){var d=e;break a}d=c&&c.binding&&c.binding("util");break a}catch(f){}d=void 0}a.exports=d}),Rc=Qc&&Qc.isTypedArray,hc=Rc?ke(Rc):je,le=Object.prototype.hasOwnProperty,me=Object.prototype,Sc=function(a,b){return function(c){return a(b(c))}},ne=Sc(Object.keys,Object),oe=Object.prototype.hasOwnProperty,I=function(a){var b=D(a);return null!=a&&("object"==b||"function"==b)},Tc=function(a){if(!I(a))return!1;a=W(a);return"[object Function]"==a||"[object GeneratorFunction]"== +a||"[object AsyncFunction]"==a||"[object Proxy]"==a},Da=function(a){return null!=a&&Ya(a.length)&&!Tc(a)},La=function(a){if(Da(a)){var b=u(a),c=!b&&Pc(a),e=!b&&!c&&Ja(a),d=!b&&!c&&!e&&hc(a);if(b=b||c||e||d){c=a.length;for(var f=String,h=-1,g=Array(c);++h<c;)g[h]=f(h);c=g}else c=[];f=c.length;for(var k in a)!le.call(a,k)||b&&("length"==k||e&&("offset"==k||"parent"==k)||d&&("buffer"==k||"byteLength"==k||"byteOffset"==k)||Xa(k,f))||c.push(k);a=c}else if(k=a&&a.constructor,a===("function"==typeof k&& +k.prototype||me)){k=[];for(e in Object(a))oe.call(a,e)&&"constructor"!=e&&k.push(e);a=k}else a=ne(a);return a},Uc=function(a,b){return a&&ae(a,b,La)},Ea=function(a,b){return function(c,e){if(null==c)return c;if(!Da(c))return a(c,e);for(var d=c.length,f=b?d:-1,h=Object(c);(b?f--:++f<d)&&!1!==e(h[f],f,h););return c}}(Uc),Vc=function(a){return a},O=function(a,b){return(u(a)?$d:Ea)(a,"function"==typeof b?b:Vc)},Wc=function(a,b){for(var c=-1,e=null==a?0:a.length,d=0,f=[];++c<e;){var h=a[c];b(h,c,a)&&(f[d++]= +h)}return f},pe=function(a,b){var c=[];Ea(a,function(a,d,f){b(a,d,f)&&c.push(a)});return c},Za=function(a,b){return a===b||a!==a&&b!==b},ja=function(a,b){for(var c=a.length;c--;)if(Za(a[c][0],b))return c;return-1},qe=Array.prototype.splice;sa.prototype.clear=function(){this.__data__=[];this.size=0};sa.prototype["delete"]=function(a){var b=this.__data__;a=ja(b,a);if(0>a)return!1;a==b.length-1?b.pop():qe.call(b,a,1);--this.size;return!0};sa.prototype.get=function(a){var b=this.__data__;a=ja(b,a);return 0> +a?void 0:b[a][1]};sa.prototype.has=function(a){return-1<ja(this.__data__,a)};sa.prototype.set=function(a,b){var c=this.__data__,e=ja(c,a);0>e?(++this.size,c.push([a,b])):c[e][1]=b;return this};var lb=sa,$a=L["__core-js_shared__"],Xc=function(){var a=/[^.]+$/.exec($a&&$a.keys&&$a.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}(),re=Function.prototype.toString,ka=function(a){if(null!=a){try{return re.call(a)}catch(b){}return a+""}return""},se=/^\[object .+?Constructor\]$/,te=RegExp("^"+Function.prototype.toString.call(Object.prototype.hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, +"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),la=function(a,b){a=null==a?void 0:a[b];return(!I(a)||Xc&&Xc in a?0:(Tc(a)?te:se).test(ka(a)))?a:void 0},ma=la(L,"Map"),na=la(Object,"create"),ue=Object.prototype.hasOwnProperty,ve=Object.prototype.hasOwnProperty;ba.prototype.clear=function(){this.__data__=na?na(null):{};this.size=0};ba.prototype["delete"]=function(a){a=this.has(a)&&delete this.__data__[a];this.size-=a?1:0;return a};ba.prototype.get=function(a){var b= +this.__data__;return na?(a=b[a],"__lodash_hash_undefined__"===a?void 0:a):ue.call(b,a)?b[a]:void 0};ba.prototype.has=function(a){var b=this.__data__;return na?void 0!==b[a]:ve.call(b,a)};ba.prototype.set=function(a,b){var c=this.__data__;this.size+=this.has(a)?0:1;c[a]=na&&void 0===b?"__lodash_hash_undefined__":b;return this};var oa=function(a,b){a=a.__data__;var c=D(b);return("string"==c||"number"==c||"symbol"==c||"boolean"==c?"__proto__"!==b:null===b)?a["string"==typeof b?"string":"hash"]:a.map}; +ta.prototype.clear=function(){this.size=0;this.__data__={hash:new ba,map:new (ma||lb),string:new ba}};ta.prototype["delete"]=function(a){a=oa(this,a)["delete"](a);this.size-=a?1:0;return a};ta.prototype.get=function(a){return oa(this,a).get(a)};ta.prototype.has=function(a){return oa(this,a).has(a)};ta.prototype.set=function(a,b){var c=oa(this,a),e=c.size;c.set(a,b);this.size+=c.size==e?0:1;return this};var va=ta;ua.prototype.clear=function(){this.__data__=new lb;this.size=0};ua.prototype["delete"]= +function(a){var b=this.__data__;a=b["delete"](a);this.size=b.size;return a};ua.prototype.get=function(a){return this.__data__.get(a)};ua.prototype.has=function(a){return this.__data__.has(a)};ua.prototype.set=function(a,b){var c=this.__data__;if(c instanceof lb){var e=c.__data__;if(!ma||199>e.length)return e.push([a,b]),this.size=++c.size,this;c=this.__data__=new va(e)}c.set(a,b);this.size=c.size;return this};var Ka=ua;Ha.prototype.add=Ha.prototype.push=function(a){this.__data__.set(a,"__lodash_hash_undefined__"); +return this};Ha.prototype.has=function(a){return this.__data__.has(a)};var we=function(a,b){for(var c=-1,e=null==a?0:a.length;++c<e;)if(b(a[c],c,a))return!0;return!1},ic=function(a,b,c,e,d,f){var h=c&1,g=a.length,k=b.length;if(g!=k&&!(h&&k>g))return!1;k=f.get(a);var p=f.get(b);if(k&&p)return k==b&&p==a;k=-1;p=!0;var n=c&2?new Ha:void 0;f.set(a,b);for(f.set(b,a);++k<g;){var q=a[k],m=b[k];if(e)var r=h?e(m,q,k,b,a,f):e(q,m,k,a,b,f);if(void 0!==r){if(r)continue;p=!1;break}if(n){if(!we(b,function(a,b){if(!n.has(b)&& +(q===a||d(q,a,c,e,f)))return n.push(b)})){p=!1;break}}else if(q!==m&&!d(q,m,c,e,f)){p=!1;break}}f["delete"](a);f["delete"](b);return p},Yc=L.Uint8Array,xe=function(a){var b=-1,c=Array(a.size);a.forEach(function(a,d){c[++b]=[d,a]});return c},ye=function(a){var b=-1,c=Array(a.size);a.forEach(function(a){c[++b]=a});return c},Zc=Y?Y.prototype:void 0,ab=Zc?Zc.valueOf:void 0,od=function(a,b,c,e,d,f,h){switch(c){case "[object DataView]":if(a.byteLength!=b.byteLength||a.byteOffset!=b.byteOffset)break;a=a.buffer; +b=b.buffer;case "[object ArrayBuffer]":if(a.byteLength!=b.byteLength||!f(new Yc(a),new Yc(b)))break;return!0;case "[object Boolean]":case "[object Date]":case "[object Number]":return Za(+a,+b);case "[object Error]":return a.name==b.name&&a.message==b.message;case "[object RegExp]":case "[object String]":return a==b+"";case "[object Map]":var g=xe;case "[object Set]":g||(g=ye);if(a.size!=b.size&&!(e&1))break;if(c=h.get(a))return c==b;e|=2;h.set(a,b);b=ic(g(a),g(b),e,d,f,h);h["delete"](a);return b; +case "[object Symbol]":if(ab)return ab.call(a)==ab.call(b)}return!1},kc=function(a,b,c){b=b(a);if(!u(a)){a=c(a);c=-1;for(var e=a.length,d=b.length;++c<e;)b[d+c]=a[c]}return b},ze=function(){return[]},Ae=Object.prototype.propertyIsEnumerable,$c=Object.getOwnPropertySymbols,lc=$c?function(a){if(null==a)return[];a=Object(a);return Wc($c(a),function(b){return Ae.call(a,b)})}:ze,pd=Object.prototype.hasOwnProperty,bb=la(L,"DataView"),cb=la(L,"Promise"),db=la(L,"Set"),eb=la(L,"WeakMap"),Be=ka(bb),Ce=ka(ma), +De=ka(cb),Ee=ka(db),Fe=ka(eb),pa=W;if(bb&&"[object DataView]"!=pa(new bb(new ArrayBuffer(1)))||ma&&"[object Map]"!=pa(new ma)||cb&&"[object Promise]"!=pa(cb.resolve())||db&&"[object Set]"!=pa(new db)||eb&&"[object WeakMap]"!=pa(new eb))pa=function(a){var b=W(a);if(a=(a="[object Object]"==b?a.constructor:void 0)?ka(a):"")switch(a){case Be:return"[object DataView]";case Ce:return"[object Map]";case De:return"[object Promise]";case Ee:return"[object Set]";case Fe:return"[object WeakMap]"}return b};var gc= +pa,jc=Object.prototype.hasOwnProperty,rb=Ia,Ge=function(a,b,c,e){var d=c.length,f=d,h=!e;if(null==a)return!f;for(a=Object(a);d--;){var g=c[d];if(h&&g[2]?g[1]!==a[g[0]]:!(g[0]in a))return!1}for(;++d<f;){g=c[d];var k=g[0],p=a[k],n=g[1];if(h&&g[2]){if(void 0===p&&!(k in a))return!1}else{g=new Ka;if(e)var q=e(p,n,k,a,b,g);if(void 0===q?!rb(n,p,3,e,g):!q)return!1}}return!0},He=function(a){for(var b=La(a),c=b.length;c--;){var e=b[c],d=a[e];b[c]=[e,d,d===d&&!I(d)]}return b},ad=function(a,b){return function(c){return null== +c?!1:c[a]===b&&(void 0!==b||a in Object(c))}},Ie=function(a){var b=He(a);return 1==b.length&&b[0][2]?ad(b[0][0],b[0][1]):function(c){return c===a||Ge(c,a,b)}},Ma=function(a){return"symbol"==D(a)||Q(a)&&"[object Symbol]"==W(a)},Je=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ke=/^\w*$/,fb=function(a,b){if(u(a))return!1;var c=D(a);return"number"==c||"symbol"==c||"boolean"==c||null==a||Ma(a)?!0:Ke.test(a)||!Je.test(a)||null!=b&&a in Object(b)};Fb.Cache=va;var Le=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, +Me=/\\(\\)?/g,Ne=function(a){a=Fb(a,function(a){500===b.size&&b.clear();return a});var b=a.cache;return a}(function(a){var b=[];46===a.charCodeAt(0)&&b.push("");a.replace(Le,function(a,e,d,f){b.push(d?f.replace(Me,"$1"):e||a)});return b}),nc=function(a,b){for(var c=-1,e=null==a?0:a.length,d=Array(e);++c<e;)d[c]=b(a[c],c,a);return d},qd=1/0,bd=Y?Y.prototype:void 0,oc=bd?bd.toString:void 0,cd=function(a,b){return u(a)?a:fb(a,b)?[a]:Ne(null==a?"":mc(a))},Oe=1/0,gb=function(a){if("string"==typeof a|| +Ma(a))return a;var b=a+"";return"0"==b&&1/a==-Oe?"-0":b},dd=function(a,b){b=cd(b,a);for(var c=0,e=b.length;null!=a&&c<e;)a=a[gb(b[c++])];return c&&c==e?a:void 0},F=function(a,b,c){a=null==a?void 0:dd(a,b);return void 0===a?c:a},Pe=function(a,b){return null!=a&&b in Object(a)},sb=function(a,b,c){b=cd(b,a);for(var e=-1,d=b.length,f=!1;++e<d;){var h=gb(b[e]);if(!(f=null!=a&&c(a,h)))break;a=a[h]}if(f||++e!=d)return f;d=null==a?0:a.length;return!!d&&Ya(d)&&Xa(h,d)&&(u(a)||Pc(a))},Qe=function(a,b){return fb(a)&& +b===b&&!I(b)?ad(gb(a),b):function(c){var e=F(c,a);return void 0===e&&e===b?null!=c&&sb(c,a,Pe):rb(b,e,3)}},Re=function(a){return function(b){return null==b?void 0:b[a]}},Se=function(a){return function(b){return dd(b,a)}},Fa=function(a){return"function"==typeof a?a:null==a?Vc:"object"==D(a)?u(a)?Qe(a[0],a[1]):Ie(a):fb(a)?Re(gb(a)):Se(a)},rd=function(a,b){return(u(a)?Wc:pe)(a,Fa(b))},qc=function(a){return"string"==typeof a||!u(a)&&Q(a)&&"[object String]"==W(a)},Te=function(a,b){var c=-1,e=Da(a)?Array(a.length): +[];Ea(a,function(a,f,h){e[++c]=b(a,f,h)});return e},ca=function(a,b){return(u(a)?nc:Te)(a,Fa(b))},Z=window,wa=document,xa=window.localStorage,wc=window.sessionStorage,ed=0/0,Ue=/^\s+|\s+$/g,Ve=/^[-+]0x[0-9a-f]+$/i,We=/^0b[01]+$/i,Xe=/^0o[0-7]+$/i,Ye=parseInt,Ze=function(a){if("number"==typeof a)return a;if(Ma(a))return ed;I(a)&&(a="function"==typeof a.valueOf?a.valueOf():a,a=I(a)?a+"":a);if("string"!=typeof a)return 0===a?a:+a;a=a.replace(Ue,"");var b=We.test(a);return b||Xe.test(a)?Ye(a.slice(2), +b?2:8):Ve.test(a)?ed:+a},fd=1/0,ec=function(a){a?(a=Ze(a),a=a===fd||a===-fd?1.7976931348623157E308*(0>a?-1:1):a===a?a:0):a=0===a?a:0;var b=a%1;return a===a?b?a-b:a:0},Zd=ra(function(a,b){(function(a){var c=function(){var a=function(a){a=-a.getTimezoneOffset();return null!==a?a:0},b=function(a,b,c){var d=new Date;void 0!==a&&d.setFullYear(a);d.setMonth(b);d.setDate(c);return d};return{determine:function(){var d=a(b(void 0,0,2)),e=a(b(void 0,5,2)),f=d-e;return new c.TimeZone(c.olson.timezones[0>f?d+ ",1":0<f?e+",1,s":d+",0"])},date_is_dst:function(c){var d=7<c.getMonth(),e=d?a(b(c.getFullYear(),5,2)):a(b(c.getFullYear(),0,2));c=a(c);c=e-c;return 0>e||d?0!==c:0>c},dst_start_for:function(a){var b=new Date(2010,6,15,1,0,0,0);return{"America/Denver":new Date(2011,2,13,3,0,0,0),"America/Mazatlan":new Date(2011,3,3,3,0,0,0),"America/Chicago":new Date(2011,2,13,3,0,0,0),"America/Mexico_City":new Date(2011,3,3,3,0,0,0),"America/Asuncion":new Date(2012,9,7,3,0,0,0),"America/Santiago":new Date(2012,9, 3,3,0,0,0),"America/Campo_Grande":new Date(2012,9,21,5,0,0,0),"America/Montevideo":new Date(2011,9,2,3,0,0,0),"America/Sao_Paulo":new Date(2011,9,16,5,0,0,0),"America/Los_Angeles":new Date(2011,2,13,8,0,0,0),"America/Santa_Isabel":new Date(2011,3,5,8,0,0,0),"America/Havana":new Date(2012,2,10,2,0,0,0),"America/New_York":new Date(2012,2,10,7,0,0,0),"Europe/Helsinki":new Date(2013,2,31,5,0,0,0),"Pacific/Auckland":new Date(2011,8,26,7,0,0,0),"America/Halifax":new Date(2011,2,13,6,0,0,0),"America/Goose_Bay":new Date(2011, 2,13,2,1,0,0),"America/Miquelon":new Date(2011,2,13,5,0,0,0),"America/Godthab":new Date(2011,2,27,1,0,0,0),"Europe/Moscow":b,"Asia/Amman":new Date(2013,2,29,1,0,0,0),"Asia/Beirut":new Date(2013,2,31,2,0,0,0),"Asia/Damascus":new Date(2013,3,6,2,0,0,0),"Asia/Jerusalem":new Date(2013,2,29,5,0,0,0),"Asia/Yekaterinburg":b,"Asia/Omsk":b,"Asia/Krasnoyarsk":b,"Asia/Irkutsk":b,"Asia/Yakutsk":b,"Asia/Vladivostok":b,"Asia/Baku":new Date(2013,2,31,4,0,0),"Asia/Yerevan":new Date(2013,2,31,3,0,0),"Asia/Kamchatka":b, @@ -147,16 +147,16 @@ b?2:8):Re.test(a)?cd:+a},dd=1/0,fc=function(a){a?(a=Ve(a),a=a===dd||a===-dd?1.79 typeof b[d]&&a();return{name:function(){return d}}};c.olson={};c.olson.timezones={"-720,0":"Pacific/Majuro","-660,0":"Pacific/Pago_Pago","-600,1":"America/Adak","-600,0":"Pacific/Honolulu","-570,0":"Pacific/Marquesas","-540,0":"Pacific/Gambier","-540,1":"America/Anchorage","-480,1":"America/Los_Angeles","-480,0":"Pacific/Pitcairn","-420,0":"America/Phoenix","-420,1":"America/Denver","-360,0":"America/Guatemala","-360,1":"America/Chicago","-360,1,s":"Pacific/Easter","-300,0":"America/Bogota","-300,1":"America/New_York", "-270,0":"America/Caracas","-240,1":"America/Halifax","-240,0":"America/Santo_Domingo","-240,1,s":"America/Santiago","-210,1":"America/St_Johns","-180,1":"America/Godthab","-180,0":"America/Argentina/Buenos_Aires","-180,1,s":"America/Montevideo","-120,0":"America/Noronha","-120,1":"America/Noronha","-60,1":"Atlantic/Azores","-60,0":"Atlantic/Cape_Verde","0,0":"UTC","0,1":"Europe/London","60,1":"Europe/Berlin","60,0":"Africa/Lagos","60,1,s":"Africa/Windhoek","120,1":"Asia/Beirut","120,0":"Africa/Johannesburg", "180,0":"Asia/Baghdad","180,1":"Europe/Moscow","210,1":"Asia/Tehran","240,0":"Asia/Dubai","240,1":"Asia/Baku","270,0":"Asia/Kabul","300,1":"Asia/Yekaterinburg","300,0":"Asia/Karachi","330,0":"Asia/Kolkata","345,0":"Asia/Kathmandu","360,0":"Asia/Dhaka","360,1":"Asia/Omsk","390,0":"Asia/Rangoon","420,1":"Asia/Krasnoyarsk","420,0":"Asia/Jakarta","480,0":"Asia/Shanghai","480,1":"Asia/Irkutsk","525,0":"Australia/Eucla","525,1,s":"Australia/Eucla","540,1":"Asia/Yakutsk","540,0":"Asia/Tokyo","570,0":"Australia/Darwin", -"570,1,s":"Australia/Adelaide","600,0":"Australia/Brisbane","600,1":"Asia/Vladivostok","600,1,s":"Australia/Sydney","630,1,s":"Australia/Lord_Howe","660,1":"Asia/Kamchatka","660,0":"Pacific/Noumea","690,0":"Pacific/Norfolk","720,1,s":"Pacific/Auckland","720,0":"Pacific/Tarawa","765,1,s":"Pacific/Chatham","780,0":"Pacific/Tongatapu","780,1,s":"Pacific/Apia","840,0":"Pacific/Kiritimati"};b.jstz=c})()}),ya=window,R=navigator,nb=screen,Ma=document,cb=qa(function(a){(function(){var b={rotl:function(a, +"570,1,s":"Australia/Adelaide","600,0":"Australia/Brisbane","600,1":"Asia/Vladivostok","600,1,s":"Australia/Sydney","630,1,s":"Australia/Lord_Howe","660,1":"Asia/Kamchatka","660,0":"Pacific/Noumea","690,0":"Pacific/Norfolk","720,1,s":"Pacific/Auckland","720,0":"Pacific/Tarawa","765,1,s":"Pacific/Chatham","780,0":"Pacific/Tongatapu","780,1,s":"Pacific/Apia","840,0":"Pacific/Kiritimati"};b.jstz=c})()}),ya=window,R=navigator,qb=screen,pb=document,hb=ra(function(a){(function(){var b={rotl:function(a, b){return a<<b|a>>>32-b},rotr:function(a,b){return a<<32-b|a>>>b},endian:function(a){if(a.constructor==Number)return b.rotl(a,8)&16711935|b.rotl(a,24)&4278255360;for(var c=0;c<a.length;c++)a[c]=b.endian(a[c]);return a},randomBytes:function(a){for(var b=[];0<a;a--)b.push(Math.floor(256*Math.random()));return b},bytesToWords:function(a){for(var b=[],c=0,f=0;c<a.length;c++,f+=8)b[f>>>5]|=a[c]<<24-f%32;return b},wordsToBytes:function(a){for(var b=[],c=0;c<32*a.length;c+=8)b.push(a[c>>>5]>>>24-c%32&255); return b},bytesToHex:function(a){for(var b=[],c=0;c<a.length;c++)b.push((a[c]>>>4).toString(16)),b.push((a[c]&15).toString(16));return b.join("")},hexToBytes:function(a){for(var b=[],c=0;c<a.length;c+=2)b.push(parseInt(a.substr(c,2),16));return b},bytesToBase64:function(a){for(var b=[],c=0;c<a.length;c+=3)for(var f=a[c]<<16|a[c+1]<<8|a[c+2],h=0;4>h;h++)8*c+6*h<=8*a.length?b.push("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>>6*(3-h)&63)):b.push("=");return b.join("")}, -base64ToBytes:function(a){a=a.replace(/[^A-Z0-9+\/]/ig,"");for(var b=[],c=0,f=0;c<a.length;f=++c%4)0!=f&&b.push(("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c-1))&Math.pow(2,-2*f+8)-1)<<2*f|"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c))>>>6-2*f);return b}};a.exports=b})()}),db={utf8:{stringToBytes:function(a){return db.bin.stringToBytes(unescape(encodeURIComponent(a)))},bytesToString:function(a){return decodeURIComponent(escape(db.bin.bytesToString(a)))}}, -bin:{stringToBytes:function(a){for(var b=[],c=0;c<a.length;c++)b.push(a.charCodeAt(c)&255);return b},bytesToString:function(a){for(var b=[],c=0;c<a.length;c++)b.push(String.fromCharCode(a[c]));return b.join("")}}},ed=db,Ud=qa(function(a){(function(){var b=ed.utf8,c=ed.bin,e=function(a){a.constructor==String&&(a=b.stringToBytes(a));var c=cb.bytesToWords(a),d=8*a.length;a=[];var e=1732584193,f=-271733879,m=-1732584194,q=271733878,n=-1009589776;c[d>>5]|=128<<24-d%32;c[(d+64>>>9<<4)+15]=d;for(d=0;d<c.length;d+= -16){for(var r=e,t=f,v=m,E=q,F=n,y=0;80>y;y++){if(16>y)a[y]=c[d+y];else{var A=a[y-3]^a[y-8]^a[y-14]^a[y-16];a[y]=A<<1|A>>>31}A=(e<<5|e>>>27)+n+(a[y]>>>0)+(20>y?(f&m|~f&q)+1518500249:40>y?(f^m^q)+1859775393:60>y?(f&m|f&q|m&q)-1894007588:(f^m^q)-899497514);n=q;q=m;m=f<<30|f>>>2;f=e;e=A}e+=r;f+=t;m+=v;q+=E;n+=F}return[e,f,m,q,n]},d=function(a,b){a=cb.wordsToBytes(e(a));return b&&b.asBytes?a:b&&b.asString?c.bytesToString(a):cb.bytesToHex(a)};d._blocksize=16;d._digestsize=20;a.exports=d})()}),We=Math.max, -zd=function(a){return function(b,c,e){var d=Object(b);if(!Ca(b)){var f=Ea(c);b=Ka(b);c=function(a){return f(d[a],a,d)}}c=a(b,c,e);return-1<c?d[f?b[c]:c]:void 0}}(function(a,b,c){var e=null==a?0:a.length;if(!e)return-1;c=null==c?0:fc(c);0>c&&(c=We(e+c,0));a:{b=Ea(b);e=a.length;for(c+=-1;++c<e;)if(b(a[c],c,a)){a=c;break a}a=-1}return a}),Bd=window,fd=function(){try{var a=ma(Object,"defineProperty");a({},"",{});return a}catch(b){}}(),Cd=function(a,b){var c={};b=Ea(b);Sc(a,function(a,d,f){a=b(a,d,f); -"__proto__"==d&&fd?fd(c,d,{configurable:!0,enumerable:!0,value:a,writable:!0}):c[d]=a});return c},Ed=function(a){return function(){try{return a.apply(this,arguments)}catch(b){}}},gd=qa(function(a){var b="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(b){var c=new Uint8Array(16);a.exports=function(){b(c);return c}}else{var e=Array(16); -a.exports=function(){for(var a=0,b;16>a;a++)0===(a&3)&&(b=4294967296*Math.random()),e[a]=b>>>((a&3)<<3)&255;return e}}}),r=[],Bb=0;for(;256>Bb;++Bb)r[Bb]=(Bb+256).toString(16).substr(1);var hd=function(a,b){b=b||0;return[r[a[b++]],r[a[b++]],r[a[b++]],r[a[b++]],"-",r[a[b++]],r[a[b++]],"-",r[a[b++]],r[a[b++]],"-",r[a[b++]],r[a[b++]],"-",r[a[b++]],r[a[b++]],r[a[b++]],r[a[b++]],r[a[b++]],r[a[b++]]].join("")},id,eb,fb=0,Cb=0,V=function(a,b,c){c=b&&c||0;"string"==typeof a&&(b="binary"===a?Array(16):null, -a=null);a=a||{};a=a.random||(a.rng||gd)();a[6]=a[6]&15|64;a[8]=a[8]&63|128;if(b)for(var e=0;16>e;++e)b[c+e]=a[e];return b||hd(a)},gb=V;gb.v1=function(a,b,c){c=b&&c||0;var e=b||[];a=a||{};var d=a.node||id,f=void 0!==a.clockseq?a.clockseq:eb;if(null==d||null==f){var h=gd();null==d&&(d=id=[h[0]|1,h[1],h[2],h[3],h[4],h[5]]);null==f&&(f=eb=(h[6]<<8|h[7])&16383)}h=void 0!==a.msecs?a.msecs:(new Date).getTime();var g=void 0!==a.nsecs?a.nsecs:Cb+1,k=h-fb+(g-Cb)/1E4;0>k&&void 0===a.clockseq&&(f=f+1&16383); -(0>k||h>fb)&&void 0===a.nsecs&&(g=0);if(1E4<=g)throw Error("uuid.v1(): Can't create more than 10M uuids/sec");fb=h;Cb=g;eb=f;h+=122192928E5;a=(1E4*(h&268435455)+g)%4294967296;e[c++]=a>>>24&255;e[c++]=a>>>16&255;e[c++]=a>>>8&255;e[c++]=a&255;a=h/4294967296*1E4&268435455;e[c++]=a>>>8&255;e[c++]=a&255;e[c++]=a>>>24&15|16;e[c++]=a>>>16&255;e[c++]=f>>>8|128;e[c++]=f&255;for(f=0;6>f;++f)e[c+f]=d[f];return b?b:hd(e)};gb.v4=V;var Sd=gb,Xe=Object.prototype.hasOwnProperty,qb=function(a,b){return null!=a&&Xe.call(a, -b)},Ye=function(a,b){for(var c=-1,e=null==a?0:a.length;++c<e;)if(!b(a[c],c,a))return!1;return!0},Ze=function(a,b){var c=!0;Ua(a,function(a,d,f){return c=!!b(a,d,f)});return c},rb=function(a,b,c){var e=F(a)?Ye:Ze,d;if(d=c)if(d=b,N(c)){var f=H(d);d=("number"==f?Ca(c)&&Ta(d,c.length):"string"==f&&d in c)?zb(c[d],a):!1}else d=!1;d&&(b=void 0);return e(a,Ea(b))},Gc=function(a){for(var b=-1,c=null==a?0:a.length,e=0,d=[];++b<c;){var f=a[b];f&&(d[e++]=f)}return d},Md=Qc(Object.getPrototypeOf,Object),Ac=Function.prototype.toString, -Nd=Object.prototype.hasOwnProperty,Od=Ac.call(Object),aa=window;if(aa.GlobalSnowplowNamespace&&0<aa.GlobalSnowplowNamespace.length){var jd=aa.GlobalSnowplowNamespace.shift();var kd=aa[jd];kd.q=new Hc(kd.q,jd)}else aa._snaq=aa._snaq||[],aa._snaq=new Hc(aa._snaq,"_snaq")})() +base64ToBytes:function(a){a=a.replace(/[^A-Z0-9+\/]/ig,"");for(var b=[],c=0,f=0;c<a.length;f=++c%4)0!=f&&b.push(("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c-1))&Math.pow(2,-2*f+8)-1)<<2*f|"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(a.charAt(c))>>>6-2*f);return b}};a.exports=b})()}),Bb={utf8:{stringToBytes:function(a){return Bb.bin.stringToBytes(unescape(encodeURIComponent(a)))},bytesToString:function(a){return decodeURIComponent(escape(Bb.bin.bytesToString(a)))}}, +bin:{stringToBytes:function(a){for(var b=[],c=0;c<a.length;c++)b.push(a.charCodeAt(c)&255);return b},bytesToString:function(a){for(var b=[],c=0;c<a.length;c++)b.push(String.fromCharCode(a[c]));return b.join("")}}},gd=Bb,Yd=ra(function(a){(function(){var b=gd.utf8,c=gd.bin,e=function(a){a.constructor==String&&(a=b.stringToBytes(a));var c=hb.bytesToWords(a),d=8*a.length;a=[];var e=1732584193,f=-271733879,n=-1732584194,q=271733878,m=-1009589776;c[d>>5]|=128<<24-d%32;c[(d+64>>>9<<4)+15]=d;for(d=0;d<c.length;d+= +16){for(var r=e,u=f,C=n,B=q,D=m,w=0;80>w;w++){if(16>w)a[w]=c[d+w];else{var y=a[w-3]^a[w-8]^a[w-14]^a[w-16];a[w]=y<<1|y>>>31}y=(e<<5|e>>>27)+m+(a[w]>>>0)+(20>w?(f&n|~f&q)+1518500249:40>w?(f^n^q)+1859775393:60>w?(f&n|f&q|n&q)-1894007588:(f^n^q)-899497514);m=q;q=n;n=f<<30|f>>>2;f=e;e=y}e+=r;f+=u;n+=C;q+=B;m+=D}return[e,f,n,q,m]},d=function(a,b){a=hb.wordsToBytes(e(a));return b&&b.asBytes?a:b&&b.asString?c.bytesToString(a):hb.bytesToHex(a)};d._blocksize=16;d._digestsize=20;a.exports=d})()}),$e=Math.max, +Bd=function(a){return function(b,c,e){var d=Object(b);if(!Da(b)){var f=Fa(c);b=La(b);c=function(a){return f(d[a],a,d)}}c=a(b,c,e);return-1<c?d[f?b[c]:c]:void 0}}(function(a,b,c){var e=null==a?0:a.length;if(!e)return-1;c=null==c?0:ec(c);0>c&&(c=$e(e+c,0));a:{b=Fa(b);e=a.length;for(c+=-1;++c<e;)if(b(a[c],c,a)){a=c;break a}a=-1}return a}),Dd=window,hd=function(){try{var a=la(Object,"defineProperty");a({},"",{});return a}catch(b){}}(),Fd=function(a,b){var c={};b=Fa(b);Uc(a,function(a,d,f){a=b(a,d,f); +"__proto__"==d&&hd?hd(c,d,{configurable:!0,enumerable:!0,value:a,writable:!0}):c[d]=a});return c},Hd=function(a){return function(){try{return a.apply(this,arguments)}catch(b){}}},id=ra(function(a){var b="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(b){var c=new Uint8Array(16);a.exports=function(){b(c);return c}}else{var e=Array(16); +a.exports=function(){for(var a=0,b;16>a;a++)0===(a&3)&&(b=4294967296*Math.random()),e[a]=b>>>((a&3)<<3)&255;return e}}}),B=[],Ga=0;for(;256>Ga;++Ga)B[Ga]=(Ga+256).toString(16).substr(1);var jd=function(a,b){b=b||0;return[B[a[b++]],B[a[b++]],B[a[b++]],B[a[b++]],"-",B[a[b++]],B[a[b++]],"-",B[a[b++]],B[a[b++]],"-",B[a[b++]],B[a[b++]],"-",B[a[b++]],B[a[b++]],B[a[b++]],B[a[b++]],B[a[b++]],B[a[b++]]].join("")},kd,Cb,ib=0,Db=0,P=function(a,b,c){c=b&&c||0;"string"==typeof a&&(b="binary"===a?Array(16):null, +a=null);a=a||{};a=a.random||(a.rng||id)();a[6]=a[6]&15|64;a[8]=a[8]&63|128;if(b)for(var e=0;16>e;++e)b[c+e]=a[e];return b||jd(a)},Eb=P;Eb.v1=function(a,b,c){c=b&&c||0;var e=b||[];a=a||{};var d=a.node||kd,f=void 0!==a.clockseq?a.clockseq:Cb;if(null==d||null==f){var h=id();null==d&&(d=kd=[h[0]|1,h[1],h[2],h[3],h[4],h[5]]);null==f&&(f=Cb=(h[6]<<8|h[7])&16383)}h=void 0!==a.msecs?a.msecs:(new Date).getTime();var g=void 0!==a.nsecs?a.nsecs:Db+1,k=h-ib+(g-Db)/1E4;0>k&&void 0===a.clockseq&&(f=f+1&16383); +(0>k||h>ib)&&void 0===a.nsecs&&(g=0);if(1E4<=g)throw Error("uuid.v1(): Can't create more than 10M uuids/sec");ib=h;Db=g;Cb=f;h+=122192928E5;a=(1E4*(h&268435455)+g)%4294967296;e[c++]=a>>>24&255;e[c++]=a>>>16&255;e[c++]=a>>>8&255;e[c++]=a&255;a=h/4294967296*1E4&268435455;e[c++]=a>>>8&255;e[c++]=a&255;e[c++]=a>>>24&15|16;e[c++]=a>>>16&255;e[c++]=f>>>8|128;e[c++]=f&255;for(f=0;6>f;++f)e[c+f]=d[f];return b?b:jd(e)};Eb.v4=P;var Vd=Eb,af=Object.prototype.hasOwnProperty,Kb=function(a,b){return null!=a&&af.call(a, +b)},bf=function(a,b){for(var c=-1,e=null==a?0:a.length;++c<e;)if(!b(a[c],c,a))return!1;return!0},cf=function(a,b){var c=!0;Ea(a,function(a,d,f){return c=!!b(a,d,f)});return c},Lb=function(a,b,c){var e=u(a)?bf:cf,d;if(d=c)if(d=b,I(c)){var f=D(d);d=("number"==f?Da(c)&&Xa(d,c.length):"string"==f&&d in c)?Za(c[d],a):!1}else d=!1;d&&(b=void 0);return e(a,Fa(b))},Ic=function(a){for(var b=-1,c=null==a?0:a.length,e=0,d=[];++b<c;){var f=a[b];f&&(d[e++]=f)}return d},Pd=Sc(Object.getPrototypeOf,Object),Cc=Function.prototype.toString, +Qd=Object.prototype.hasOwnProperty,Rd=Cc.call(Object),V=window;if(V.GlobalSnowplowNamespace&&0<V.GlobalSnowplowNamespace.length){var ld=V.GlobalSnowplowNamespace.shift();var md=V[ld];md.q=new Jc(md.q,ld)}else V._snaq=V._snaq||[],V._snaq=new Jc(V._snaq,"_snaq")})() diff --git a/vendor/assets/javascripts/vue-virtual-scroller/package.json b/vendor/assets/javascripts/vue-virtual-scroller/package.json new file mode 100644 index 00000000000..0c6eec36ea5 --- /dev/null +++ b/vendor/assets/javascripts/vue-virtual-scroller/package.json @@ -0,0 +1,40 @@ +{ + "name": "vue-virtual-scroller", + "description": "Smooth scrolling for any amount of data", + "version": "1.0.10", + "author": { + "name": "Guillaume Chau", + "email": "guillaume.b.chau@gmail.com" + }, + "keywords": [ + "vue", + "vuejs", + "plugin" + ], + "license": "MIT", + "main": "src/index.js", + "scripts": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/Akryum/vue-virtual-scroller.git" + }, + "bugs": { + "url": "https://github.com/Akryum/vue-virtual-scroller/issues" + }, + "homepage": "https://github.com/Akryum/vue-virtual-scroller#readme", + "dependencies": { + "scrollparent": "^2.0.1", + "vue-observe-visibility": "^0.4.4", + "vue-resize": "^0.4.5" + }, + "peerDependencies": { + "vue": "^2.6.11" + }, + "devDependencies": { + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 8" + ] +} diff --git a/vendor/assets/javascripts/vue-virtual-scroller/src/components/DynamicScroller.vue b/vendor/assets/javascripts/vue-virtual-scroller/src/components/DynamicScroller.vue new file mode 100644 index 00000000000..e9f3acea9d8 --- /dev/null +++ b/vendor/assets/javascripts/vue-virtual-scroller/src/components/DynamicScroller.vue @@ -0,0 +1,212 @@ +<template> + <RecycleScroller + ref="scroller" + :items="itemsWithSize" + :min-item-size="minItemSize" + :direction="direction" + key-field="id" + v-bind="$attrs" + @resize="onScrollerResize" + @visible="onScrollerVisible" + v-on="listeners" + > + <template slot-scope="{ item: itemWithSize, index, active }"> + <slot + v-bind="{ + item: itemWithSize.item, + index, + active, + itemWithSize + }" + /> + </template> + <template slot="before"> + <slot name="before" /> + </template> + <template slot="after"> + <slot name="after" /> + </template> + </RecycleScroller> +</template> + +<script> +import RecycleScroller from './RecycleScroller.vue' +import { props, simpleArray } from './common' + +export default { + name: 'DynamicScroller', + + components: { + RecycleScroller, + }, + + inheritAttrs: false, + + provide () { + if (typeof ResizeObserver !== 'undefined') { + this.$_resizeObserver = new ResizeObserver(entries => { + for (const entry of entries) { + if (entry.target) { + const event = new CustomEvent( + 'resize', + { + detail: { + contentRect: entry.contentRect, + }, + }, + ) + entry.target.dispatchEvent(event) + } + } + }) + } + + return { + vscrollData: this.vscrollData, + vscrollParent: this, + vscrollResizeObserver: this.$_resizeObserver, + } + }, + + props: { + ...props, + + minItemSize: { + type: [Number, String], + required: true, + }, + }, + + data () { + return { + vscrollData: { + active: true, + sizes: {}, + validSizes: {}, + keyField: this.keyField, + simpleArray: false, + }, + } + }, + + computed: { + simpleArray, + + itemsWithSize () { + const result = [] + const { items, keyField, simpleArray } = this + const sizes = this.vscrollData.sizes + for (let i = 0; i < items.length; i++) { + const item = items[i] + const id = simpleArray ? i : item[keyField] + let size = sizes[id] + if (typeof size === 'undefined' && !this.$_undefinedMap[id]) { + size = 0 + } + result.push({ + item, + id, + size, + }) + } + return result + }, + + listeners () { + const listeners = {} + for (const key in this.$listeners) { + if (key !== 'resize' && key !== 'visible') { + listeners[key] = this.$listeners[key] + } + } + return listeners + }, + }, + + watch: { + items () { + this.forceUpdate(false) + }, + + simpleArray: { + handler (value) { + this.vscrollData.simpleArray = value + }, + immediate: true, + }, + + direction (value) { + this.forceUpdate(true) + }, + }, + + created () { + this.$_updates = [] + this.$_undefinedSizes = 0 + this.$_undefinedMap = {} + }, + + activated () { + this.vscrollData.active = true + }, + + deactivated () { + this.vscrollData.active = false + }, + + methods: { + onScrollerResize () { + const scroller = this.$refs.scroller + if (scroller) { + this.forceUpdate() + } + this.$emit('resize') + }, + + onScrollerVisible () { + this.$emit('vscroll:update', { force: false }) + this.$emit('visible') + }, + + forceUpdate (clear = true) { + if (clear || this.simpleArray) { + this.vscrollData.validSizes = {} + } + this.$emit('vscroll:update', { force: true }) + }, + + scrollToItem (index) { + const scroller = this.$refs.scroller + if (scroller) scroller.scrollToItem(index) + }, + + getItemSize (item, index = undefined) { + const id = this.simpleArray ? (index != null ? index : this.items.indexOf(item)) : item[this.keyField] + return this.vscrollData.sizes[id] || 0 + }, + + scrollToBottom () { + if (this.$_scrollingToBottom) return + this.$_scrollingToBottom = true + const el = this.$el + // Item is inserted to the DOM + this.$nextTick(() => { + el.scrollTop = el.scrollHeight + 5000 + // Item sizes are computed + const cb = () => { + el.scrollTop = el.scrollHeight + 5000 + requestAnimationFrame(() => { + el.scrollTop = el.scrollHeight + 5000 + if (this.$_undefinedSizes === 0) { + this.$_scrollingToBottom = false + } else { + requestAnimationFrame(cb) + } + }) + } + requestAnimationFrame(cb) + }) + }, + }, +} +</script> diff --git a/vendor/assets/javascripts/vue-virtual-scroller/src/components/DynamicScrollerItem.vue b/vendor/assets/javascripts/vue-virtual-scroller/src/components/DynamicScrollerItem.vue new file mode 100644 index 00000000000..3db24018ad0 --- /dev/null +++ b/vendor/assets/javascripts/vue-virtual-scroller/src/components/DynamicScrollerItem.vue @@ -0,0 +1,218 @@ +<script> +export default { + name: 'DynamicScrollerItem', + + inject: [ + 'vscrollData', + 'vscrollParent', + 'vscrollResizeObserver', + ], + + props: { + // eslint-disable-next-line vue/require-prop-types + item: { + required: true, + }, + + watchData: { + type: Boolean, + default: false, + }, + + /** + * Indicates if the view is actively used to display an item. + */ + active: { + type: Boolean, + required: true, + }, + + index: { + type: Number, + default: undefined, + }, + + sizeDependencies: { + type: [Array, Object], + default: null, + }, + + emitResize: { + type: Boolean, + default: false, + }, + + tag: { + type: String, + default: 'div', + }, + }, + + computed: { + id () { + return this.vscrollData.simpleArray ? this.index : this.item[this.vscrollData.keyField] + }, + + size () { + return (this.vscrollData.validSizes[this.id] && this.vscrollData.sizes[this.id]) || 0 + }, + + finalActive () { + return this.active && this.vscrollData.active + }, + }, + + watch: { + watchData: 'updateWatchData', + + id () { + if (!this.size) { + this.onDataUpdate() + } + }, + + finalActive (value) { + if (!this.size) { + if (value) { + if (!this.vscrollParent.$_undefinedMap[this.id]) { + this.vscrollParent.$_undefinedSizes++ + this.vscrollParent.$_undefinedMap[this.id] = true + } + } else { + if (this.vscrollParent.$_undefinedMap[this.id]) { + this.vscrollParent.$_undefinedSizes-- + this.vscrollParent.$_undefinedMap[this.id] = false + } + } + } + + if (this.vscrollResizeObserver) { + if (value) { + this.observeSize() + } else { + this.unobserveSize() + } + } else if (value && this.$_pendingVScrollUpdate === this.id) { + this.updateSize() + } + }, + }, + + created () { + if (this.$isServer) return + + this.$_forceNextVScrollUpdate = null + this.updateWatchData() + + if (!this.vscrollResizeObserver) { + for (const k in this.sizeDependencies) { + this.$watch(() => this.sizeDependencies[k], this.onDataUpdate) + } + + this.vscrollParent.$on('vscroll:update', this.onVscrollUpdate) + this.vscrollParent.$on('vscroll:update-size', this.onVscrollUpdateSize) + } + }, + + mounted () { + if (this.vscrollData.active) { + this.updateSize() + this.observeSize() + } + }, + + beforeDestroy () { + this.vscrollParent.$off('vscroll:update', this.onVscrollUpdate) + this.vscrollParent.$off('vscroll:update-size', this.onVscrollUpdateSize) + this.unobserveSize() + }, + + methods: { + updateSize () { + if (this.finalActive) { + if (this.$_pendingSizeUpdate !== this.id) { + this.$_pendingSizeUpdate = this.id + this.$_forceNextVScrollUpdate = null + this.$_pendingVScrollUpdate = null + this.computeSize(this.id) + } + } else { + this.$_forceNextVScrollUpdate = this.id + } + }, + + updateWatchData () { + if (this.watchData) { + this.$_watchData = this.$watch('data', () => { + this.onDataUpdate() + }, { + deep: true, + }) + } else if (this.$_watchData) { + this.$_watchData() + this.$_watchData = null + } + }, + + onVscrollUpdate ({ force }) { + // If not active, sechedule a size update when it becomes active + if (!this.finalActive && force) { + this.$_pendingVScrollUpdate = this.id + } + + if (this.$_forceNextVScrollUpdate === this.id || force || !this.size) { + this.updateSize() + } + }, + + onDataUpdate () { + this.updateSize() + }, + + computeSize (id) { + this.$nextTick(() => { + if (this.id === id) { + const width = this.$el.offsetWidth + const height = this.$el.offsetHeight + this.applySize(width, height) + } + this.$_pendingSizeUpdate = null + }) + }, + + applySize (width, height) { + const size = Math.round(this.vscrollParent.direction === 'vertical' ? height : width) + if (size && this.size !== size) { + if (this.vscrollParent.$_undefinedMap[this.id]) { + this.vscrollParent.$_undefinedSizes-- + this.vscrollParent.$_undefinedMap[this.id] = undefined + } + this.$set(this.vscrollData.sizes, this.id, size) + this.$set(this.vscrollData.validSizes, this.id, true) + if (this.emitResize) this.$emit('resize', this.id) + } + }, + + observeSize () { + if (!this.vscrollResizeObserver) return + this.vscrollResizeObserver.observe(this.$el.parentNode) + this.$el.parentNode.addEventListener('resize', this.onResize) + }, + + unobserveSize () { + if (!this.vscrollResizeObserver) return + this.vscrollResizeObserver.unobserve(this.$el.parentNode) + this.$el.parentNode.removeEventListener('resize', this.onResize) + }, + + onResize (event) { + const { width, height } = event.detail.contentRect + this.applySize(width, height) + }, + }, + + render (h) { + return h(this.tag, this.$slots.default) + }, +} +</script> diff --git a/vendor/assets/javascripts/vue-virtual-scroller/src/components/RecycleScroller.vue b/vendor/assets/javascripts/vue-virtual-scroller/src/components/RecycleScroller.vue new file mode 100644 index 00000000000..5e9661a53c8 --- /dev/null +++ b/vendor/assets/javascripts/vue-virtual-scroller/src/components/RecycleScroller.vue @@ -0,0 +1,657 @@ +<template> + <div + v-observe-visibility="handleVisibilityChange" + class="vue-recycle-scroller" + :class="{ + ready, + 'page-mode': pageMode, + [`direction-${direction}`]: true, + }" + @scroll.passive="handleScroll" + > + <div + v-if="$slots.before" + class="vue-recycle-scroller__slot" + > + <slot + name="before" + /> + </div> + + <div + ref="wrapper" + :style="{ [direction === 'vertical' ? 'minHeight' : 'minWidth']: totalSize + 'px' }" + class="vue-recycle-scroller__item-wrapper" + > + <div + v-for="view of pool" + :key="view.nr.id" + :style="ready ? { + transform: useTransform ? `translate${direction === 'vertical' ? 'Y' : 'X'}(${view.position}px)` : null, + top: !useTransform && direction === 'vertical' ? `${view.position}px` : null, + left: !useTransform && direction !== 'vertical' ? `${view.position}px` : null, + } : null" + class="vue-recycle-scroller__item-view" + :class="{ hover: hoverKey === view.nr.key }" + @mouseenter="hoverKey = view.nr.key" + @mouseleave="hoverKey = null" + > + <slot + :item="view.item" + :index="view.nr.index" + :active="view.nr.used" + /> + </div> + </div> + + <div + v-if="$slots.after" + class="vue-recycle-scroller__slot" + > + <slot + name="after" + /> + </div> + + <ResizeObserver @notify="handleResize" /> + </div> +</template> + +<script> +import { ResizeObserver } from 'vue-resize' +import { ObserveVisibility } from 'vue-observe-visibility' +import ScrollParent from 'scrollparent' +import config from '../config' +import { props, simpleArray } from './common' +import { supportsPassive } from '../utils' + +let uid = 0 + +export default { + name: 'RecycleScroller', + + components: { + ResizeObserver, + }, + + directives: { + ObserveVisibility, + }, + + props: { + ...props, + + itemSize: { + type: Number, + default: null, + }, + + minItemSize: { + type: [Number, String], + default: null, + }, + + sizeField: { + type: String, + default: 'size', + }, + + typeField: { + type: String, + default: 'type', + }, + + buffer: { + type: Number, + default: 200, + }, + + pageMode: { + type: Boolean, + default: false, + }, + + prerender: { + type: Number, + default: 0, + }, + + emitUpdate: { + type: Boolean, + default: false, + }, + + useTransform: { + type: Boolean, + default: true, + } + }, + + data () { + return { + pool: [], + totalSize: 0, + ready: false, + hoverKey: null, + } + }, + + computed: { + sizes () { + if (this.itemSize === null) { + const sizes = { + '-1': { accumulator: 0 }, + } + const items = this.items + const field = this.sizeField + const minItemSize = this.minItemSize + let computedMinSize = 10000 + let accumulator = 0 + let current + for (let i = 0, l = items.length; i < l; i++) { + current = items[i][field] || minItemSize + if (current < computedMinSize) { + computedMinSize = current + } + accumulator += current + sizes[i] = { accumulator, size: current } + } + // eslint-disable-next-line + this.$_computedMinItemSize = computedMinSize + return sizes + } + return [] + }, + + simpleArray, + }, + + watch: { + items () { + this.updateVisibleItems(true) + }, + + pageMode () { + this.applyPageMode() + this.updateVisibleItems(false) + }, + + sizes: { + handler () { + this.updateVisibleItems(false) + }, + deep: true, + }, + }, + + created () { + this.$_startIndex = 0 + this.$_endIndex = 0 + this.$_views = new Map() + this.$_unusedViews = new Map() + this.$_scrollDirty = false + this.$_lastUpdateScrollPosition = 0 + + // In SSR mode, we also prerender the same number of item for the first render + // to avoir mismatch between server and client templates + if (this.prerender) { + this.$_prerender = true + this.updateVisibleItems(false) + } + }, + + mounted () { + this.applyPageMode() + this.$nextTick(() => { + // In SSR mode, render the real number of visible items + this.$_prerender = false + this.updateVisibleItems(true) + this.ready = true + }) + }, + + beforeDestroy () { + this.removeListeners() + }, + + methods: { + addView (pool, index, item, key, type) { + const view = { + item, + position: 0, + } + const nonReactive = { + id: uid++, + index, + used: true, + key, + type, + } + Object.defineProperty(view, 'nr', { + configurable: false, + value: nonReactive, + }) + pool.push(view) + return view + }, + + unuseView (view, fake = false) { + const unusedViews = this.$_unusedViews + const type = view.nr.type + let unusedPool = unusedViews.get(type) + if (!unusedPool) { + unusedPool = [] + unusedViews.set(type, unusedPool) + } + unusedPool.push(view) + if (!fake) { + view.nr.used = false + view.position = -9999 + this.$_views.delete(view.nr.key) + } + }, + + handleResize () { + this.$emit('resize') + if (this.ready) this.updateVisibleItems(false) + }, + + handleScroll (event) { + if (!this.$_scrollDirty) { + this.$_scrollDirty = true + requestAnimationFrame(() => { + this.$_scrollDirty = false + const { continuous } = this.updateVisibleItems(false, true) + + // It seems sometimes chrome doesn't fire scroll event :/ + // When non continous scrolling is ending, we force a refresh + if (!continuous) { + clearTimeout(this.$_refreshTimout) + this.$_refreshTimout = setTimeout(this.handleScroll, 100) + } + }) + } + }, + + handleVisibilityChange (isVisible, entry) { + if (this.ready) { + if (isVisible || entry.boundingClientRect.width !== 0 || entry.boundingClientRect.height !== 0) { + this.$emit('visible') + requestAnimationFrame(() => { + this.updateVisibleItems(false) + }) + } else { + this.$emit('hidden') + } + } + }, + + updateVisibleItems (checkItem, checkPositionDiff = false) { + const itemSize = this.itemSize + const minItemSize = this.$_computedMinItemSize + const typeField = this.typeField + const keyField = this.simpleArray ? null : this.keyField + const items = this.items + const count = items.length + const sizes = this.sizes + const views = this.$_views + const unusedViews = this.$_unusedViews + const pool = this.pool + let startIndex, endIndex + let totalSize + + if (!count) { + startIndex = endIndex = totalSize = 0 + } else if (this.$_prerender) { + startIndex = 0 + endIndex = this.prerender + totalSize = null + } else { + const scroll = this.getScroll() + + // Skip update if use hasn't scrolled enough + if (checkPositionDiff) { + let positionDiff = scroll.start - this.$_lastUpdateScrollPosition + if (positionDiff < 0) positionDiff = -positionDiff + if ((itemSize === null && positionDiff < minItemSize) || positionDiff < itemSize) { + return { + continuous: true, + } + } + } + this.$_lastUpdateScrollPosition = scroll.start + + const buffer = this.buffer + scroll.start -= buffer + scroll.end += buffer + + // Variable size mode + if (itemSize === null) { + let h + let a = 0 + let b = count - 1 + let i = ~~(count / 2) + let oldI + + // Searching for startIndex + do { + oldI = i + h = sizes[i].accumulator + if (h < scroll.start) { + a = i + } else if (i < count - 1 && sizes[i + 1].accumulator > scroll.start) { + b = i + } + i = ~~((a + b) / 2) + } while (i !== oldI) + i < 0 && (i = 0) + startIndex = i + + // For container style + totalSize = sizes[count - 1].accumulator + + // Searching for endIndex + for (endIndex = i; endIndex < count && sizes[endIndex].accumulator < scroll.end; endIndex++); + if (endIndex === -1) { + endIndex = items.length - 1 + } else { + endIndex++ + // Bounds + endIndex > count && (endIndex = count) + } + } else { + // Fixed size mode + startIndex = ~~(scroll.start / itemSize) + endIndex = Math.ceil(scroll.end / itemSize) + + // Bounds + startIndex < 0 && (startIndex = 0) + endIndex > count && (endIndex = count) + + totalSize = count * itemSize + } + } + + if (endIndex - startIndex > config.itemsLimit) { + this.itemsLimitError() + } + + this.totalSize = totalSize + + let view + + const continuous = startIndex <= this.$_endIndex && endIndex >= this.$_startIndex + + if (this.$_continuous !== continuous) { + if (continuous) { + views.clear() + unusedViews.clear() + for (let i = 0, l = pool.length; i < l; i++) { + view = pool[i] + this.unuseView(view) + } + } + this.$_continuous = continuous + } else if (continuous) { + for (let i = 0, l = pool.length; i < l; i++) { + view = pool[i] + if (view.nr.used) { + // Update view item index + if (checkItem) { + view.nr.index = items.findIndex( + item => keyField ? item[keyField] === view.item[keyField] : item === view.item, + ) + } + + // Check if index is still in visible range + if ( + view.nr.index === -1 || + view.nr.index < startIndex || + view.nr.index >= endIndex + ) { + this.unuseView(view) + } + } + } + } + + const unusedIndex = continuous ? null : new Map() + + let item, type, unusedPool + let v + for (let i = startIndex; i < endIndex; i++) { + item = items[i] + const key = keyField ? item[keyField] : item + if (key == null) { + throw new Error(`Key is ${key} on item (keyField is '${keyField}')`) + } + view = views.get(key) + + if (!itemSize && !sizes[i].size) { + if (view) this.unuseView(view) + continue + } + + // No view assigned to item + if (!view) { + type = item[typeField] + unusedPool = unusedViews.get(type) + + if (continuous) { + // Reuse existing view + if (unusedPool && unusedPool.length) { + view = unusedPool.pop() + view.item = item + view.nr.used = true + view.nr.index = i + view.nr.key = key + view.nr.type = type + } else { + view = this.addView(pool, i, item, key, type) + } + } else { + // Use existing view + // We don't care if they are already used + // because we are not in continous scrolling + v = unusedIndex.get(type) || 0 + + if (!unusedPool || v >= unusedPool.length) { + view = this.addView(pool, i, item, key, type) + this.unuseView(view, true) + unusedPool = unusedViews.get(type) + } + + view = unusedPool[v] + view.item = item + view.nr.used = true + view.nr.index = i + view.nr.key = key + view.nr.type = type + unusedIndex.set(type, v + 1) + v++ + } + views.set(key, view) + } else { + view.nr.used = true + view.item = item + } + + // Update position + if (itemSize === null) { + view.position = sizes[i - 1].accumulator + } else { + view.position = i * itemSize + } + } + + this.$_startIndex = startIndex + this.$_endIndex = endIndex + + if (this.emitUpdate) this.$emit('update', startIndex, endIndex) + + // After the user has finished scrolling + // Sort views so text selection is correct + clearTimeout(this.$_sortTimer) + this.$_sortTimer = setTimeout(this.sortViews, 300) + + return { + continuous, + } + }, + + getListenerTarget () { + let target = ScrollParent(this.$el) + // Fix global scroll target for Chrome and Safari + if (window.document && (target === window.document.documentElement || target === window.document.body)) { + target = window + } + return target + }, + + getScroll () { + const { $el: el, direction } = this + const isVertical = direction === 'vertical' + let scrollState + + if (this.pageMode) { + const bounds = el.getBoundingClientRect() + const boundsSize = isVertical ? bounds.height : bounds.width + let start = -(isVertical ? bounds.top : bounds.left) + let size = isVertical ? window.innerHeight : window.innerWidth + if (start < 0) { + size += start + start = 0 + } + if (start + size > boundsSize) { + size = boundsSize - start + } + scrollState = { + start, + end: start + size, + } + } else if (isVertical) { + scrollState = { + start: el.scrollTop, + end: el.scrollTop + el.clientHeight, + } + } else { + scrollState = { + start: el.scrollLeft, + end: el.scrollLeft + el.clientWidth, + } + } + + return scrollState + }, + + applyPageMode () { + if (this.pageMode) { + this.addListeners() + } else { + this.removeListeners() + } + }, + + addListeners () { + this.listenerTarget = this.getListenerTarget() + this.listenerTarget.addEventListener('scroll', this.handleScroll, supportsPassive ? { + passive: true, + } : false) + this.listenerTarget.addEventListener('resize', this.handleResize) + }, + + removeListeners () { + if (!this.listenerTarget) { + return + } + + this.listenerTarget.removeEventListener('scroll', this.handleScroll) + this.listenerTarget.removeEventListener('resize', this.handleResize) + + this.listenerTarget = null + }, + + scrollToItem (index) { + let scroll + if (this.itemSize === null) { + scroll = index > 0 ? this.sizes[index - 1].accumulator : 0 + } else { + scroll = index * this.itemSize + } + this.scrollToPosition(scroll) + }, + + scrollToPosition (position) { + if (this.direction === 'vertical') { + this.$el.scrollTop = position + } else { + this.$el.scrollLeft = position + } + }, + + itemsLimitError () { + setTimeout(() => { + console.log('It seems the scroller element isn\'t scrolling, so it tries to render all the items at once.', 'Scroller:', this.$el) + console.log('Make sure the scroller has a fixed height (or width) and \'overflow-y\' (or \'overflow-x\') set to \'auto\' so it can scroll correctly and only render the items visible in the scroll viewport.') + }) + throw new Error('Rendered items limit reached') + }, + + sortViews () { + this.pool.sort((viewA, viewB) => viewA.nr.index - viewB.nr.index) + }, + }, +} +</script> + +<style> +.vue-recycle-scroller { + position: relative; +} + +.vue-recycle-scroller.direction-vertical:not(.page-mode) { + overflow-y: auto; +} + +.vue-recycle-scroller.direction-horizontal:not(.page-mode) { + overflow-x: auto; +} + +.vue-recycle-scroller.direction-horizontal { + display: flex; +} + +.vue-recycle-scroller__slot { + flex: auto 0 0; +} + +.vue-recycle-scroller__item-wrapper { + flex: 1; + box-sizing: border-box; + overflow: hidden; + position: relative; +} + +.vue-recycle-scroller.ready .vue-recycle-scroller__item-view { + position: absolute; + top: 0; + left: 0; + will-change: transform; +} + +.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper { + width: 100%; +} + +.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper { + height: 100%; +} + +.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view { + width: 100%; +} + +.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view { + height: 100%; +} +</style> diff --git a/vendor/assets/javascripts/vue-virtual-scroller/src/components/common.js b/vendor/assets/javascripts/vue-virtual-scroller/src/components/common.js new file mode 100644 index 00000000000..2121942152e --- /dev/null +++ b/vendor/assets/javascripts/vue-virtual-scroller/src/components/common.js @@ -0,0 +1,21 @@ +export const props = { + items: { + type: Array, + required: true, + }, + + keyField: { + type: String, + default: 'id', + }, + + direction: { + type: String, + default: 'vertical', + validator: (value) => ['vertical', 'horizontal'].includes(value), + }, +} + +export function simpleArray () { + return this.items.length && typeof this.items[0] !== 'object' +} diff --git a/vendor/assets/javascripts/vue-virtual-scroller/src/config.js b/vendor/assets/javascripts/vue-virtual-scroller/src/config.js new file mode 100644 index 00000000000..898ca7e027d --- /dev/null +++ b/vendor/assets/javascripts/vue-virtual-scroller/src/config.js @@ -0,0 +1,3 @@ +export default { + itemsLimit: 1000, +} diff --git a/vendor/assets/javascripts/vue-virtual-scroller/src/index.js b/vendor/assets/javascripts/vue-virtual-scroller/src/index.js new file mode 100644 index 00000000000..aa9733338f6 --- /dev/null +++ b/vendor/assets/javascripts/vue-virtual-scroller/src/index.js @@ -0,0 +1,60 @@ +/** + * See https://gitlab.com/gitlab-org/gitlab/-/issues/331267 for more information on this vendored + * dependency + */ + +import config from './config' + +import RecycleScroller from './components/RecycleScroller.vue' +import DynamicScroller from './components/DynamicScroller.vue' +import DynamicScrollerItem from './components/DynamicScrollerItem.vue' + +export { default as IdState } from './mixins/IdState' + +export { + RecycleScroller, + DynamicScroller, + DynamicScrollerItem, +} + +function registerComponents (Vue, prefix) { + Vue.component(`${prefix}recycle-scroller`, RecycleScroller) + Vue.component(`${prefix}RecycleScroller`, RecycleScroller) + Vue.component(`${prefix}dynamic-scroller`, DynamicScroller) + Vue.component(`${prefix}DynamicScroller`, DynamicScroller) + Vue.component(`${prefix}dynamic-scroller-item`, DynamicScrollerItem) + Vue.component(`${prefix}DynamicScrollerItem`, DynamicScrollerItem) +} + +const plugin = { + // eslint-disable-next-line no-undef + install (Vue, options) { + const finalOptions = Object.assign({}, { + installComponents: true, + componentsPrefix: '', + }, options) + + for (const key in finalOptions) { + if (typeof finalOptions[key] !== 'undefined') { + config[key] = finalOptions[key] + } + } + + if (finalOptions.installComponents) { + registerComponents(Vue, finalOptions.componentsPrefix) + } + }, +} + +export default plugin + +// Auto-install +let GlobalVue = null +if (typeof window !== 'undefined') { + GlobalVue = window.Vue +} else if (typeof global !== 'undefined') { + GlobalVue = global.Vue +} +if (GlobalVue) { + GlobalVue.use(plugin) +} diff --git a/vendor/assets/javascripts/vue-virtual-scroller/src/mixins/IdState.js b/vendor/assets/javascripts/vue-virtual-scroller/src/mixins/IdState.js new file mode 100644 index 00000000000..9b5bc57ab92 --- /dev/null +++ b/vendor/assets/javascripts/vue-virtual-scroller/src/mixins/IdState.js @@ -0,0 +1,79 @@ +import Vue from 'vue' + +export default function ({ + idProp = vm => vm.item.id, +} = {}) { + const store = {} + const vm = new Vue({ + data () { + return { + store, + } + }, + }) + + // @vue/component + return { + data () { + return { + idState: null, + } + }, + + created () { + this.$_id = null + if (typeof idProp === 'function') { + this.$_getId = () => idProp.call(this, this) + } else { + this.$_getId = () => this[idProp] + } + this.$watch(this.$_getId, { + handler (value) { + this.$nextTick(() => { + this.$_id = value + }) + }, + immediate: true, + }) + this.$_updateIdState() + }, + + beforeUpdate () { + this.$_updateIdState() + }, + + methods: { + /** + * Initialize an idState + * @param {number|string} id Unique id for the data + */ + $_idStateInit (id) { + const factory = this.$options.idState + if (typeof factory === 'function') { + const data = factory.call(this, this) + vm.$set(store, id, data) + this.$_id = id + return data + } else { + throw new Error('[mixin IdState] Missing `idState` function on component definition.') + } + }, + + /** + * Ensure idState is created and up-to-date + */ + $_updateIdState () { + const id = this.$_getId() + if (id == null) { + console.warn(`No id found for IdState with idProp: '${idProp}'.`) + } + if (id !== this.$_id) { + if (!store[id]) { + this.$_idStateInit(id) + } + this.idState = store[id] + } + }, + }, + } +} diff --git a/vendor/assets/javascripts/vue-virtual-scroller/src/utils.js b/vendor/assets/javascripts/vue-virtual-scroller/src/utils.js new file mode 100644 index 00000000000..40da6793e67 --- /dev/null +++ b/vendor/assets/javascripts/vue-virtual-scroller/src/utils.js @@ -0,0 +1,13 @@ +export let supportsPassive = false + +if (typeof window !== 'undefined') { + supportsPassive = false + try { + var opts = Object.defineProperty({}, 'passive', { + get () { + supportsPassive = true + }, + }) + window.addEventListener('test', null, opts) + } catch (e) {} +} diff --git a/vendor/elastic_stack/values.yaml b/vendor/elastic_stack/values.yaml index a6c9fdd39a4..65e9c4b683f 100644 --- a/vendor/elastic_stack/values.yaml +++ b/vendor/elastic_stack/values.yaml @@ -11,6 +11,14 @@ elasticsearch: filebeat: enabled: true + extraVolumes: + - name: varlog + hostPath: + path: /var/log + extraVolumeMounts: + - name: varlog + mountPath: /var/log + readOnly: true filebeatConfig: filebeat.yml: | output.file.enabled: false @@ -22,6 +30,28 @@ filebeat: index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}" filebeat.inputs: - type: container + format: cri + paths: + - '/var/log/containers/*.log' + json.keys_under_root: true + json.ignore_decoding_error: true + processors: + - add_id: + target_field: tie_breaker_id + - add_cloud_metadata: ~ + - add_kubernetes_metadata: + host: ${NODE_NAME} + matchers: + - logs_path: + logs_path: "/var/log/containers/" + - decode_json_fields: + fields: ["message"] + when: + equals: + kubernetes.container.namespace: "gitlab-managed-apps" + kubernetes.container.name: "modsecurity-log" + - type: container + format: docker paths: - '/var/lib/docker/containers/*/*.log' json.keys_under_root: true diff --git a/vendor/gems/mail-smtp_pool/.gitlab-ci.yml b/vendor/gems/mail-smtp_pool/.gitlab-ci.yml index 56eff5b30a7..4c9e62f7d11 100644 --- a/vendor/gems/mail-smtp_pool/.gitlab-ci.yml +++ b/vendor/gems/mail-smtp_pool/.gitlab-ci.yml @@ -12,6 +12,7 @@ workflow: - ruby -v # Print out ruby version for debugging - gem install bundler --no-document # Bundler is not installed with the image - bundle config set --local path 'vendor' # Install dependencies into ./vendor/ruby + - bundle config set with 'development' - bundle install -j $(nproc) script: - bundle exec rspec diff --git a/vendor/gems/mail-smtp_pool/lib/mail/smtp_pool.rb b/vendor/gems/mail-smtp_pool/lib/mail/smtp_pool.rb index ab8a7652058..b0c82a3db71 100644 --- a/vendor/gems/mail-smtp_pool/lib/mail/smtp_pool.rb +++ b/vendor/gems/mail-smtp_pool/lib/mail/smtp_pool.rb @@ -30,5 +30,11 @@ module Mail def deliver!(mail) @pool.with { |conn| conn.deliver!(mail) } end + + # This makes it compatible with Mail's `#deliver!` method + # https://github.com/mikel/mail/blob/22a7afc23f253319965bf9228a0a430eec94e06d/lib/mail/message.rb#L271 + def settings + {} + end end end diff --git a/vendor/gems/mail-smtp_pool/spec/lib/mail/smtp_pool_spec.rb b/vendor/gems/mail-smtp_pool/spec/lib/mail/smtp_pool_spec.rb index aa2a0e19ac8..bbe5ef8b068 100644 --- a/vendor/gems/mail-smtp_pool/spec/lib/mail/smtp_pool_spec.rb +++ b/vendor/gems/mail-smtp_pool/spec/lib/mail/smtp_pool_spec.rb @@ -64,5 +64,27 @@ describe Mail::SMTPPool do expect(MockSMTP.deliveries.size).to eq(1) end + + context 'when called from Mail:Message' do + before do + mail.delivery_method(described_class, { pool: described_class.create_pool }) + end + + describe '#deliver' do + it 'delivers mail' do + mail.deliver + + expect(MockSMTP.deliveries.size).to eq(1) + end + end + + describe '#deliver!' do + it 'delivers mail' do + mail.deliver! + + expect(MockSMTP.deliveries.size).to eq(1) + end + end + end end end diff --git a/vendor/project_templates/rails.tar.gz b/vendor/project_templates/rails.tar.gz Binary files differindex 5ead9bd8459..357a049da44 100644 --- a/vendor/project_templates/rails.tar.gz +++ b/vendor/project_templates/rails.tar.gz |