1var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES2020=!1;$jscomp.ASSUME_ES6=$jscomp.ASSUME_ES2020;$jscomp.ASSUME_ES5=$jscomp.ASSUME_ES6;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.INSTRUMENT_ASYNC_CONTEXT=!0; 2$jscomp.defineProperty=$jscomp.ASSUME_ES5||typeof Object.defineProperties=="function"?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};$jscomp.getGlobal=function(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}; 3$jscomp.global=$jscomp.ASSUME_ES2020?globalThis:$jscomp.getGlobal(this);$jscomp.IS_SYMBOL_NATIVE=typeof Symbol==="function"&&typeof Symbol("x")==="symbol";$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX="$jscp$";var $jscomp$lookupPolyfilledValue=function(a,b,c){if(!c||a!=null){c=$jscomp.propertyToPolyfillSymbol[b];if(c==null)return a[b];c=a[c];return c!==void 0?c:a[b]}}; 4$jscomp.TYPED_ARRAY_CLASSES=function(){var a="Int8 Uint8 Uint8Clamped Int16 Uint16 Int32 Uint32 Float32 Float64".split(" ");$jscomp.global.BigInt64Array&&(a.push("BigInt64"),a.push("BigUint64"));return a}();$jscomp.polyfillTypedArrayMethod=function(a,b,c,d){if(b)for(var f=0;f<$jscomp.TYPED_ARRAY_CLASSES.length;f++){var k=$jscomp.TYPED_ARRAY_CLASSES[f]+"Array.prototype."+a;$jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(k,b,c,d):$jscomp.polyfillUnisolated(k,b,c,d)}}; 5$jscomp.polyfill=function(a,b,c,d){b&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(a,b,c,d):$jscomp.polyfillUnisolated(a,b,c,d))};$jscomp.polyfillUnisolated=function(a,b,c,d){c=$jscomp.global;a=a.split(".");for(d=0;d<a.length-1;d++){var f=a[d];if(!(f in c))return;c=c[f]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&b!=null&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:b})}; 6$jscomp.polyfillIsolated=function(a,b,c,d){var f=a.split(".");a=f.length===1;d=f[0];d=!a&&d in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var k=0;k<f.length-1;k++){var n=f[k];if(!(n in d))return;d=d[n]}f=f[f.length-1];c=$jscomp.IS_SYMBOL_NATIVE&&c==="es6"?d[f]:null;b=b(c);b!=null&&(a?$jscomp.defineProperty($jscomp.polyfills,f,{configurable:!0,writable:!0,value:b}):b!==c&&($jscomp.propertyToPolyfillSymbol[f]===void 0&&(c=Math.random()*1E9>>>0,$jscomp.propertyToPolyfillSymbol[f]=$jscomp.IS_SYMBOL_NATIVE? 7$jscomp.global.Symbol(f):$jscomp.POLYFILL_PREFIX+c+"$"+f),$jscomp.defineProperty(d,$jscomp.propertyToPolyfillSymbol[f],{configurable:!0,writable:!0,value:b})))};$jscomp.atMethod=function(a){a=Math.trunc(a)||0;a<0&&(a+=this.length);if(!(a<0||a>=this.length))return this[a]};$jscomp.polyfill("Array.prototype.at",function(a){return a?a:$jscomp.atMethod},"es_next","es5");$jscomp.typedArrayAt=function(a){return a?a:$jscomp.atMethod};$jscomp.polyfillTypedArrayMethod("at",$jscomp.typedArrayAt,"es_next","es5"); 8$jscomp.polyfill("String.prototype.at",function(a){return a?a:$jscomp.atMethod},"es_next","es5"); 9!function(a){typeof module!="undefined"&&typeof exports=="object"?module.exports=a():typeof define!="undefined"&&define.amd?define(["fzstd",a]):(typeof self!="undefined"?self:this).fzstd=a()}(function(){var a={};"use strict";var b=ArrayBuffer,c=Uint8Array,d=Uint16Array,f=Int16Array,k=Int32Array,n=function(fa,ia,Aa){if(c.prototype.slice)return c.prototype.slice.call(fa,ia,Aa);(null==ia||ia<0)&&(ia=0);(null==Aa||Aa>fa.length)&&(Aa=fa.length);var Ia=new c(Aa-ia);return Ia.set(fa.subarray(ia,Aa)),Ia}, 10q=function(fa,ia,Aa,Ia){if(c.prototype.fill)return c.prototype.fill.call(fa,ia,Aa,Ia);(null==Aa||Aa<0)&&(Aa=0);for((null==Ia||Ia>fa.length)&&(Ia=fa.length);Aa<Ia;++Aa)fa[Aa]=ia;return fa},r=function(fa,ia,Aa,Ia){if(c.prototype.copyWithin)return c.prototype.copyWithin.call(fa,ia,Aa,Ia);(null==Aa||Aa<0)&&(Aa=0);for((null==Ia||Ia>fa.length)&&(Ia=fa.length);Aa<Ia;)fa[ia++]=fa[Aa++]};a.ZstdErrorCode={InvalidData:0,WindowSizeTooLarge:1,InvalidBlockType:2,FSEAccuracyTooHigh:3,DistanceTooFarBack:4,UnexpectedEOF:5}; 11var u="invalid zstd data;window size too large (>2046MB);invalid block type;FSE accuracy too high;match distance too far back;unexpected EOF".split(";"),B=function(fa,ia,Aa){ia=Error(ia||u[fa]);
11if(ia.code=fa,Error.captureStackTrace&&Error.captureStackTrace(ia,B),!Aa)throw ia;return ia},t=function(fa,ia,Aa){for(var Ia=0,Ga=0;Ia<Aa;++Ia)Ga|=fa[ia++]<<(Ia<<3);return Ga},G=function(fa,ia){var Aa=fa[0]|fa[1]<<8|fa[2]<<16;if(3126568==Aa&&253==fa[3]){var Ia=fa[4],Ga=Ia>>5&1;Aa=Ia>>2&1;var Ya=3&Ia,Pa=Ia>> 126;8&Ia&&B(0);Ia=6-Ga;var ta=3==Ya?4:Ya;Ya=t(fa,Ia,ta);var ea=Pa?1<<Pa:Ga;Pa=ta=t(fa,Ia+=ta,ea)+(1==Pa&&256);Ga||(Ga=1<<10+(fa[5]>>3),Pa=Ga+(Ga>>3)*(7&fa[5]));Pa>2145386496&&B(1);fa=new c((1==ia?ta||Pa:ia?0:Pa)+12);return fa[0]=1,fa[4]=4,fa[8]=8,{b:Ia+ea,y:0,l:0,d:Ya,w:ia&&1!=ia?ia:fa.subarray(12),e:Pa,o:new k(fa.buffer,0,3),u:ta,c:Aa,m:Math.min(131072,Pa)}}if(25481893==(Aa>>4|fa[3]<<20))return((fa[4]|fa[5]<<8|fa[6]<<16|fa[7]<<24)>>>0)+8;B(0)},da=function(fa){for(var ia=0;1<<ia<=fa;++ia);return ia- 131},Y=function(fa,ia,Aa){var Ia=4+(ia<<3);ia=5+(15&fa[ia]);ia>Aa&&B(3);var Ga=Aa=1<<ia,Ya=-1,Pa=Aa,ta=new b(512+(Aa<<2)),ea=new f(ta,0,256),Fa=new d(ta,0,256),bb=new d(ta,512,Aa);var Ra=512+(Aa<<1);var Sa=new c(ta,Ra,Aa);for(ta=new c(ta,Ra+Aa);Ya<255&&Ga>0;){Ra=da(Ga+1);var db=Ia>>3,eb=(1<<Ra+1)-1;db=(fa[db]|fa[db+1]<<8|fa[db+2]<<16)>>(7&Ia)&eb;var sa=(1<<Ra)-1;eb=eb-Ga-1;var Qa=db&sa;if(Qa<eb?(Ia+=Ra,db=Qa):(Ia+=Ra+1,db>sa&&(db-=eb)),ea[++Ya]=--db,-1==db?(Ga+=db,Sa[--Pa]=Ya):Ga-=db,!db){do Ra=Ia>> 143,Ra=(fa[Ra]|fa[Ra+1]<<8)>>(7&Ia)&3,Ia+=2,Ya+=Ra;while(3==Ra)}}(Ya>255||Ga)&&B(0);Ga=0;Ra=(Aa>>1)+(Aa>>3)+3;db=Aa-1;for(sa=0;sa<=Ya;++sa)if(eb=ea[sa],eb<1)Fa[sa]=-eb;else for(fa=0;fa<eb;++fa){Sa[Ga]=sa;do Ga=Ga+Ra&db;while(Ga>=Pa)}Ga&&B(0);for(fa=0;fa<Aa;++fa)Ya=Fa[Sa[fa]]++,Pa=ta[fa]=ia-da(Ya),bb[fa]=(Ya<<Pa)-Aa;return[Ia+7>>3,{b:ia,s:Sa,n:ta,t:bb}]},X=Y(new c([81,16,99,140,49,198,24,99,12,33,196,24,99,102,102,134,70,146,4]),0,6)[1],P=Y(new c([33,20,196,24,99,140,33,132,16,66,8,33,132,16,66,8,33, 1568,68,68,68,68,68,68,68,36,9]),0,6)[1],ka=Y(new c([32,132,16,66,102,70,68,68,68,68,36,73,2]),0,5)[1],D=function(fa,ia){for(var Aa=fa.length,Ia=new k(Aa),Ga=0;Ga<Aa;++Ga)Ia[Ga]=ia,ia+=1<<fa[Ga];return Ia},W=new c((new k([0,0,0,0,16843009,50528770,134678020,202050057,269422093])).buffer,0,36),N=D(W,0),ha=new c((new k([0,0,0,0,0,0,0,0,16843009,50528770,117769220,185207048,252579084,16])).buffer,0,53),V=D(ha,3),O=function(fa,ia,Aa){var Ia=fa.length,Ga=ia.length,Ya=fa[Ia-1],Pa=(1<<Aa.b)-1,ta=-Aa.b;Ya|| 16B(0);var ea=0,Fa=Aa.b;Ia=(Ia<<3)-8+da(Ya)-Fa;for(Ya=-1;Ia>ta&&Ya<Ga;){var bb=Ia>>3;ia[++Ya]=Aa.s[ea=(ea<<Fa|(fa[bb]|fa[bb+1]<<8|fa[bb+2]<<16)>>(7&Ia))&Pa];Ia-=Fa=Aa.n[ea]}Ia==ta&&Ya+1==Ga||B(0)},wa=function(fa,ia,Aa){var Ia=6,Ga=ia.length+3>>2,Ya=Ga<<1,Pa=Ga+Ya;O(fa.subarray(Ia,Ia+=fa[0]|fa[1]<<8),ia.subarray(0,Ga),Aa);O(fa.subarray(Ia,Ia+=fa[2]|fa[3]<<8),ia.subarray(Ga,Ya),Aa);O(fa.subarray(Ia,Ia+=fa[4]|fa[5]<<8),ia.subarray(Ya,Pa),Aa);O(fa.subarray(Ia),ia.subarray(Pa),Aa)},La=function(fa,ia,Aa){var Ia, 17Ga=ia.b,Ya=fa[Ga],Pa=Ya>>1&3;ia.l=1&Ya;var ta=Ya>>3|fa[Ga+1]<<5|fa[Ga+2]<<13;Ya=(Ga+=3)+ta;if(1==Pa)return Ga>=fa.length?void 0:(ia.b=Ga+1,Aa?(q(Aa,fa[Ga],ia.y,ia.y+=ta),Aa):q(new c(ta),fa[Ga]));if(!(Ya>fa.length)){if(0==Pa)return ia.b=Ya,Aa?(Aa.set(fa.subarray(Ga,Ya),ia.y),ia.y+=ta,Aa):n(fa,Ga,Ya);if(2==Pa){Pa=fa[Ga];var ea=3&Pa;ta=Pa>>2&3;var Fa=Pa>>4,bb=0,Ra=0;ea<2?1&ta?Fa|=fa[++Ga]<<4|(2&ta&&fa[++Ga]<<12):Fa=Pa>>3:(Ra=ta,ta<2?(Fa|=(63&fa[++Ga])<<4,bb=fa[Ga]>>6|fa[++Ga]<<2):2==ta?(Fa|=fa[++Ga]<< 184|(3&fa[++Ga])<<12,bb=fa[Ga]>>2|fa[++Ga]<<6):(Fa|=fa[++Ga]<<4|(63&fa[++Ga])<<12,bb=fa[Ga]>>6|fa[++Ga]<<2|fa[++Ga]<<10));++Ga;Pa=Aa?Aa.subarray(ia.y,ia.y+ia.m):new c(ia.m);ta=Pa.length-Fa;if(0==ea)Pa.set(fa.subarray(Ga,Ga+=Fa),ta);else if(1==ea)q(Pa,fa[Ga++],ta);else{var Sa=ia.h;if(2==ea){var db;ea=Ga;var eb=0;Sa=-1;var sa=new c(292),Qa=fa[ea],Ta=sa.subarray(0,256),ba=sa.subarray(256,268);sa=new d(sa.buffer,268);if(Qa<128){var e=Y(fa,ea+1,6);eb=e[1];e=e[0]<<3;var x=fa[ea+=Qa];x||B(0);var v=Qa=0,C= 19eb.b,A=C;for(x=(++ea<<3)-8+da(x);!((x-=C)<e);){var H=x>>3;if(Ta[++Sa]=eb.s[Qa+=(fa[H]|fa[H+1]<<8)>>(7&x)&(1<<C)-1],(x-=A)<e)break;Ta[++Sa]=eb.s[v+=(fa[H=x>>3]|fa[H+1]<<8)>>(7&x)&(1<<A)-1];C=eb.n[Qa];Qa=eb.t[Qa];A=eb.n[v];v=eb.t[v]}++Sa>255&&B(0)}else{for(Sa=Qa-127;eb<Sa;eb+=2)e=fa[++ea],Ta[eb]=e>>4,Ta[eb+1]=15&e;++ea}for(eb=v=0;eb<Sa;++eb)(db=Ta[eb])>
1911&&B(0),v+=db&&1<<db-1;e=da(v)+1;Qa=1<<e;eb=Qa-v;eb&eb-1&&B(0);Ta[Sa++]=da(eb)+1;for(eb=0;eb<Sa;++eb)++ba[Ta[eb]=(db=Ta[eb])&&e+1-db];eb=new c(Qa<< 201);db=eb.subarray(0,Qa);v=eb.subarray(Qa);sa[e]=0;for(eb=e;eb>0;--eb)C=sa[eb],q(v,eb,C,sa[eb-1]=C+ba[eb]*(1<<e-eb));sa[0]!=Qa&&B(0);for(eb=0;eb<Sa;++eb)if(ba=Ta[eb])Qa=sa[ba],q(db,eb,Qa,sa[ba]=Qa+(1<<e-ba));db=[ea,{n:v,b:e,s:db}];bb+=Ga-(Ga=db[0]);ia.h=Sa=db[1]}else Sa||B(0);(Ra?wa:O)(fa.subarray(Ga,Ga+=bb),Pa.subarray(ta),Sa)}if(bb=fa[Ga++]){255==bb?bb=32512+(fa[Ga++]|fa[Ga++]<<8):bb>127&&(bb=bb-128<<8|fa[Ga++]);Fa=fa[Ga++];3&Fa&&B(0);Ra=[P,ka,X];for(ba=2;ba>-1;--ba)db=Fa>>2+(ba<<1)&3,1==db?(db= 21new c([0,0,fa[Ga++]]),Ra[ba]={s:db.subarray(2,3),n:db.subarray(0,1),t:new d(db.buffer,0,1),b:0}):2==db?(Ga=(Ia=Y(fa,Ga,9-(1&ba)))[0],Ra[ba]=Ia[1]):3==db&&(ia.t||B(0),Ra[ba]=ia.t[ba]);Fa=ia.t=Ra;Ia=Fa[0];Ga=Fa[1];Fa=Fa[2];(Ra=fa[Ya-1])||B(0);Ra=(Ya<<3)-8+da(Ra)-Fa.b;db=Ra>>3;ea=0;Sa=(fa[db]|fa[db+1]<<8)>>(7&Ra)&(1<<Fa.b)-1;Ta=(fa[db=(Ra-=Ga.b)>>3]|fa[db+1]<<8)>>(7&Ra)&(1<<Ga.b)-1;sa=(fa[db=(Ra-=Ia.b)>>3]|fa[db+1]<<8)>>(7&Ra)&(1<<Ia.b)-1;for(++bb;--bb;){C=Fa.s[Sa];ba=Fa.n[Sa];e=Ia.s[sa];Qa=Ia.n[sa]; 22eb=Ga.s[Ta];v=Ga.n[Ta];A=1<<eb;eb=A+((fa[db=(Ra-=eb)>>3]|fa[db+1]<<8|fa[db+2]<<16|fa[db+3]<<24)>>>(7&Ra)&A-1);db=(Ra-=ha[e])>>3;e=V[e]+((fa[db]|fa[db+1]<<8|fa[db+2]<<16)>>(7&Ra)&(1<<ha[e])-1);db=(Ra-=W[C])>>3;C=N[C]+((fa[db]|fa[db+1]<<8|fa[db+2]<<16)>>(7&Ra)&(1<<W[C])-1);(db=(Ra-=ba)>>3,Sa=Fa.t[Sa]+((fa[db]|fa[db+1]<<8)>>(7&Ra)&(1<<ba)-1),db=(Ra-=Qa)>>3,sa=Ia.t[sa]+((fa[db]|fa[db+1]<<8)>>(7&Ra)&(1<<Qa)-1),db=(Ra-=v)>>3,Ta=Ga.t[Ta]+((fa[db]|fa[db+1]<<8)>>(7&Ra)&(1<<v)-1),eb>3)?(ia.o[2]=ia.o[1],ia.o[1]= 23ia.o[0],ia.o[0]=eb-=3):(ba=eb-(0!=C))?(eb=3==ba?ia.o[0]-1:ia.o[ba],ba>1&&(ia.o[2]=ia.o[1]),ia.o[1]=ia.o[0],ia.o[0]=eb):eb=ia.o[0];for(ba=0;ba<C;++ba)Pa[ea+ba]=Pa[ta+ba];ta+=C;Qa=(ea+=C)-eb;if(Qa<0){eb=-Qa;Qa=ia.e+Qa;eb>e&&(eb=e);for(ba=0;ba<eb;++ba)Pa[ea+ba]=ia.w[Qa+ba];ea+=eb;e-=eb;Qa=0}for(ba=0;ba<e;++ba)Pa[ea+ba]=Pa[Qa+ba];ea+=e}if(ea!=ta)for(;ta<Pa.length;)Pa[ea++]=Pa[ta++];else ea=Pa.length;Aa?ia.y+=ea:Pa=n(Pa,0,ea)}else if(Aa){if(ia.y+=Fa,ta)for(ba=0;ba<Fa;++ba)Pa[ba]=Pa[ta+ba]}else ta&&(Pa= 24n(Pa,ta));return ia.b=Ya,Pa}B(2)}},Ba=function(fa,ia){if(1==fa.length)return fa[0];ia=new c(ia);for(var Aa=0,Ia=0;Aa<fa.length;++Aa){var Ga=fa[Aa];ia.set(Ga,Ia);Ia+=Ga.length}return ia};a.decompress=function(fa,ia){for(var Aa=[],Ia=+!ia,Ga,Ya=0;fa.length;){Ga=G(fa,Ia||ia);if("object"==typeof Ga){for(Ia?(ia=null,Ga.w.length==Ga.u&&(Aa.push(ia=Ga.w),Ya+=Ga.u)):(Aa.push(ia),Ga.e=0);!Ga.l;){var Pa=La(fa,Ga,ia);Pa||B(5);ia?Ga.e=Ga.y:(Aa.push(Pa),Ya+=Pa.length,r(Ga.w,0,Pa.length),Ga.w.set(Pa,Ga.w.length- 25Pa.length))}Ga=Ga.b+4*Ga.c}fa=fa.subarray(Ga)}return Ba(Aa,Ya)};D=function(){function fa(ia){this.ondata=ia;this.c=[];this.z=this.l=0}return fa.prototype.push=function(ia,Aa){if("number"==typeof this.s){var Ia=Math.min(ia.length,this.s);ia=ia.subarray(Ia);this.s-=Ia}Ia=ia.length+this.l;if(!this.s){if(Aa){if(!Ia)return void this.ondata(new c(0),!0);Ia<5&&B(5)}else if(Ia<18)return this.c.push(ia),void(this.l=Ia);if(this.l&&(this.c.push(ia),ia=Ba(this.c,Ia),this.c=[],this.l=0),"number"==typeof(this.s= 26G(ia)))return this.push(ia,Aa)}if("number"!=typeof this.s){if(Ia<(this.z||3)||(this.l&&(this.c.push(ia),ia=Ba(this.c,Ia),this.c=[],this.l=0),!this.z&&Ia<(this.z=2&ia[this.s.b]?4:3+(ia[this.s.b]>>3|ia[this.s.b+1]<<5|ia[this.s.b+2]<<13))))return Aa&&B(5),this.c.push(ia),void(this.l=Ia);for(this.z=0;;){Ia=La(ia,this.s);if(!Ia)return Aa&&B(5),Aa=ia.subarray(this.s.b),this.s.b=0,this.c.push(Aa),void(this.l+=Aa.length);if(this.ondata(Ia,!1),r(this.s.w,0,Ia.length),this.s.w.set(Ia,this.s.w.length-Ia.length), 27this.s.l)return ia=ia.subarray(this.s.b),this.s=4*this.s.c,void this.push(ia,Aa)}}else Aa&&B(5)},fa}();a.Decompress=D;return a});(()=>{function a(B=document,t=console.warn.bind(console)){B=B.querySelectorAll("[data-mdc-auto-init]");for(let da of B){B=da.dataset.mdcAutoInit;if(!B)throw Error("(mdc-auto-init) Constructor name must be given.");var G=u[B];if(typeof G!=="function")throw Error("(mdc-auto-init) Could not find constructor in registry for "+B);if(da[B]){t("(mdc-auto-init) Component already initialized for "+da+". Skipping...");continue}G=G.attachTo(da);
27Object.defineProperty(da,B,{value:G,writable:!1,enumerable:!1,configurable:!0})}document.dispatchEvent(new CustomEvent("MDCAutoInit:End", 28{detail:{}}))}class b{constructor(B){this.root_=B}static attachTo(B){return new this(B)}listen(B,t){this.root_.addEventListener(B,t)}unlisten(B,t){this.root_.removeEventListener(B,t)}emit(B,t,G=!1){this.root_.dispatchEvent(new CustomEvent(B,{detail:t,bubbles:G}))}}class c extends b{constructor(B,{unbounded:t=!1}={}){super(B);this.unbounded_=t||B.hasAttribute("data-mdc-ripple-is-unbounded");this.activated_=!1;this.deactivationTimer_=0;B.classList.add("mdc-ripple-upgraded");this.unbounded_&&(B.classList.add("mdc-ripple-upgraded--unbounded"), 29this.layout_());B.addEventListener("pointerdown",G=>this.activate_(G));B.addEventListener("focus",()=>B.classList.add("mdc-ripple-upgraded--background-focused"));B.addEventListener("blur",()=>B.classList.remove("mdc-ripple-upgraded--background-focused"))}static attachTo(B,t){return new c(B,t)}layout_(B){var t=this.root_.getBoundingClientRect(),G=Math.floor(Math.max(t.width,t.height)*.6),da=(Math.sqrt(t.width*t.width+t.height*t.height)+10)/G,Y=this.root_.style;Y.setProperty("--mdc-ripple-fg-size", 30G+"px");Y.setProperty("--mdc-ripple-fg-scale",String(da));this.unbounded_?(Y.setProperty("--mdc-ripple-left",Math.round((t.width-G)/2)+"px"),Y.setProperty("--mdc-ripple-top",Math.round((t.height-G)/2)+"px")):B&&(Y.setProperty("--mdc-ripple-fg-translate-start",B.clientX-t.left-G/2+"px, "+(B.clientY-t.top-G/2)+"px"),Y.setProperty("--mdc-ripple-fg-translate-end",(t.width-G)/2+"px, "+(t.height-G)/2+"px"))}activate_(B){if(!this.activated_){this.activated_=!0;this.layout_(B);var t=this.root_.classList; 31clearTimeout(this.deactivationTimer_);t.remove("mdc-ripple-upgraded--foreground-deactivation");t.add("mdc-ripple-upgraded--foreground-activation");var G=Date.now(),da=()=>{window.removeEventListener("pointerup",da);var Y=Date.now()-G;setTimeout(()=>{t.remove("mdc-ripple-upgraded--foreground-activation");t.add("mdc-ripple-upgraded--foreground-deactivation");this.deactivationTimer_=setTimeout(()=>{t.remove("mdc-ripple-upgraded--foreground-deactivation");this.activated_=!1},150)},Math.max(0,225-Y))}; 32window.addEventListener("pointerup",da)}}}class d extends b{constructor(B){super(B);this.input_=B.querySelector(".mdc-text-field__input");this.label_=B.querySelector(".mdc-floating-label");this.lineRipple_=B.querySelector(".mdc-line-ripple");B.classList.add("mdc-text-field--upgraded");this.input_&&(this.styleDisabled_(),this.disabledObserver_=new MutationObserver(()=>this.styleDisabled_()),this.disabledObserver_.observe(this.input_,{attributes:!0,attributeFilter:["disabled"]}),this.input_.addEventListener("focus", 33()=>this.activateFocus_()),this.input_.addEventListener("blur",()=>this.deactivateFocus_()));this.layout()}styleDisabled_(){this.root_.classList.toggle("mdc-text-field--disabled",this.input_.disabled)}get disabled(){return this.input_?this.input_.disabled:!1}set disabled(B){this.input_&&(this.input_.disabled=!!B)}floatLabel_(B){this.label_&&this.label_.classList.toggle("mdc-floating-label--float-above",B)}activateFocus_(){this.root_.classList.add("mdc-text-field--focused");this.floatLabel_(!0);this.lineRipple_&& 34this.lineRipple_.classList.add("mdc-line-ripple--active")}deactivateFocus_(){this.root_.classList.remove("mdc-text-field--focused");this.input_.value||this.floatLabel_(!1);this.root_.classList.toggle("mdc-text-field--invalid",!this.input_.validity.valid);this.lineRipple_&&this.lineRipple_.classList.remove("mdc-line-ripple--active")}layout(){if(this.input_){var B=document.activeElement===this.input_;this.floatLabel_(!!this.input_.value||B)}}get value(){return this.input_?this.input_.value:""}set value(B){this.input_&& 35(this.input_.value=B,this.input_.validity.valid&&this.root_.classList.remove("mdc-text-field--invalid"),this.layout())}}class f extends b{constructor(B){super(B);this.ripple_=new c(B,{unbounded:!0})}}class k extends b{constructor(B){super(B);this.ripple_=new c(B,{unbounded:!0})}}class n extends b{constructor(B){super(B);this.primaryBar_=B.querySelector(".mdc-linear-progress__primary-bar");this.determinate_=!B.classList.contains("mdc-linear-progress--indeterminate");this.progress_=0}set determinate(B){this.determinate_= 36B;this.root_.classList.toggle("mdc-linear-progress--indeterminate",!B);B&&this.setScale_()}set progress(B){this.progress_=B;this.determinate_&&this.setScale_()}setScale_(){this.primaryBar_&&(this.primaryBar_.style.transform="scaleX("+this.progress_+")")}open(){this.root_.classList.remove("mdc-linear-progress--closed")}close(){this.root_.classList.add("mdc-linear-progress--closed")}}class q extends b{constructor(B){super(B);this.itemsContainer_=B.querySelector(".mdc-menu__items");this.isOpen_=!1;this.previousFocus_= 37null;this.animationTimer_=0;this.documentClickHandler_=t=>{for(t=t.target;t&&t!==document.documentElement;t=t.parentElement)if(t.classList&&t.classList.contains("mdc-list-item"))return;
37this.emit("MDCMenu:cancel",{});this.hide()};B.addEventListener("click",t=>this.handlePossibleSelected_(t));B.addEventListener("keydown",t=>{t.key==="Escape"?(this.emit("MDCMenu:cancel",{}),this.hide()):t.key==="Tab"?this.hide():(t.key==="Enter"||t.key===" ")&&this.handlePossibleSelected_(t)&&t.preventDefault()})}get items(){return this.itemsContainer_? 38[...this.itemsContainer_.querySelectorAll(".mdc-list-item")]:[]}get open(){return this.isOpen_}handlePossibleSelected_(B){B=B.target;if(!B.classList||!B.classList.contains("mdc-list-item")||B.getAttribute("aria-disabled")==="true")return!1;var t=this.items.indexOf(B);if(t<0)return!1;this.emit("MDCMenu:selected",{index:t,item:B});this.hide();return!0}show(B){if(!this.isOpen_){this.isOpen_=!0;this.previousFocus_=document.activeElement;var t=this.root_.classList;clearTimeout(this.animationTimer_);t.remove("mdc-menu--animating-closed"); 39t.add("mdc-menu--animating-open");requestAnimationFrame(()=>{if(this.isOpen_){this.position_();t.add("mdc-menu--open");var G=B&&typeof B.focusIndex==="number"?B.focusIndex:-1,da=this.items;G>=0&&da[G]?da[G].focus():this.root_.focus();document.body.addEventListener("click",this.documentClickHandler_);this.animationTimer_=setTimeout(()=>t.remove("mdc-menu--animating-open"),120)}})}}hide(){if(this.isOpen_){this.isOpen_=!1;document.body.removeEventListener("click",this.documentClickHandler_);var B=this.root_.classList; 40clearTimeout(this.animationTimer_);B.remove("mdc-menu--animating-open");B.add("mdc-menu--animating-closed");B.remove("mdc-menu--open");this.animationTimer_=setTimeout(()=>B.remove("mdc-menu--animating-closed"),75);this.previousFocus_&&this.root_.contains(document.activeElement)&&this.previousFocus_.focus()}}position_(){var B=this.root_.style,t=this.root_.parentElement;if(t){var G=t.getBoundingClientRect();t=G.left+(this.itemsContainer_?this.itemsContainer_.offsetWidth:this.root_.offsetWidth)<=window.innerWidth; 41G=G.top+(this.itemsContainer_?this.itemsContainer_.offsetHeight:this.root_.offsetHeight)<=window.innerHeight;B.left=t?"0":"";B.right=t?"":"0";B.top=G?"0":"";B.bottom=G?"":"0";B.transformOrigin=(G?"top ":"bottom ")+(t?"left":"right")}}}class r extends b{constructor(B){super(B);this.tabs_=[...B.querySelectorAll(".mdc-tab")];this.indicator_=B.querySelector(".mdc-tab-bar__indicator");this.preventDefaultOnClick_=!1;this.foundation_={layoutIndicator_:()=>this.defaultLayoutIndicator_()};for(let t of this.tabs_)t.addEventListener("click", 42G=>{this.preventDefaultOnClick_&&G.preventDefault();this.activateTab_(t)});this.layout()}get activeTabIndex(){return this.tabs_.findIndex(B=>B.classList.contains("mdc-tab--active"))}set activeTabIndex(B){B=Number(B);if(B!==this.activeTabIndex){if(!(B>=0&&B<this.tabs_.length))throw Error("Out of bounds index specified for tab: "+B);requestAnimationFrame(()=>{var t=this.root_.querySelector(".mdc-tab--active");t&&t.classList.remove("mdc-tab--active");this.tabs_[B].classList.add("mdc-tab--active");this.foundation_.layoutIndicator_()})}}get preventDefaultOnClick(){return this.preventDefaultOnClick_}set preventDefaultOnClick(B){this.preventDefaultOnClick_= 43B}activateTab_(B){var t=this.root_.querySelector(".mdc-tab--active");t!==B&&(t&&t.classList.remove("mdc-tab--active"),B.classList.add("mdc-tab--active"),this.foundation_.layoutIndicator_(),this.emit("MDCTabBar:change",this))}layout(){this.foundation_.layoutIndicator_()}defaultLayoutIndicator_(){if(this.indicator_){var B=this.root_.querySelector(".mdc-tab.mdc-tab--active");if(B){var t=this.root_.getBoundingClientRect();t.width&&(B=B.getBoundingClientRect(),this.indicator_.style.transform="translateX("+ 44(B.left-t.left)+"px) scaleX("+B.width/t.width+")",this.indicator_.style.visibility="visible")}}}}var u=Object.create(null);a.register=(B,t)=>{u[B]=t};a.register("MDCRipple",c);a.register("MDCTextField",d);a.register("MDCCheckbox",f);a.register("MDCRadio",k);a.register("MDCLinearProgress",n);a.register("MDCMenu",q);a.register("MDCTabBar",r);window.mdc={autoInit:a,ripple:{MDCRipple:c},textField:{MDCTextField:d},checkbox:{MDCCheckbox:f},radio:{MDCRadio:k},linearProgress:{MDCLinearProgress:n},menu:{MDCMenu:q}, 45tabs:{MDCTabBar:r}}})();try{window.perfIndexEnd=window.perfIndex>1E12?Date.now()-window.perfIndex:Math.round(performance.now()-window.perfIndex)}catch(a){}
45const compressionStreamsSupported=typeof CompressionStream!=="undefined"&&typeof DecompressionStream!=="undefined"; 46function haltOnUnsupportedBrowser(){if(compressionStreamsSupported)return!1;console.error("Unsupported browser: CompressionStream/DecompressionStream missing (needs Safari/iOS 16.4+, Chrome/Edge 80+, Firefox 113+). Halting boot.");try{let a=document.querySelector('meta[name="viewport"]');a&&!a.content&&(a.content="width=device-width, initial-scale=1.0, user-scalable=yes");let b=document.querySelector("#initPage");if(b){let c=!!lexical(()=>keepaApp);b.innerHTML='<div style="min-height:100vh;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:1.5em;text-align:center;font:400 17px/1.5 -apple-system,BlinkMacSystemFont,\'Segoe UI\',Roboto,Helvetica,Arial,sans-serif;color:#333"><div style="max-width:22em"><h1 style="font-size:1.35em;font-weight:500;margin:0 0 .5em">'+ 47(c?"Your device is out of date":"Your browser is out of date")+'</h1><p style="margin:0">'+(c?"Keepa needs iOS 16.4 or later on an iPhone or iPad. On Android, update your device.":"Keepa needs iOS 16.4 or later on an iPhone or iPad, or an up-to-date browser on a computer.")+"</p></div></div>"}}catch(a){}return!0}const unsupportedBrowser=haltOnUnsupportedBrowser();let localStorageSupported=!1,localStorageIsPolyFill=!1,storagePolyFillHasDataCallback=null,progressBar,storage; 48const hasValidToken=()=>localStorageSupported&&storage.token!=null&&storage.token!="null"&&storage.token.length==64;function lexical(a){try{return a()}catch(b){}} 49function Deferred(a){var b="pending",c=[],d=null,f=[],k=[],n=[],q=null,r=!1,u=[],B,t=new Promise((ha,V)=>{B={resolve:ha,reject:V}});t.catch(()=>{});var G=(ha,V)=>{for(let O=0;O<ha.length;O++){let wa=ha[O];typeof wa==="function"?V(wa):wa&&typeof wa.length==="number"&&typeof wa!=="string"&&G(wa,V)}},da=ha=>G(ha,V=>{q===f?f.push(V):b==="resolved"?V.apply(void 0,c):b==="pending"&&f.push(V)}),Y=ha=>G(ha,V=>{q===k?k.push(V):b==="rejected"?V.apply(void 0,c):b==="pending"&&k.push(V)}),X=ha=>G(ha,V=>{r?n.push(V): 50(b==="pending"&&n.push(V),d&&V.apply(void 0,d))}),P=(ha,V,O,wa)=>{if(b==="pending"){b=ha;c=wa;O.length=0;ha==="resolved"?B.resolve():B.reject();q=V;try{for(ha=-1;++ha<V.length;)V[ha].apply(void 0,wa);V.length=0}finally{q=null}}},ka=(ha,V,O)=>{O&&X([O]);return t.then(()=>ha?ha.apply(void 0,c):c[0],()=>{if(!V)throw c[0];return V.apply(void 0,c)})},D={state:function(){return b},done:function(){da(arguments);return this},fail:function(){Y(arguments);return this},always:function(){da(arguments);Y(arguments); 51return this},progress:function(){X(arguments);return this},then:function(ha,V,O){return ka(ha,V,O)},catch:function(ha){return ka(void 0,ha)},promise:function(ha){return ha!=null?Object.assign(ha,D):W}},W=Object.assign({},D),N=Object.assign({},D,{resolve:function(){P("resolved",f,k,[...arguments]);return this},reject:function(){P("rejected",k,f,[...arguments]);return this},notify:function(){if(b!=="pending")return this;u.push([...arguments]);if(r)return this;r=!0;try{for(;u.length;){d=u.shift();let ha= 52-1;for(;++ha<n.length;)n[ha].apply(void 0,d)}}finally{r=!1,u.length=0}return this}});a&&a.call(N,N);return N} 53const isOpera=!!window.opr&&!!opr.addons||!!window.opera||navigator.userAgent.indexOf(" OPR/")>=0,isFirefox=navigator.userAgent.indexOf("Firefox")>-1,isSafari=!!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/),isIE=!!document.documentMode,isEdge=/Edg\//.test(navigator.userAgent),isChrome=/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)&&!/Edg|OPR|Brave/.test(navigator.userAgent),isBlink=(isChrome||isOpera)&&!!window.CSS,is30108=location.hostname==="localhost"&&location.port=== 54"30108",isTest=/test\.keepa/.test(location.href)||/keepa.com\/test/.test(location.href)||is30108,ajaxHost=is30108?"dyn.keepa.com":"dyn-2.keepa.com";let scriptSource=document.querySelector('script[src$="keepa.js"]')?.getAttribute("src");scriptSource=scriptSource?scriptSource.split("/").slice(-2,-1)[0]:Date.now();let isIframe=window.location.href.indexOf("keepa.com/keepaBox")!==-1;keepaApp&&(isIframe=!0);var isMobile=!1;try{isMobile=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(a){} 55let storagePolyFillHasData=!1,waitForExtensionStorage=!1,extensionTokenAnswer="unanswered",extensionTokenAskedAt=0;const EXTENSION_TOKEN_WAIT_MS=3500,extensionDetected=()=>isIframe&&!keepaApp||document.readyState==="loading"||document.getElementById("extension")!=null;let extensionNeedsToken=!1;const mayPushGuestToken=()=>extensionNeedsToken;let tokenIsIssuedGuest=!1,languagePromise=Deferred(),gridJsPromise=Deferred();const GRID_LOAD_FAILED="Failed to load grid.js: "; 56let sellerNamePromises={},sellerNameCache={},keepaBoxInit={},inputDetected=isMobile,dealsQueued=!1;function enableWebsiteFeatures(){inputDetected||(inputDetected=!0,dealsQueued&&(dealsQueued=!1,window.location.hash.split("/")[0]==="#!deals"&&generateDeals()))}document.addEventListener("mousemove",enableWebsiteFeatures,{once:!0});document.addEventListener("keydown",enableWebsiteFeatures,{once:!0});document.addEventListener("touchstart",enableWebsiteFeatures,{once:!0}); 57const compressionEncoder=new TextEncoder,compressionDecoder=new TextDecoder;async function decompress(a,b){try{let c=new DecompressionStream(b?"deflate-raw":"deflate"),d=c.writable.getWriter();d.write(a instanceof Uint8Array?a:new Uint8Array(a)).catch(()=>{});d.close().catch(()=>{});return compressionDecoder.decode(await (new Response(c.readable)).arrayBuffer())}catch(c){throw console.log("Decompression failed: ",c),c;}} 58async function compress(a,b){try{let c=new CompressionStream(b?"deflate-raw":"deflate"),d=c.writable.getWriter();d.write(compressionEncoder.encode(a)).catch(()=>{});d.close().catch(()=>{});return new Uint8Array(await (new Response(c.readable)).arrayBuffer())}catch(c){throw console.log("Compression failed: ",c),c;}} 59const decompressFrame=(()=>{var a=new TextDecoder;return async function(b){try{if((new DataView(b)).getUint32(0,!0)===4247762216){let c=fzstd.decompress(new Uint8Array(b));return tryParseJSON(a.decode(c))}return tryParseJSON(a.decode(new Uint8Array(b)))}catch(c){console.error("decodeJson failed:",c)}}})();async function compressAndConvertToBase64(a){try{let b=await compress(a,!0);return btoa(String.fromCharCode.apply(null,b))}catch(b){return console.error("An error occurred:",b),null}} 60async function decompressFromBase64(a){a=Uint8Array.from(atob(a),b=>b.charCodeAt(0));return decompress(a,!0)} 61const polyFillLocalStorage=()=>{localStorageIsPolyFill=!0;var a={};class b{getItem(d){d=String(d);return a.hasOwnProperty(d)?String(a[d]):null}setItem(d,f){a[String(d)]=String(f)}removeItem(d){delete a[String(d)]}clear(){a={}}key(d){if(arguments.length===0)throw new TypeError("Failed to execute 'key' on 'Storage': 1 argument required, but only 0 present.");return Array.from(Object.keys(a))[d]}
61forEach(d){Object.entries(a).forEach(([f,k])=>{d(f,k)})}toJSON(d){return JSON.stringify(a)}get length(){return Object.keys(a).length}} 62var c=new b;storage=c;storage=new Proxy(c,{set:function(d,f,k){b.prototype.hasOwnProperty(f)?c[f]=k:c.setItem(f,k);return!0},get:function(d,f){if(b.prototype.hasOwnProperty(f))return c[f];if(a.hasOwnProperty(f))return c.getItem(f)},has:function(d,f){return a.hasOwnProperty(f)}})}; 63try{function a(c,d){var f=b();return a=function(k,n){return f[k-343]},a(c,d)}var E=a,J=a;(function(c,d){var f=a,k=a;for(c=c();;)try{if(-parseInt(f(349))*(-parseInt(f(348))/2)+parseInt(f(358))/3*(-parseInt(f(353))/4)+parseInt(f(350))/5*(parseInt(f(357))/6)+parseInt(f(355))/7*(-parseInt(k(344))/8)+-parseInt(f(354))/9+parseInt(f(356))/10+-parseInt(k(345))/11*(parseInt(f(343))/12)===d)break;else c.push(c.shift())}catch(n){c.push(c.shift())}})(b,775400);compressAndConvertToBase64(window[E(346)+E(352)][E(347)+ 64"t"])[J(351)](c=>{window.h=c});function b(){var c="then ation 74668qAxDjI 2994534LNDmnt 13237mcIUXi 11451490inhEZL 12naETKK 129bJAdmb 36BpophJ 1016vlTPbb 633369AjLHuN loc hos 2dYEtmf 966378XOKFnL 530435JIyYwp".split(" ");b=function(){return c};return b()}}catch(a){console.log(a)}const deferredStorage={}; 65function sendReceive(a){var b=Deferred(),c=Date.now()+""+Math.floor(1E4*Math.random());a.key=="ping"?deferredStorage.pong=b:deferredStorage[c]=b;window.parent.postMessage({key:a.key,value:a.value,id:c,origin:"keepaIframe",location:""+document.location},"*");return b.promise()}let amznpopupwin=null; 66function openPopup(a){var b=Deferred(),c="Popup"+Date.now()+Math.floor(1E4*Math.random());deferredStorage[c]=b;amznpopupwin=window.open(a,c,popupSettings);if(!amznpopupwin)return b.reject(),b.promise();var d=setInterval(function(){amznpopupwin.closed&&(clearInterval(d),b.reject())},500);b.done(function(){clearInterval(d)});return b.promise()} 67function initContentScriptListener(){var a=b=>{if(b.data.key=="updateASIN"){let d=b.data;if(d.value.d){if(keepaBoxInit.asin!=d.value.a||keepaBoxInit.domainId!=d.value.d){keepaBoxInit.asin=d.value.a;keepaBoxInit.domainId=d.value.d;keepaBoxInit.url=d.value.url;if(!lexical(()=>initRun))return;var c=document.getElementById("detailProductPage");c&&(c.innerHTML='<div style="margin-top: 60px">'+window.loader(.75,1)+"</div>");loadProductIFrame(!0)}d.value.eVersion&&setTimeout(()=>{try{let f={browser:browserInfo(), 68type:d.value.eType,version:d.value.eVersion,scriptSource,date:Date.now()};storage.extension=JSON.stringify(f);settings.send()}catch(f){}},3E3)}}if(b.data.key=="updateTokenWebsite"){let d=b.data.value;setTimeout(()=>{d!=network.wsToken()&&(isTest||document.location.reload())},500)}else c=deferredStorage[b.data.id],delete deferredStorage[b.data.id],c||b.data.key!="ping"&&b.data.key!="pong"||(c=deferredStorage.pong,delete deferredStorage.pong),c&&c.resolve(b.data)};window.addEventListener("message", 69function(b){b.data&&b.data.origin&&(b.data.origin=="keepaContentScript"||b.data.origin=="keepaBoxHost")&&a(b)},!1)}isTest&&isIframe&&(keepaBoxInit.asin="B0F9FC5VJC",keepaBoxInit.domainId=2);let currencyDomainId=0,calledOnReady=!1; 70const getTokenFromExtension=a=>{isIframe&&(setTimeout(()=>{calledOnReady||(lockPromiseResolve(),document.querySelectorAll(".pLText").forEach(b=>{b.innerHTML='<div style="background-color: #f9f9f9; padding: 20px; border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);">\n\t\t\tPlease make sure to exclusively utilize our latest <a target="_blank" href="https://get.keepa.com" style="color: #007bff; text-decoration: none;">browser extension</a>.\n\t\t</div>'}))},6E4),setTimeout(()=>{calledOnReady|| 71network.ajax({url:"app/stats/?type=failedExtensionInit&host="+server[serverIndex],type:"GET",dataType:"json"},!0)},1E4));extensionTokenAskedAt==0&&(extensionTokenAskedAt=Date.now(),setTimeout(()=>{extensionTokenAnswer!=="unanswered"||extensionDetected()||(extensionTokenAnswer="none")},EXTENSION_TOKEN_WAIT_MS));sendReceive({key:"getToken"}).done(function(b){if(isIframe){b.value.a!=null||b.value.url?.indexOf("keepa.com")>-1||console.error("missing asin: "+JSON.stringify(b.value));keepaBoxInit.asin= 72b.value.a;keepaBoxInit.domainId=b.value.d;keepaBoxInit.url=b.value.url;try{b.value.eVersion&&setTimeout(()=>{try{let d={browser:browserInfo(),type:b.value.eType,version:b.value.eVersion,scriptSource,date:Date.now()};storage.extension=JSON.stringify(d)}catch(d){}},3E3)}catch(d){console.error(d)}try{if(b.value.a!=null){var c=b.value.a.match(verifyRegExp.asin);(!c||c[1].length<10)&&console.error("invalid asin: "+JSON.stringify(b.value))}}catch(d){console.error(d)}}extensionTokenAnswer=(c=b.value.token)&& 73c.length==64?"has":c===null?"none":"failed";extensionNeedsToken=extensionTokenAnswer==="none"&&b.value.needsToken===!0;if(extensionTokenAnswer==="has"&&(storagePolyFillHasData=!0,storage.token!=c)){let d=lexical(()=>
73settings);d?d.setToken(c,!1):storage.token=c}b.value&&b.value.install&&b.value.install>0&&(storage.install=b.value.install);console.log("e: "+b.value.a+" "+b.value.d+" "+b.value.url+" "+b.value.eVersion);if(!calledOnReady)if(calledOnReady=!0,lexical(()=>onready)===void 0){let d=-2;d=setInterval(()=> 74{lexical(()=>onready)!==void 0&&(clearInterval(d),onready(!1))},300)}else onready(!1)})};window.initTimestamp=0;window.lockTimestamp=Date.now();window.settingsLoadedTimestamp=0;window.networkInitTimestamp=0;let lockPromiseResolve,lockPromiseReject;const lockPromise=new Promise((a,b)=>{lockPromiseResolve=a;lockPromiseReject=b});setTimeout(lockPromiseResolve,3E4); 75function synchronous(){window.initTimestamp=Date.now();try{initContentScriptListener();let a="test_localstorage_available_"+Date.now();localStorage.setItem(a,a);let b=localStorage.getItem(a);localStorage.removeItem(a);for(let c in localStorage)(c.indexOf("_localstorage_available_")>0||c.startsWith("__$")||c==="fp")&&localStorage.removeItem(c);if(a===b)localStorageSupported=!0,storage=window.localStorage;else throw Error("localStorage not supported / accessible.");currencyDomainId=isNaN(Number(storage.currencyDomainId))? 760:Number(storage.currencyDomainId);isTest||(waitForExtensionStorage=!0,getTokenFromExtension(!1),isIframe?setTimeout(()=>{calledOnReady||getTokenFromExtension(!1)},5E3):setTimeout(()=>{if(!calledOnReady)if(typeof onready=="undefined"){let c=-2;c=setInterval(()=>{typeof onready!="undefined"&&(clearInterval(c),calledOnReady||(calledOnReady=!0,onready(!1)))},300)}else calledOnReady=!0,onready(!1)},300))}catch(a){if(isIframe||keepaApp)localStorageSupported=!0,polyFillLocalStorage(!0),console.log("isolated context", 77localStorageIsPolyFill),localStorageIsPolyFill&&!keepaApp&&(waitForExtensionStorage=!0,getTokenFromExtension(!0),isIframe||setTimeout(()=>{calledOnReady||(calledOnReady=!0,onready(!1))},3E3));else try{localStorage.clear(),serviceWorker.unregister(),indexedDB.deleteDatabase("keepa"),showPopup("Browser mode unsupported",'Your web browser does not support storing settings locally (all cookies blocked).<br>In Safari, the most common cause of this is using "Private Browsing Mode". Some settings may not save or some features may not work properly for you.', 78!0)}catch(b){console.error(b)}}setTimeout(function(){try{isTest||serviceWorker.register()}catch(a){console.log(a)}try{if(!waitForExtensionStorage||storagePolyFillHasData)if(lexical(()=>onready)===void 0){let a=setInterval(()=>{lexical(()=>onready)!==void 0&&(clearInterval(a),calledOnReady||(calledOnReady=!0,onready(!1)))},100)}else calledOnReady||(calledOnReady=!0,onready(!1));isIframe&&!is30108&&sendReceive({key:"ping"}).done(function(a){var b=lexical(()=>iframe);b&&(b.parent=a.location||a.value.location)})}catch(a){console.log(a), 79setTimeout(function(){onready(!1)},1E3)}},0)}if(!unsupportedBrowser)if(keepaApp)synchronous();else try{navigator.locks.request("keepaInit",async a=>{try{synchronous(),await lockPromise}catch(b){console.log("Error during lock request",b)}}).catch(a=>{console.log("web lock api error",a);synchronous()})}catch(a){console.log("web lock api not supported"),synchronous()}let hasDataAccessSubscription=!1,activeWebSocketRequests=0,batchProductQueue=null,batchSellerQueue=null; 80const taskQueue=function(a,b){if(!(b>0))throw Error("Concurrency must not be zero");var c=[],d=0,f=0,k=!1,n=!1,q=function(){if(!k){for(k=!0;!u.paused&&f<b&&d<c.length;){let B=c[d];c[d++]=null;d>512&&d*2>=c.length&&(c=c.slice(d),d=0);f++;let t=!1;a(B,function(){if(t)throw Error("Callback was already called.");t=!0;f--;u.idle()&&u.drain();q()})}k=!1}},r=function(){n||(n=!0,setTimeout(function(){n=!1;q()},0))},u={paused:!1,drain:function(){},push:function(B){c.push(B);r()},idle:function(){return c.length- 81d+f===0},pause:function(){u.paused=!0},resume:function(){u.paused!==!1&&(u.paused=!1,r())},kill:function(){u.drain=function(){};c=[];d=0}};return u},callbackTimeout=function(a,b){return function(c){var d=!1,f=setTimeout(function(){if(!d){d=!0;var k=Error('Callback function "'+(a.name||"anonymous")+'" timed out.');k.code="ETIMEDOUT";c(k)}},b);a(function(){d||(d=!0,clearTimeout(f),c.apply(null,arguments))})}},displayBeforeHide=new WeakMap,showElements=a=>
81{if(a)for(let b of a.nodeType?[a]:a)b.style.display=== 82"none"&&(b.style.display=displayBeforeHide.get(b)||""),b.style.display===""&&getComputedStyle(b).display==="none"&&(b.style.display="block")},hideElements=a=>{if(a)for(let b of a.nodeType?[a]:a)b.style.display!=="none"&&displayBeforeHide.set(b,b.style.display),b.style.display="none"},network=function(){function a(g){try{typeof g.url==="string"&&(g.url=g.url.replace(fa,"$1[redacted]")),g.t=Math.round(performance.now()),Ba.length>=25&&Ba.shift(),Ba.push(g)}catch(m){}}function b(g){if(g.categoryIds== 83null||g.categoryIds.length!==1)return!1;g=Number(g.categoryIds[0]);return g===-1||g===-2}function c(){try{indexedDB.deleteDatabase("keepa")}catch(m){}try{indexedDB.deleteDatabase("keepaCache")}catch(m){}try{indexedDB.deleteDatabase("keepaCacheMeta")}catch(m){}var g=(m,w)=>w?.target?.error??Error(`IndexedDB ${m} failed without an error object`);Fa={database:null,databaseMeta:null,initDatabase:function(m){var w=this;if(window.indexedDB)try{Promise.all([w.openDatabase("keepa2Cache",1,"cache"),w.openDatabase("keepa2CacheMeta", 841,"cacheMeta")]).then(I=>{var [S,ma]=I;w.database=S;w.databaseMeta=ma;Promise.all([w.getItem(S,"cache","test"),w.getItem(ma,"cacheMeta","test")]).then(()=>{m(!0)}).catch(Q=>{console.log(Q);m(!1)})}).catch(I=>{console.error(I);m(!1)})}catch(I){m(!1)}else m(!1)},openDatabase:(m,w,I)=>new Promise((S,ma)=>{try{let Q=indexedDB.open(m,w);Q.onupgradeneeded=function(l){l=l.target.result;l.objectStoreNames.contains(I)||l.createObjectStore(I)};Q.onsuccess=function(l){S(l.target.result)};Q.onerror=function(l){ma(g("open", 85l))}}catch(Q){ma(Q)}}),getItem:(m,w,I)=>new Promise((S,ma)=>{try{let Q=m.transaction([w],"readonly").objectStore(w).get(I);Q.onsuccess=function(){S(Q.result)};Q.onerror=function(l){ma(g("get",l))}}catch(Q){ma(Q)}}),getItems:(m,w,I)=>new Promise((S,ma)=>{if(I.length===0)S([]);else try{let Q=m.transaction([w],"readonly").objectStore(w),l=[],M=0,na=!1;I.forEach((U,L)=>{var ra=Q.get(U);ra.onsuccess=function(){na||(l[L]=ra.result,++M===I.length&&S(l))};ra.onerror=function(Da){na||(na=!0,ma(g("get batch", 86Da)))}})}catch(Q){ma(Q)}}),setItem:(m,w,I,S)=>new Promise((ma,Q)=>{try{let l=m.transaction([w],"readwrite").objectStore(w).put(S,I);l.onsuccess=function(){ma()};l.onerror=function(M){Q(g("put",M))}}catch(l){Q(l)}}),setItems:(m,w,I)=>new Promise((S,ma)=>{if(I.length===0)S();else try{let Q=m.transaction([w],"readwrite"),l=Q.objectStore(w);for(let M of I)l.put(M.value,M.key);Q.oncomplete=function(){S()};Q.onerror=function(M){ma(g("put batch failed",M))};Q.onabort=function(M){ma(g("put batch aborted", 87M))}}catch(Q){ma(Q)}}),clearDatabase:function(){try{this.database.transaction(["cache"],"readwrite").objectStore("cache").clear(),this.databaseMeta.transaction(["cacheMeta"],"readwrite").objectStore("cacheMeta").clear()}catch(m){console.error("clearDatabase error",m)}},keepaTime:{now:function(){return Math.floor(Date.now()/6E4-21564E3)},minutesToEpoch:function(m){return(m+21564E3)*6E4},epochToMinutes:function(m){return Math.round(m/6E4)-21564E3},timeShiftOffset:-(new Date).getTimezoneOffset()},removeOutdatedCacheEntries:function(){var m= 88this,w=Date.now();try{m.getItem(m.databaseMeta,"cacheMeta","lastClear").then(function(I){function S(M){if(M=M.target.result){if(M.key!=="lastClear"){var na=M.value;na?w-na.cached>na.ttl?(Q.push(M.key),M.delete()):na.type==="cat"&&l.push({key:M.key,cached:na.cached}):(Q.push(M.key),M.delete())}M.continue()}else{if(l.length>m.categoryMaxEntries)for(l.sort((U,L)=>U.cached-L.cached),M=l.length-m.categoryMaxEntries,na=0;na<M;na++)Q.push(l[na].key),ma.delete(l[na].key);if(Q.length&&m.database?.objectStoreNames?.contains("cache")){let U= 89m.database.transaction("cache","readwrite").objectStore("cache");Q.forEach(function(L){U.delete(L)})}}}I===null&&(I=0);if(!(w-I<3E5)){m.setItem(m.databaseMeta,"cacheMeta","lastClear",w).catch(()=>{});var ma=m.databaseMeta.transaction("cacheMeta","readwrite").objectStore("cacheMeta"),Q=[],l=[];I=ma.openCursor();I.onsuccess=function(M){try{S(M)}catch(na){}};I.onerror=function(M){console.error("Cursor error: ",M.target.error)}}}).catch(function(I){})}catch(I){console.error("Exception in removeOutdatedCacheEntries: ", 90I)}},addProduct:async function(m){try{let M=m.pr,na=M.csv!=null;if(!na||!(M.csv[0]==null||M.csv[3]&&M.csv[3].length===2&&M.csv[3][1]===-2)){var w=M.domainId+M.asin+"h"+(na?"1":"0"),I=Date.now(),S=na?M.csv[15]:null,ma=S==null||S.length==0?-1:S[S.length-2];S=!1;ma>0&&I-this.keepaTime.minutesToEpoch(ma)<18E4&&(S=!0);var Q=JSON.stringify(M);
90await this.setItem(this.databaseMeta,"cacheMeta",w,{g:M.g,extra:S,cached:I,ttl:m.ttl,type:"pr"});var l=await compress(Q,!0);await this.setItem(this.database,"cache", 91w,l)}}catch(M){console.error("5: "+M)}},getProduct:function(m,w,I){var S=this;try{let ma=m.domainId+m.asin+"h"+(m.history?"1":"0");S.getItem(S.databaseMeta,"cacheMeta",ma).then(Q=>{Q==null?w(null):m.offerPages>0&&!Q.extra?w(null):S.getItem(S.database,"cache",ma).then(async l=>{l==null?w(null):(l=await decompress(new Uint8Array(l),!0),l=JSON.parse(l),w({data:l,cached:Q.cached}))}).catch(l=>{console.error("Error retrieving data: ",l);w(null)})}).catch(Q=>{console.error("Error retrieving metadata: ", 92Q);w(null)})}catch(ma){w(null),console.error("8; "+ma)}},trackingKeyPrefix:"tr",addComTracking:function(m){try{let S=this,ma=m.tr;if(ma&&ma.length!==0&&ma[0]!=null){var w=S.trackingKeyPrefix+ma[0].asin,I=Date.now();S.setItem(S.databaseMeta,"cacheMeta",w,{cached:I,ttl:m.ttl,type:"tr"}).then(async()=>{var Q=await compress(JSON.stringify(ma),!0);return S.setItem(S.database,"cache",w,Q)}).catch(Q=>{console.error("Error setting item: ",Q)})}}catch(S){console.error("Error in addComTracking: ",S)}},getComTracking:function(m, 93w,I){var S=this;try{let ma=S.trackingKeyPrefix+m.asin;S.getItem(S.databaseMeta,"cacheMeta",ma).then(async function(Q){Q==null?w.call(I,null):S.getItem(S.database,"cache",ma).then(async function(l){if(l==null)w.call(I,null);else try{let M=await decompress(new Uint8Array(l),!0),na=JSON.parse(M);w.call(I,{data:na,cached:Q.cached})}catch(M){console.error("Decompression error:",M),w.call(I,null)}}).catch(function(l){console.error("Error retrieving data from cache:",l);w.call(I,null)})}).catch(function(Q){console.error("Error retrieving metadata from cacheMeta:", 94Q);w.call(I,null)})}catch(ma){console.error("Unexpected error in getComTracking:",ma),w.call(I,null)}},categoryTTL:1296E5,categoryMaxEntries:1E4,categoryKey:(m,w)=>"cat"+m+"-"+w,categoryRootKey:(m,w)=>"cr"+m+"-"+w+(isTest?"t":""),addCategories:async function(m,w){try{if(m.path==="pro/category"){var I=w.categories,S=w.categoryNames;if(I!=null||S!=null){var ma=Number(m.domainId);if(Number.isFinite(ma)&&ma!==0){var Q=Date.now(),l=I!=null,M=l?m.type==="name"?0:m.type==="basic"?1:2:0,na=b(m),U=M===2&& 95(na||m.type==="tree"),L=l&&m.includeTrees===!0,ra=w.categoryTrees;w=[];var Da=[],Ea=[];I=l?I:S;for(let oa in I){let Ja=I[oa];if(Ja==null)continue;let Ha=Number(l?Ja.catId??oa:oa);if(!Number.isFinite(Ha))continue;w.push(Ha);let ya=this.categoryKey(ma,Ha);Da.push({key:ya,value:{cached:Q,ttl:this.categoryTTL,type:"cat",schema:2,level:M,rel:U,tree:L}});Ea.push({key:ya,value:l?JSON.stringify({r:Ja,t:L?ra?.[Ha]??null:null}):JSON.stringify({n:Ja})})}if(l&&na&&w.length>0){let oa=this.categoryRootKey(ma,Number(m.categoryIds[0])); 96Da.push({key:oa,value:{cached:Q,ttl:this.categoryTTL,type:"catroot"}});Ea.push({key:oa,value:JSON.stringify(w)})}await this.setItems(this.databaseMeta,"cacheMeta",Da);await this.setItems(this.database,"cache",Ea)}}}}catch(oa){console.error("Error in addCategories: ",oa)}},addProductCategories:async function(m){try{let M=new Map;for(var w of m){m=w?.salesRankCategories;if(m==null)continue;var I=Number(w.domainId);if(!Number.isFinite(I)||I===0)continue;var S=w.salesRankCategoryTrees;for(let na in m){let U= 97m[na];if(U==null)continue;let L=Number(U.catId??na);if(!Number.isFinite(L))continue;let ra=this.categoryKey(I,L);if(M.has(ra))continue;let Da=S?.[L]??null;M.set(ra,{json:JSON.stringify({r:U,t:Da}),hasTree:Da!=null})}}if(M.size!==0){var ma=[...M.keys()],Q=Date.now(),l=await this.getItems(this.databaseMeta,"cacheMeta",ma);w=[];I=[];for(S=0;S<ma.length;S++){let na=l[S];if(na!=null&&Q-na.cached<=na.ttl)continue;let U=M.get(ma[S]);w.push({key:ma[S],value:{cached:Q,ttl:this.categoryTTL,type:"cat",schema:2, 98level:2,rel:!1,tree:U.hasTree}});I.push({key:ma[S],value:U.json})}w.length!==0&&(await this.setItems(this.databaseMeta,"cacheMeta",w),await this.setItems(this.database,"cache",I))}}catch(M){console.error("Error in addProductCategories: ",M)}},removeCategory:function(m,w){try{let I=this.categoryKey(Number(m),Number(w));this.databaseMeta.transaction(["cacheMeta"],"readwrite").objectStore("cacheMeta").delete(I);this.database.transaction(["cache"],"readwrite").objectStore("cache").delete(I)}catch(I){console.error("Error in removeCategory: ", 99I)}},getCategories:function(m,w){var I=this;try{let Ea=Number(m.domainId);if(Number.isFinite(Ea)&&Ea!==0){var S=Date.now(),ma=m.type==="name"?0:m.type==="basic"?1:2,Q=ma===0,l=m.type==="tree",M=m.includeTrees===!0,na=b(m),U=(oa,Ja)=>{var Ha=oa.map(ya=>I.categoryKey(Ea,ya));
99I.getItems(I.databaseMeta,"cacheMeta",Ha).then(ya=>{var za=[],cb=[],fb=[...Ja];for(let pb=0;pb<oa.length;pb++){let ob=ya[pb];ob==null||S-ob.cached>ob.ttl||ob.schema!==2||!(ob.level>=ma)||l&&!ob.rel||M&&!ob.tree?fb.push(oa[pb]): 100(za.push(oa[pb]),cb.push(Ha[pb]))}na&&fb.length>0?w(null):cb.length===0?w({categories:{},categoryNames:null,categoryTrees:null,missing:fb}):I.getItems(I.database,"cache",cb).then(pb=>{var ob={},ub=Q?{}:null,Rb=M?{}:null;for(let va=0;va<pb.length;va++){var T=null;try{pb[va]!=null&&(T=JSON.parse(pb[va]))}catch(Ma){}T==null?fb.push(za[va]):Q?(T=T.r!=null?T.r.name:T.n,T==null?fb.push(za[va]):ub[za[va]]=T):T.r==null?fb.push(za[va]):(ob[za[va]]=T.r,M&&T.t!=null&&(Rb[za[va]]=T.t))}na&&fb.length>0?w(null): 101w({categories:ob,categoryNames:ub,categoryTrees:Rb,missing:fb})}).catch(pb=>{console.error("Error retrieving categories: ",pb);w(null)})}).catch(ya=>{console.error("Error retrieving category metadata: ",ya);w(null)})};if(na){let oa=I.categoryRootKey(Ea,Number(m.categoryIds[0]));I.getItem(I.databaseMeta,"cacheMeta",oa).then(Ja=>{Ja==null||S-Ja.cached>Ja.ttl?w(null):I.getItem(I.database,"cache",oa).then(Ha=>{var ya=null;try{Ha!=null&&(ya=JSON.parse(Ha))}catch(za){}Array.isArray(ya)&&ya.length!==0?U(ya, 102[]):w(null)}).catch(Ha=>{console.error("Error retrieving root categories: ",Ha);w(null)})}).catch(Ja=>{console.error("Error retrieving root category metadata: ",Ja);w(null)})}else{var L=[],ra=[],Da=new Set;for(let oa of m.categoryIds){let Ja=Number(oa);Number.isFinite(Ja)?Da.has(Ja)||(Da.add(Ja),L.push(Ja)):ra.push(oa)}U(L,ra)}}else w(null)}catch(Ea){console.error("Unexpected error in getCategories: ",Ea),w(null)}}};Fa.initDatabase(function(m){bb=m})}function d(g,m){f(g,m).catch(w=>{g.state()==="pending"&& 103g.reject({error:"requestFailed",message:"The request could not be sent."});reportBug(w);console.log(w)})}async function f(g,m){P||(P=document.getElementById("networkBar"),ka=document.getElementById("networkOverlay"));isIframe&&(m.ikb=isIframe);if(Sa){Sa=!1;storage.install&&Number(storage.install)>0&&(m.install=Number(storage.install));try{var w=S,I=S;(function(Q,l){var M=S,na=S;for(Q=Q();;)try{if(parseInt(M(275))/1+parseInt(na(285))/2+parseInt(M(280))/3+-parseInt(na(276))/4*(-parseInt(M(278))/5)+ 104parseInt(na(284))/6+-parseInt(na(277))/7+parseInt(na(288))/8*(-parseInt(M(293))/9)===l)break;else Q.push(Q.shift())}catch(U){Q.push(Q.shift())}})(ma,261576);m.l=window[w(289)+w(292)]["loc"+w(281)][w(290)+"t"];m.u=window[w(289)+w(292)][I(283)+w(281)][w(282)]+window[w(289)+I(292)][I(283)+w(281)][w(286)];m.ua=window[I(279)+w(291)]["us"+I(287)+"gent"];m.h=h;function S(Q,l){var M=ma();return S=function(na,U){return M[na-275]},S(Q,l)}function ma(){var Q="3001092hrGRyG 265288DORvzm search erA 2002488GtQInY docum hos ator ent 36nFxlrK 203876uCVPem 11492oFRLWD 1207724yJYdXY 205PneYJh navig 1442571lyOHSF ation pathname loc".split(" "); 105ma=function(){return Q};return ma()}}catch(S){console.log(S)}}m.id=Number(Ra++);m.version||(m.version=scriptSource);!m.user&&hasValidToken()&&storage.token!=db&&(m.user=storage.token);m.user&&(db=m.user);w=await compress(JSON.stringify(m),!1);if(activeWebSocketRequests==0&&m.path!="service/features")try{progressBar.open()}catch(S){}m.path!="service/features"&&activeWebSocketRequests++;a({path:m.path,type:m.type,version:m.version});iframe.parent&&(keepaApp&&(iframe.parent="Keepa_App"),m.keepaBoxParent= 106iframe.parent,delete iframe.parent);iframe.isIframe&&(m.keepaBoxReferrer=document.referrer);ea!=2&&(ea=1,ia=storage.token);ta.push(w);da(!1);O&&O.readyState===WebSocket.OPEN&&k();w=Deferred();w.cachedData=g.cachedData;w.cachedType=g.cachedType;m.path==="pro/category"&&(w.categoryRequest=m);Pa.has(m.path)&&(w.quietErrors=!0);w.path=m.path;Ya[""+m.id]=w;isTest&&(m.timeStamp=Date.now());w.promise().always(()=>{m.path!="service/features"&&(activeWebSocketRequests=Math.max(0,--activeWebSocketRequests)); 107if(activeWebSocketRequests==0)try{progressBar.close()}catch(S){}}).done(S=>{g.resolve(S)}).fail(S=>{S!=="retry"||m.isRetry?g.reject(S):(m.isRetry=!0,d(g,m))}).progress(S=>{g.notify(S)})}function k(){for(;ta.length>0&&O&&O.readyState===WebSocket.OPEN;){let g=ta.shift();O.send(g)}}function n(g,m,w){g=w??{};g.categories={...(m.categories??{}),...(g.categories??{})};m.categoryNames!=null&&(g.categoryNames={...m.categoryNames,...(g.categoryNames??{})});m.categoryTrees!=null&&(g.categoryTrees={...m.categoryTrees, 108...(g.categoryTrees??{})});return g}async function q(g){if(g.products&&g.products.length>0){var m=g.products.map(I=>I&&I.domainId!=null&&I.asin!=null?I.domainId+"-"+I.asin:null).filter(I=>I!==null);if(m.length===0)console.warn("No valid product keys found to check/set visited status.");else{var w=new Map;try{let I=await urlStore.getBatch(m);m.forEach((S,ma)=>{I[ma]!==void 0&&w.set(S,!0)})}catch(I){console.error("Error retrieving visited status from UrlStore:",I)}for(m=0;m<g.products.length;m++){let I= 109g.products[m];I&&I.domainId!=null&&I.asin!=null?w.has(I.domainId+"-"+I.asin)?I.visited=!0:I.visited=!1:I.visited=!1}}}}function r(g){if(localStorageSupported){var m=Date.now()+g;if(Ta!=null){if(m>=ba)return;clearTimeout(Ta)}ba=m;Ta=setTimeout(()=>{Ta=null;if(!hasValidToken()){var w=mayPushGuestToken();settings.setToken(Guid.newGuid(),w,!0);tokenIsIssuedGuest=!w}},g)}}async function u(g,m){m=m!=null&&m._openedTokenless===!0;var w=null;try{if(g.tokenBucketSize!=null&&(hasDataAccessSubscription=g.tokenBucketSize> 1105E3,syncNavAccount(),!hasDataAccessSubscription||isIframe||La||network.loadGrid().done(()=>{GridApi.load()})),g.exchange&&(currencies=g.exchange),g.isAWS&&(isAWS=!0),g.tokens&&g.tokenBucketSize&&settings.applyDataBucket(g.tokenBucketSize,g.tokens,g.dataQuantity),g.forceLogout)logout(!0);else{if(g.token!=null&&localStorageSupported)if(g.tokenIssued===!0){if(!hasValidToken()){var I=mayPushGuestToken();settings.setToken(g.token,I,!0);tokenIsIssuedGuest=!I}}else settings.setToken(g.token,!0);m&&!hasValidToken()&& 111g.status!=100&&g.status!=304&&g.status!=305&&r(4E3);if(w=Ya[g.id])if(typeof g.errorMsg!=="string"||g.message||/^\s*[{[]/.test(g.errorMsg)||(g.message=g.errorMsg),g.checkHuman){let l=()=>{g.message||(g.message="Our Bot check failed. Please reload the page and try again.");w.reject(g)};if(sa)Qa.done(()=>{w.reject("retry")}).fail(()=>{l()});else{sa=!0;let M=Qa=Deferred(),na=U=>{showErrorPopup(U,!0);M.state()==="pending"&&M.reject();l()};isUserHuman(!1,"blocked").done(U=>{network.request({path:"turnstile", 112turnstile:U}).done(L=>{sa=!1;L.error?na(L.error.message):(M.resolve(),w.reject("retry"))}).fail(na).always(()=>{sa=!1})}).fail(na).always(()=>{sa=!1})}}else if(g.status!=100&&delete Ya[g.id],g.status==305)w.resolve(g);else if(g.status==304)if(w.cachedData!=null){g[w.cachedType]=w.cachedData;g[w.cachedType].lastUpdate=g.lastUpdate;if(w.cachedType==="products")try{await q(g)}catch(l){console.error("An error occurred during the product processing workflow:",l)}w.resolve(g)}else w.reject(g),reportBug("304 but cachedData empty.", 113JSON.stringify(g));else{if(g.products){for(I=0;I<g.products.length;I++){var S=g.products[I];if(S!=null&&(S.csv!=null&&S.csv.length>3&&S.csv[CsvType.SALES.index]==null&&(S.csv[CsvType.SALES.index]=[S.lastUpdate,-1]),S.csv!=null&&S.csv[CsvType.SALES.index]!=null&&S.csv[CsvType.SALES.index].length>0&&(S.csv[CsvType.SALES.index].length>2||S.csv[CsvType.SALES.index][1]!=-1))){splitRootSalesRank(S);if(typeof S.salesRanks=="undefined"||S.salesRanks==null)S.salesRanks={};S.salesRanks[S.salesRankReference]= 114S.csv[CsvType.SALES.index]}}try{await q(g)}catch(l){console.error("An error occurred during the product processing workflow:",l)}}if(g.products&&g.deals!=null&&g.deals.dr!=null&&g.deals.dr.length>0)for(S=0;S<g.products.length;S++)g.products[S].deal=g.deals.dr[S];if(bb&&(w.categoryRequest&&g.categories&&Fa.addCategories(w.categoryRequest,g),g.comTrackings&&Fa.addComTracking({tr:g.comTrackings,ttl:864E5}),g.products)){for(S=0;S<g.products.length;S++){var ma=g.products[S];ma!=null&&ma.productType!=ProductType.VARIATION_PARENT&& 115Fa.addProduct({pr:ma,ttl:72E5})}Fa.addProductCategories(g.products)}if(g.status==100){var Q=tryParseJSON(g.json);Q!=null&&w.notify(Q.p)}else if(g.status==402)document.body.innerHTML='<br><br>Unauthorized access detected. Please visit <a target="_blank" href="https://get.keepa.com">Keepa.com</a> to get our browser extension from a trusted source.',setInterval(function(){document.body.innerHTML='<br><br>Unauthorized access detected. Please visit <a target="_blank" href="https://get.keepa.com">Keepa.com</a> to get our browser extension from a trusted source.'}, 116500),w.reject(g);else if(g.status==403)showViolation(g),w.reject(g);else if(g.status==429)w.reject(g);else if(g.products)w.resolve(g);else if(g.offers&&(g.offers=tryParseJSON(g.offers)),g.status==200)if(g.json!=null){let l=tryParseJSON(g.json);l==null?(g.message||(g.message=`Malformed response${w.path?" for "+w.path:""}`),w.reject(g)):(g.timestamp&&!g.timeStamp&&(g.timeStamp=g.timestamp),l.timeStamp=g.timeStamp,typeof l.exchange!="undefined"&&(currencies=l.exchange),w.resolve(l))}else w.resolve(g); 117else if(g.status==505)Number(storage.forceReload)===10?settings.send().done(()=>{showElements(ka);P&&(P.innerHTML="You are using an outdated version of Keepa. Please clear your cache and/or restart your browser. If you need any help, you can contact us at [email protected].");storage.removeItem("forceReload")}
117).fail(showErrorPopup):settings.send().done(()=>{document.location.reload(!0);storage.forceReload=10}).fail(showErrorPopup),w.reject(g);else if(g.status==500||g.status==404)w.quietErrors||(D(genericErrorText()+ 118' <span id="networkAbort" style="color:rgb(0, 0, 0); cursor:pointer">Close.</span>'),showElements(ka)),w.reject(g),w.quietErrors||document.getElementById("networkAbort")?.addEventListener("click",function(){C()});else{if((g.status==401||g.status==400)&&g.status==400){if(g.error){showErrorPopup(g.error.message);w.reject(g);return}let l=tryParseJSON(g.errorMsg?g.errorMsg:g.json);l==null?w.reject({error:"invalidParameter",message:g.message||`Bad request${w.path?" for "+w.path:""}`,details:""}): 119l=l.invalidParameter;ma="";Q=!1;try{if(l!=null)for(let M in l){let na=l[M];na!=null&&(na.message!="invalid"&&(Q=!0),ma+="invalid parameter: "+na.type+" message: "+na.message+"<br>")}}catch(M){reportBug(M,JSON.stringify(g))}if(!Q&&!w.quietErrors)showElements(ka),D(genericErrorText()+' <span id="networkAbort" style="color:rgb(0, 0, 0); cursor:pointer">Close.</span>'),document.getElementById("networkAbort")?.addEventListener("click",()=>{C()});else if(Q){w.reject({error:"invalidParameter",message:ma|| 120g.message||`Bad request${w.path?" for "+w.path:""}`,details:l});return}}w.reject(g)}}}}catch(l){try{w&&w.state()==="pending"&&!Ya[g.id]&&w.reject(g)}catch(M){}reportBug(l);console.log(l)}}function B(g){db=null;ea=0;Sa=!0;ia=null;var m=!1;batchProductQueue!=null&&batchProductQueue.pause&&!batchProductQueue.idle()&&(m=!0,batchProductQueue.pause());batchSellerQueue!=null&&batchSellerQueue.pause&&!batchSellerQueue.idle()&&(m=!0,batchSellerQueue.pause());var w=g.code,I=navigator.onLine?w===1E3||w===1001? 121"closed":w>=1011&&w<=1013?"server":"dropped":"offline";Object.keys(Ya).forEach(function(S){Ya[S].reject({error:"offline",code:w,message:`Request failed - no connection (${I}).`});delete Ya[S]});g.reason=="blocked"?(showViolation({hours:-1,IP:""}),storage.updated1008="1"):(Ia++,Ia%=Aa.length,(ta.length>0||m)&&t())}function t(){console.log("reconnectWebSocket");if(x<10){let g=Math.min(3E4,1E3*Math.pow(2,x++));console.log(`Reconnecting in ${g/1E3} seconds...`);clearTimeout(e);e=setTimeout(()=>{da(!1)}, 122g)}else console.error("Max reconnect attempts reached. Giving up."),P&&(P.innerHTML='Unable to connect to Keepa.com. <span id="networkAgain" style="color:rgb(255, 228, 192); cursor:pointer">Try again?</span> <span id="networkAbort" style="color:rgb(0, 0, 0); cursor:pointer">Abort!</span>'),showElements(ka),document.getElementById("networkAgain")?.addEventListener("click",function(){P&&(P.textContent="Connecting...");x=0;da(!1)}),document.getElementById("networkAbort")?.addEventListener("click", 123function(){ta=[];C();batchProductQueue!=null&&typeof batchProductQueue.kill==="function"&&batchProductQueue.kill();batchSellerQueue!=null&&typeof batchSellerQueue.kill==="function"&&batchSellerQueue.kill();hideElements(document.getElementById("loadingElId"));activeASINPromise&&activeASINPromise.state()==="pending"&&activeASINPromise.reject({error:"aborted",message:"User aborted the loading process."});activeSellerPromise&&activeSellerPromise.state()==="pending"&&activeSellerPromise.reject({error:"aborted", 124message:"User aborted the loading process."})})}function G(g){g.binaryType="arraybuffer";g.onclose=function(m){console.log("WebSocket closed:",m.reason,m.code);g===O&&B(m);g===wa&&(wa=null)};g.onerror=function(m){console.log("WebSocket error:",m.reason);g.close()};g.onopen=function(m){};g.onmessage=H;return g}function da(g){if(O!=null&&g)db=null,O.close(4108,"reconnect");else{if(F==null||F.state()!="pending")F=Deferred();if(O&&O.readyState===WebSocket.CONNECTING&&Date.now()-v>1E4){try{O.close(4E3, 125"connect-timeout")}catch(I){}O=null}if(O==null||O.readyState!=WebSocket.OPEN&&O.readyState!=WebSocket.CONNECTING)if(!hasValidToken()&&!isTest&&waitForExtensionStorage&&extensionTokenAnswer==="unanswered"&&extensionDetected()&&Date.now()-extensionTokenAskedAt<EXTENSION_TOKEN_WAIT_MS)setTimeout(()=>da(!1),100);else{v=Date.now();window.connection!=null&&(window.connection.onmessage=I=>{window.preInitWS=window.preInitWS||[];window.preInitWS.push(I)});var m=window.connection;g=m!=null&&m.readyState<2&& 126window.preWsToken==storage.token&&(window.preWsUrl==null||window.preWsUrl==A)&&(m.readyState==WebSocket.OPEN||window.preWsAt==null||Date.now()-window.preWsAt<1E4);var w=!hasValidToken();if(g)O=m;else{if(m!=null)try{m.onmessage=null,m.readyState==WebSocket.OPEN?m.close(4001,"warmup-unused"):m.onopen=()=>{try{m.close(4001,"warmup-unused")}catch(I){}}}catch(I){}O=w?new WebSocket(A):new WebSocket(A,storage.token)}(O._openedTokenless=w)&&r(15E3);delete window.connection;delete window.preWsToken;delete window.preWsUrl; 127delete window.preWsAt;ea=0;O=G(O);clearTimeout(Z);Z=setTimeout(()=>{if(O&&O.readyState===WebSocket.CONNECTING)try{O.close(4E3,"connect-timeout")}catch(I){}},1E4);if(window.preInitWS)for(let I of window.preInitWS)H(I);delete window.preInitWS}}}function Y(){z=Deferred();var g=setInterval(function(){Number(document.getElementById("networkSeconds")?.textContent??"")==1&&(z.resolve(),clearInterval(g));var m=document.getElementById("networkSeconds");m&&(m.textContent=Number(m.textContent)-1)},1E3);return z} 128function X(){if(La)return gridJsPromise.promise();La=!0;var g=document.createElement("script");g.async=!0;g.src=is30108?`//${location.host}/${location.pathname.split("/")[1]}
128/js/grid.js`:isTest?"//test.keepa.com/js/grid.js":document.querySelector('script[src$="keepa.js"]').getAttribute("src").replace("keepa.js","grid.js");g.onload=gridJsPromise.resolve;g.onerror=()=>{La=!1;var m=gridJsPromise;gridJsPromise=Deferred();m.reject(Error(GRID_LOAD_FAILED+g.src))};g.crossOrigin="anonymous";document.body.appendChild(g); 129return gridJsPromise}var P=document.getElementById("networkBar"),ka=document.getElementById("networkOverlay"),D=g=>{P&&(P.innerHTML=g)},W=Deferred(),N=!1,ha={},V=0,O=null,wa=null,La=!1,Ba=[],fa=/([?&](?:s|token|user|key|apikey|auth|session|sid)=)[^&#]*/gi,ia=null;typeof window.server=="undefined"&&(window.server=["push.keepa.com"]);var Aa=window.server;typeof window.serverIndex=="undefined"&&(window.serverIndex=Math.floor(window.server.length*Math.random()));var Ia=(window.serverIndex+1)%Aa.length, 130Ga=document.getElementById("loadingBar");Ga&&(Ga.innerHTML='\n <div role="progressbar" class="mdc-linear-progress mdc-linear-progress--indeterminate">\n <div class="mdc-linear-progress__bar mdc-linear-progress__primary-bar">\n <span class="mdc-linear-progress__bar-inner"></span>\n </div>\n <div class="mdc-linear-progress__bar mdc-linear-progress__secondary-bar">\n <span class="mdc-linear-progress__bar-inner"></span>\n </div>\n </div>'); 131Ga=document.querySelector(".mdc-linear-progress");Ga!=null&&(progressBar=mdc.linearProgress.MDCLinearProgress.attachTo(Ga));var Ya={},Pa=new Set(["user/menu"]),ta=[],ea=0,Fa=null,bb=!1;try{c(),setTimeout(function(){Fa.removeOutdatedCacheEntries()},3E4),setInterval(function(){Fa.removeOutdatedCacheEntries()},3E5)}catch(g){console.error(g)}var Ra=Math.floor(Math.random()*1E8)%12345,Sa=!0,db=null,eb=taskQueue(function(g,m){var w=g.entry,I=g.promise;O&&O.readyState!==WebSocket.CLOSING&&O.readyState!== 132WebSocket.CLOSED||F&&F.state()==="pending"||t();I.state()==="pending"?I.releaseQueueSlot=m:m();g=!1;w.path&&w.path.startsWith("pro/")&&storage.accountType==0&&(w.path=="pro/seller"?typeof w.storefront!=="undefined"&&(g=!0):g=!0);if(g)return I.reject("You are not authorized to use this feature. Please register or login first."),I;bb&&w.path?w.path.indexOf("product")>-1&&!w.refreshProduct&&w.maxAge!==-1&&w.asin!=null&&w.asin.length==10?Fa.getProduct(w,async S=>{try{if(S!=null&&S.data){let ma=S.data; 133if(Date.now()-S.cached>w.maxAge*6E4)w.g=ma.g,I.cachedData=[ma],I.cachedType="products",d(I,w);else{try{w.products=[ma],await q(w)}catch(Q){console.error("An error occurred during the product processing workflow:",Q)}I.resolve({products:[ma]})}}else d(I,w)}catch(ma){console.error(ma)}}):w.path==="pro/category"&&!w.refreshCategories&&w.categoryIds!=null&&w.categoryIds.length>0?Fa.getCategories(w,S=>{try{if(S==null)d(I,w);else if(S.missing.length===0)I.resolve(n(w,S,null));else{w.categoryIds=S.missing; 134var ma=Deferred();ma.promise().done(Q=>I.resolve(n(w,S,Q))).fail(Q=>I.reject(Q)).progress(Q=>I.notify(Q));d(ma,w)}}catch(Q){console.error(Q),d(I,w)}}):d(I,w):d(I,w);return I},isTest?50:100),sa=!1,Qa=null,Ta=null,ba=0,e=null,x=0,v=0,C=function(){hideElements(ka);Object.keys(Ya).forEach(g=>{var m=Ya[g];delete Ya[g];m.reject(null)})},A="wss://"+(window.wsHost||(isTest?"dyn.keepa.com":"push.keepa.com"))+"/apps/cloud/?app=keepaWebsite&version=3.0",H=async function(g){var m=g.data;try{m instanceof ArrayBuffer&& 135(m=await decompressFrame(m))}catch(w){console.error("Decompression error",w);return}if(m)if(m.tokenBucketSize!=null&&(hasDataAccessSubscription=m.tokenBucketSize>5E3,syncNavAccount()),m.status==1001)wa&&wa.readyState<2||(wa=(g=!hasValidToken())?new WebSocket(A):new WebSocket(A,storage.token),(wa._openedTokenless=g)&&r(15E3),G(wa));else{if(m.status==108&&(wa&&(O=wa,wa=null),x=0,window.networkInitTimestamp=Date.now(),m.user!=null&&(m.status=200,settings.dataCache={time:Date.now(),data:m,success:!0}), 136F!=null&&F.resolve(),F=null,k(),batchProductQueue!=null&&batchProductQueue.paused&&batchProductQueue.resume(),batchSellerQueue!=null&&batchSellerQueue.paused&&batchSellerQueue.resume(),hideElements(ka),m.user==null))return;ea!=2&&(ea=2,ia=storage.token);u(m,g.target)}},Z=null,ca=function(g){try{let w=g.loaded,I=g.srcElement||g.currentTarget||g.target;if(I&&I.responseURL.indexOf("https://dyn-2.keepa")!=-1){var m=Number(I.getResponseHeader("Content-Uncompressed-Length"));if(m&&!(m<1E5)&&w){g=w/m;try{progressBar.close(), 137progressBar.determinate=!0,progressBar.open()}catch(S){}progressBar.progress=g;g>=1&&(progressBar.close(),progressBar.determinate=!1)}}}catch(w){}},K=function(g,m,w){var I=typeof g==="string"?{url:g}:g||{},S=(I.type||I.method||"GET").toUpperCase(),ma=I.dataType;g=I.url||location.href;var Q=null,l=I.data;l!=null&&typeof l!=="string"&&(l=(new URLSearchParams(l)).toString());l&&(S==="GET"||S==="HEAD"?g+=(g.indexOf("?")>-1?"&":"?")+l:Q=l);var M=new XMLHttpRequest,na=!1,U=function(L,ra){na||(na=!0,w(M, 138L,ra))};M.onload=function(){if(!na){var L=M.status;if(L>=200&&L<300||L===304)if(L===204||L===304||S==="HEAD")na=!0,m(void 0,L===204||S==="HEAD"?"nocontent":"notmodified",M);else{L=M.responseText;if(ma==="json"||!ma&&/\bjson\b/.test(M.getResponseHeader("Content-Type")||""))try{L=JSON.parse(L)}catch(ra){U("parsererror",ra);return}na=!0;m(L,"success",M)}else U("error",M.statusText)}};M.onerror=function(){U("error",M.statusText)};M.ontimeout=function(){U("timeout","timeout")};M.onabort=function(){U("abort", 139"abort")};M.onprogress=ca;try{M.open(S,g,!0);l=L=>{for(let ra in I.headers)if(ra.toLowerCase()===L)return!0;return!1};l("accept")||M.setRequestHeader("Accept",ma==="json"?"application/json, text/javascript, */*; q=0.01":ma==="text"?"text/plain, */*; q=0.01":"*/*");l("x-requested-with")||(new URL(g,location.href)).origin!==location.origin||M.setRequestHeader("X-Requested-With","XMLHttpRequest");Q==null||l("content-type")||M.setRequestHeader("Content-Type",I.contentType||"application/x-www-form-urlencoded; charset=UTF-8"); 140if(I.headers)for(let L in I.headers)M.setRequestHeader(L,I.headers[L]);I.timeout>0&&(M.timeout=I.timeout);M.send(Q)}catch(L){U("error",L)}return M},F=null,z;return{ajax:function(g,m){var w={url:g.url,path:g.path,type:g.type};a(w);var I=Deferred(),S=1;P||(P=document.getElementById("networkBar"),ka=document.getElementById("networkOverlay"));var ma,Q=V,l=Date.now(),M=function(){if(0>l&&!m)I.reject("cancel"),console.info("request cancelled due to navigation.",g);else{N=!0;g.dataType=="jsonp"&&(ma=setTimeout(U, 1413E4));g.url&&g.url.indexOf("http")==-1&&(g.url="https://"+ajaxHost+"/v2/"+g.url);var L=function(){delete ha[Q];N=!1;try{Object.keys(ha).length>0||progressBar.close()}catch(Da){}W.resolve()},ra=K(g,Da=>{clearTimeout(ma);w.ms=Date.now()-l;hideElements(ka);g.dataType!="text"&&Da&&Da.timestamp&&(Da.timeStamp=Da.timestamp);I.resolve(Da);L()},(Da,Ea,oa)=>{U(Da,Ea,oa);L()});m||(ha[Q]=ra);V++}},na=function(L,ra,Da){hideElements(ka);
141Object.keys(Ya).forEach(Ea=>{Ya[Ea].reject(null);delete Ya[Ea]});I.reject(L)}, 142U=function(L,ra,Da){w.ms=Date.now()-l;w.err=ra||"error";L&&typeof L.status==="number"&&(w.status=L.status);try{if(g.url.indexOf("://dyn")==-1||g.url.indexOf("isOnline")>-1||g.url.indexOf("app/stats")>-1||g.url.indexOf("bugreport")>-1||typeof isLoggerPage!="undefined"){console.log("failure",g,"textStatus: "+ra,Da);I.reject(L);return}}catch(Ja){}clearTimeout(ma);if(Da!="abort"){var Ea=function(){document.getElementById("networkAbort")?.addEventListener("click",function(){na(L,ra,Da)})};if(L.status== 143500)Ia++,Ia%=Aa.length,P&&(P.innerHTML=L.responseText+' <span id="networkAbort" style="color:rgb(0, 0, 0); cursor:pointer">Close.</span>'),showElements(ka),I.reject(L,ra,Da),Ea();else if(L.status==401||L.status==400||isIE&&L.status==0){if(L.status==400){var oa=tryParseJSON(L.responseText);if(oa==null){I.reject(null);return}oa=oa.data;let Ja="",Ha=!1;if(oa.error=="invalidParameter"){for(let ya in oa.details){let za=oa.details[ya];za!=null&&(za.message!="invalid"&&(Ha=!0),Ja+="invalid parameter: "+ 144za.type+" message: "+za.message+"<br>")}setTimeout(function(){reportBug("invalid parameter",Ja)},250)}if(Ha){I.reject(oa);return}P&&(P.innerHTML=oa.message+' <span id="networkAbort" style="color:rgb(0, 0, 0); cursor:pointer">Close.</span>');showElements(ka);Ea()}I.reject(L,ra,Da)}else P&&(P.innerHTML='Connection timeout. Automatic retry in <span id="networkSeconds">'+2E3*S/1E3+"</span> seconds."),showElements(ka),L.status==403?(P&&(P.innerHTML=L.responseText+' <span id="networkAbort" style="color:rgb(0, 0, 0); cursor:pointer">Close.</span>'), 145I.reject(L,ra,Da),Ea()):L.status==404?I.reject(L,ra,Da):S==3?(P&&(P.innerHTML='Unable to connect to Keepa.com. <span id="networkAgain" style="color:rgb(255, 228, 192); cursor:pointer">Try again?</span> <span id="networkAbort" style="color:rgb(0, 0, 0); cursor:pointer">Abort!</span>'),document.getElementById("networkAgain")?.addEventListener("click",function(){P&&(P.textContent="Connecting...");M()}),document.getElementById("networkAbort")?.addEventListener("click",function(){I.reject(L);na(L, 146ra,Da)})):(S++,Y().always(M))}};M();return I},loadGrid:X,withGrid:function(g){return(async()=>{await X();g()})().catch(m=>{if(String(m?.message??"").indexOf(GRID_LOAD_FAILED)!==0)throw m;})},waitForNetworkCompletion:function(){W=Deferred();N||W.resolve();return W},cancel:function(){},activeRequests:ha,lastUrls:Ba,trail:a,server:Aa,serverIndex:Ia,wsToken:()=>ia,isWebSocketConnected:()=>O&&O.readyState===WebSocket.OPEN,onConnected:()=>F,getWorker:()=>Fa,connectToServer:g=>{da(g)},disconnect:()=>{O.close(4108, 147"reconnect")},reauthorize:()=>{storage.token!=ia&&(ia=storage.token,ea=0)},request:function(g){var m=Deferred();m.always(function(){var w=m.releaseQueueSlot;m.releaseQueueSlot=null;w&&w()});eb.push({entry:g,promise:m});return m},clearDatabase:function(){try{Fa&&Fa.clearDatabase(),databaseDeals.clear()}catch(g){}}}}();let activeASINPromise=null,activeSellerPromise=null; 148const networkHelper=function(){return{abortAll:()=>{activeASINPromise!=null&&activeASINPromise.notify();activeSellerPromise!=null&&activeSellerPromise.notify()},loadASINs:function(a,b,c){isTest&&console.time("load");var d=Deferred();activeASINPromise!=null&&activeASINPromise.notify();activeASINPromise=d;var f=0,k=c?document.querySelectorAll(c):null;showElements(k);var n=0,q=!1,r=null,u=!1,B=-1;d.progress(()=>{isTest&&console.info("%cNetwork:","color:red;font-weight:bold;","aborting batch call");u= 149!0}).always(()=>{hideElements(k);batchProductQueue=activeASINPromise=null;NavigationEvents.unsubscribe(t)});var t=X=>{u=!0;clearTimeout(B);NavigationEvents.unsubscribe(t)};NavigationEvents.subscribe(t);var G=[],da=()=>{Y.paused&&!u&&d.state()==="pending"?B=setTimeout(da,6E4):u||d.state()!=="pending"||(console.warn("Queue timed out. WebSocket likely disconnected."),Y.kill(),d.reject({error:"timeout",message:"The connection was lost during loading. Please reload the page to resume loading.",partialData:G}))}, 150Y=batchProductQueue=taskQueue(function(X,P){var ka=!1;u||q?P():function(){callbackTimeout(D=>{var W={path:a.path,offerPages:a.offerPages,maxAge:a.maxAge,type:a.type,history:a.history,domainId:X.domainId,refreshProduct:a.refreshProduct,getTracking:a.getTracking||!1,includeDeals:a.includeDeals||!1,stats:a.stats||null,getSubSalesRankAvg:a.getSubSalesRankAvg||!1,keepBuyBoxData:a.keepBuyBoxData||!1};X.asin.indexOf(",")>0?W.asin=X.asin:X.asin.length==10?W.asin=X.asin:W.code=X.asin;network.request(W).done(function(N){switch(N.status){case 429:case 400:case 401:case 404:case 505:case 500:case 1001:case 402:q= 151!0,r=N}N.basicProducts!=null&&(N.products=N.basicProducts);if(N.products!=null&&N.products.length>0&&N.products[0]!=null)for(let ha=0;ha<N.products.length;ha++){let V=N.products[ha];V!=null&&G.push(V)}else isTest&&console.log("failed loading: ",X.domainId+" "+X.asin,N.status)}).fail(N=>{if(!u)switch(N?.status){case 429:case 400:case 401:case 404:case 505:case 500:case 1001:case 402:q=!0,r=N}}).always(()=>{D(null);clearTimeout(B);B=setTimeout(da,6E4)})},(a.offerPages&&a.offerPages>0?2:1)*3E4)(D=>{if(!ka){D&& 152isTest&&console.log("product "+X.asin+" took too long.");f+=X.batchSize;let W=Math.round(f/n*100).toFixed(0);u||document.querySelectorAll(".loadingProgress").forEach(N=>{N.innerHTML='<div class="bigAndBold" style="text-align: right">'+W+" %</div><div>"+f+" / "+n+"</div>"});ka=!0;P()}})}()},isMobile?50:isTest?400:300);for(let X in b){c=b[X];if(c==null||c.length==0)continue;n+=c.length;c=c.reduce(function(P,ka,D){D%1==0&&D!==0&&P.push([]);P[P.length-1].push(ka);return P},[[]]);for(let P=0;P<c.length;P++)Y.push({index:P, 153domainId:X,batchSize:c[P].length,asin:c[P].join(",")})}Y.drain=()=>{clearTimeout(B);u?(NavigationEvents.unsubscribe(t),activeASINPromise===d&&(activeASINPromise=null),batchProductQueue===Y&&(batchProductQueue=null)):(isTest&&console.timeEnd("load"),hideElements(k),d.state()=="pending"&&(q?(r.products=G,d.reject(r)):d.resolve(G)))};Y.idle()?Y.drain():B=setTimeout(da,6E4);return d},loadSellers:function(a,b,c,d){var f={},k=Deferred();activeSellerPromise!=null&&activeSellerPromise.notify();activeSellerPromise= 154k;var n=0,q=d?document.querySelectorAll(d):null;showElements(q);var r=!1,u=-1;k.progress(()=>{isTest&&console.info("%cNetwork:","color:red;font-weight:bold;","aborting seller batch call");r=!0}).always(()=>{clearTimeout(u);hideElements(q);batchSellerQueue=null;NavigationEvents.unsubscribe(B)});var B=da=>{r=!0;clearTimeout(u);NavigationEvents.unsubscribe(B)};NavigationEvents.subscribe(B);var t=()=>{r||k.state()!=="pending"||(G.paused?u=setTimeout(t,6E4):(console.warn("Seller queue timed out. WebSocket likely disconnected."), 155G.kill(),k.reject({error:"timeout",message:"The connection was lost during loading. Please reload the page to resume loading.",partialData:f})))},G=batchSellerQueue=taskQueue(function(da,Y){r?Y():network.request({path:a.path,storefront:a.storefront||0,maxAge:a.maxAge||0,domainId:b,history:a.history||
155!1,seller:da.entry}).done(function(X){X.merchants!=null?Object.assign(f,X.merchants):console.warn("failed loading: ",da.entry)}).fail(X=>{if(!r)switch(X?.status){case 429:case 400:case 401:case 404:case 505:case 500:case 1001:case 402:r= 156!0,k.state()=="pending"&&k.reject(X)}}).always(()=>{if(!r){++n;let X=Math.round(n/c.length*100).toFixed(0);replaceHtml("loadingProgress",'<div class="bigAndBold" style="text-align: right">'+X+" %</div><div>"+n+" / "+c.length+"</div>")}clearTimeout(u);k.state()==="pending"&&(u=setTimeout(t,6E4));Y()})},isMobile?15:70);for(d=0;d<c.length;d++){let da=c[d];da!=null&&G.push({index:d,entry:da})}G.drain=()=>{clearTimeout(u);if(r)NavigationEvents.unsubscribe(B),activeSellerPromise===k&&(activeSellerPromise= 157null),batchSellerQueue===G&&(batchSellerQueue=null);else{hideElements(q);var da={},Y=[];for(var X=0;X<c.length;X++){var P=c[X];P!=null&&(Y=Y.concat(P.split(",")))}for(X=0;X<Y.length;X++)P=Y[X],f[P]&&(da[P]=f[P]);k.resolve(da)}};G.idle()?G.drain():u=setTimeout(t,6E4);return k}}}();let graphDateFormatIFrame=!1; 158const DomUtil={el:a=>a||null,cssNumber:new Set("animationIterationCount columnCount fillOpacity flexGrow flexShrink fontWeight gridArea gridColumn gridColumnEnd gridColumnStart gridRow gridRowEnd gridRowStart lineHeight opacity order orphans widows zIndex zoom".split(" ")),setStyles:(a,b)=>{if(a=DomUtil.el(a))for(let [c,d]of Object.entries(b))b=c.replace(/-([a-z])/g,(f,k)=>k.toUpperCase()),b=typeof d!=="number"||d===0||DomUtil.cssNumber.has(b)?d:`${d}px`,a.style.setProperty(c.replace(/[A-Z]/g,f=> 159"-"+f.toLowerCase()),b)},isVisible:a=>{a=DomUtil.el(a);return!!a&&!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},show:(a,b)=>{if(a=DomUtil.el(a)){if(a.dataset.domutilDisplay!==void 0&&(a.style.display=a.dataset.domutilDisplay,delete a.dataset.domutilDisplay,getComputedStyle(a).display!=="none"))return;a.style.display==="none"&&(a.style.display="");getComputedStyle(a).display==="none"&&(a.style.display=b||"block")}},hide:a=>{if(a=DomUtil.el(a))a.style.display&&a.style.display!=="none"&& 160(a.dataset.domutilDisplay=a.style.display),a.style.display="none"},height:a=>{a=DomUtil.el(a);if(!a)return 0;a=getComputedStyle(a);var b=parseFloat(a.height)||0;return a.boxSizing!=="border-box"?b:b-(parseFloat(a.paddingTop)||0)-(parseFloat(a.paddingBottom)||0)-(parseFloat(a.borderTopWidth)||0)-(parseFloat(a.borderBottomWidth)||0)},setHeight:(a,b)=>{if(a=DomUtil.el(a)){var c=getComputedStyle(a);b=parseFloat(b);isFinite(b)&&(c.boxSizing==="border-box"&&(b+=(parseFloat(c.paddingTop)||0)+(parseFloat(c.paddingBottom)|| 1610)+(parseFloat(c.borderTopWidth)||0)+(parseFloat(c.borderBottomWidth)||0)),a.style.height=`${b}px`)}},measureHidden:(a,b)=>{if(a=DomUtil.el(a)){var {position:c,visibility:d,display:f}=a.style;a.style.position="absolute";a.style.visibility="hidden";a.style.display="block";try{return b(a)}finally{a.style.position=c,a.style.visibility=d,a.style.display=f}}},outerWidth:a=>{var b=DomUtil.el(a);if(!b)return 0;a=()=>b.getBoundingClientRect().width;return getComputedStyle(b).display==="none"?DomUtil.measureHidden(b, 162a):b.getBoundingClientRect().width},layoutOuterWidth:a=>{a=DomUtil.el(a);if(!a)return 0;a=getComputedStyle(a);var b=parseFloat(a.width)||0;return a.boxSizing==="border-box"?b:b+(parseFloat(a.paddingLeft)||0)+(parseFloat(a.paddingRight)||0)+(parseFloat(a.borderLeftWidth)||0)+(parseFloat(a.borderRightWidth)||0)},width:a=>{a=DomUtil.el(a);if(!a)return 0;a=getComputedStyle(a);var b=parseFloat(a.width)||0;return a.boxSizing!=="border-box"?b:b-(parseFloat(a.paddingLeft)||0)-(parseFloat(a.paddingRight)|| 1630)-(parseFloat(a.borderLeftWidth)||0)-(parseFloat(a.borderRightWidth)||0)},setWidth:(a,b)=>{if(a=DomUtil.el(a)){var c=getComputedStyle(a);b=parseFloat(b);isFinite(b)&&(c.boxSizing==="border-box"&&(b+=(parseFloat(c.paddingLeft)||0)+(parseFloat(c.paddingRight)||0)+(parseFloat(c.borderLeftWidth)||0)+(parseFloat(c.borderRightWidth)||0)),a.style.width=`${b}px`)}},data:(a,b)=>{b=b.replace(/-([a-z])/g,(c,d)=>d.toUpperCase());a=DomUtil.el(a)?.dataset?.[b];if(a!==void 0){if(a==="true")return!0;if(a==="false")return!1; 164if(a==="null")return null;if(a===+a+"")return+a;try{return/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/.test(a)?JSON.parse(a):a}catch(c){return a}}}},disableStockFeatures=!1,disableSoldNumbers=!1,disableUpcomingLightningDeal=!0,disableEbayPriceAlerts=!0,enableCouponGraph=!1,enableBuyBoxCouponGraph=!1,showEdgeIosOnStart=!0,enableTrackingLimits=!0,edgeLinks={desktopExt:"https://microsoftedge.microsoft.com/addons/detail/ejefaeioamebhekmfaclajddbpnnobje",edgeAppChrome:"https://edgemobileapp.microsoft.com/?adjustId=1m2locj9_1mj7g196", 165edgeAppEdgeAndOther:"https://edgemobileapp.microsoft.com/?adjustId=1mcehlam_1mg6zn4u"};var isAWS=!1,interval,offset=129384E7,offsetMinutes=offset/6E4,offsetHours=offset/36E5,precisionDevisor=6E4,offsetVar=offset/precisionDevisor;const changeV5=4827410,changeV5Epoch=15834846E5,changeFBA=7957908,changeFBAEpoch=177131448E4; 166var keepaTime={now:function(){return Math.floor(Date.now()/precisionDevisor-offsetMinutes)},minutesToEpoch:function(a){return(a+offsetMinutes)*precisionDevisor},epochToMinutes:function(a){return Math.round(a/6E4)-offsetMinutes},timeShiftOffset:-(new Date).getTimezoneOffset(),precisionDevisor:6E4}; 167const dataStalePeriods={businessDiscountOutdated:10080,businessDiscountOutworn:1440,ebayOutdated:40320,monthlySoldOutdated:86400,offersOutdated:4320,offersOutworn:1440,ratingOutdated:129600,ratingV
167ariationOutdated:20160,ratingVariationOrphanedOutdated:2880,stockOutdated:4320};var ajaxURL="https://dyn-2.keepa.com/v2/",ajaxPrefix="/v2/",protocol="https://",rootURL="https://keepa.com/"; 168const imageServer="https://m.media-amazon.com/images/I/",CDNUrl="https://keepa.com/cdn/",imgCDNUrl=CDNUrl+"img/",noImageFilename="no-photo-available.png",graphBaseUrl="https://graph.keepa.com/",graphBaseFilename="pricehistory.png";var currency,dollar="$",euro="\u20ac",pound="\u00a3",yen="\u00a5",real="R$",rupee="\u20b9",numberOfDomains=15; 169const invalidIfLargerCatId=0x7fffc055dadda000,maxCatId=0x7fffffffffffffff,flag_1="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMzo0NQAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjAwALLiZ9YAAAAJcEhZcwAACxMAAAsTAQCanBgAAAiBaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNiswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowM2I3MzBiMy0xZjcxLThkNDItODM1Ny0yY2Q0ODRhM2ZkNDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDowM2I3MzBiMy0xZjcxLThkNDItODM1Ny0yY2Q0ODRhM2ZkNDM8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDowM2I3MzBiMy0xZjcxLThkNDItODM1Ny0yY2Q0ODRhM2ZkNDM8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6MDNiNzMwYjMtMWY3MS04ZDQyLTgzNTctMmNkNDg0YTNmZDQzPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMzOjQ1KzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjYrMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMzOjQ1KzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KN2i2ggAAAY9JREFUKBVlUktu2zAUnEdRVmQpQV3DRVcFml2QVW6QM3QR9Ai9Q+7Qs+QG6R266LoBujACpAJrRRLFT4dSHdTxA0hCfO/NmxlRbm/v7tfrD9ddt/MAMi4scgXJFCodcXNucMIzuAB4l9JAjL6uquzXdvtNt62SzeYU2dQqU94TKniBDCOq1QrFCZMhTrmXra6xAEQ3TYum2aHvW4jMAGn3ECzFwfaRtDKEVwALTrR9Dx1Ii4zYQoqMuB8kCpE5/9sgkIEnwAzPmlQ4DAhNA/3w08DZJ1jb8XYuUTws8dZFgLuu4Uo9M/jHcJpSVbDGQH/6vMHH8/cYnT2QEAhWkNX4/IC2DfPUNHkfbQuz3UJfPn7HVf2HEwKUUvv0yzmogn4cRpJg6XSfPDDlKZrq7cQ+1/qwkl904ugu0qiRJo5FAR2N8ePTI7TKnOT5UfXxRYRnOJHMsVeT+puzZcXfHIuSiJJkJLNey6HEyMVedOOol3kOx175Cnx5B1yUQEcBxyb8JyCxSW9xSO8MKHfAj78Mcrzo9Tql9gAAAABJRU5ErkJggg==",flag_2= 170"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMjoxMwAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjIxAABZcF4AAAAJcEhZcwAACxMAAAsTAQCanBgAAAiHaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgI
170HhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNjoyMSswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDoxZmJhOWU0ZS00MDAzLWQzNGYtOWU4OC02YTg2Mjc4ZmJhNmU8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDoxZmJhOWU0ZS00MDAzLWQzNGYtOWU4OC02YTg2Mjc4ZmJhNmU8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDoxZmJhOWU0ZS00MDAzLWQzNGYtOWU4OC02YTg2Mjc4ZmJhNmU8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6MWZiYTllNGUtNDAwMy1kMzRmLTllODgtNmE4NjI3OGZiYTZlPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMyOjEzKzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjY6MjErMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMyOjEzKzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KZiEaMgAAAo5JREFUGBkFwVtsS3EAwOHfOed/eu9au2WbUXPpsE2GWZAR2ySEB9dIeGAvgj14QPa2iEcSEZcnXhBB3BIhIY1kE8yiQahtZp3Zalu76Chrz1nPaY/vk/pvXu9asql5U3c8n7v7fEhxWHmEqrBhTQWNk2EAwuWNvOwdw1IUDKeDza6/uS3VLuWXx9MtP4wXSWPvhtnsSNLZ1kBZVQWXIjo57DgzaZyZNIal8uyXir/Ay5GiFHvWlmKsWM+jvqykfHa3tHVnyxao0TFrqfZNbmoMECxxM5PWWTg9iGlk6fcupG7qJ20LpilvWEoo6bEOXfwk3wz1j4r9q4uYU+aiJzuflKmwLTLI3ppFaIFaUueeIHs8tFap+PyFWHUN3AnHeRUeZUdjCc1VOmK3f5LqEhVdz5DNS1h5G1M9vdi/DaFFh0GS8M+rZMZmRw+FaNI0WoMOXPYMI8YkInHjMoU+L4ZqQ1FAe/OGXM1GSKWQ9DTYVH7fuI9UF8RW6samGmQsBQ2L5L80IrbvBK7gMmY1HcOSWXlhEd4/cUwLEvcfkM9kCHadRuuPkJiBIcuDMpvB6XAQi/1AdFwdgOg47JjL42P12KIR3j//SGrNOqoVCcmu0vV+jErVRdHvQZKhGO3jxRDOgnsCmT/ZXOeFlfR11JrBiY9m6OlXc+cLrzkyPWtaOcNEVcy+yE+z6WCPOVC83Nx+eL35ujVlHt8lQY0nJ185s8p/qMZF7OlL+9kuRbSPlwp0VRQX+oWvwCd8bo8om1sqKHCK3QffikthQzg2ttiPthZwviLpF9mB3msP791edqu8RYt8jcrNlYKJxTIjw1/4kIgD8N2KUB1IEKhXOH/qOi8O1OZPbg04JW1o4D9LehVcBrzJ5AAAAABJRU5ErkJggg==", 171flag_3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMjo1NAAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjAwALa2/qMAAAAJcEhZcwAACxMAAAsTAQCanBgAAAiBaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgI
171HhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNiswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpjMjUyYTg1OC1iNmMwLTlkNGEtOWVkOS0zZDY3NTAxNTA2NjM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDpjMjUyYTg1OC1iNmMwLTlkNGEtOWVkOS0zZDY3NTAxNTA2NjM8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpjMjUyYTg1OC1iNmMwLTlkNGEtOWVkOS0zZDY3NTAxNTA2NjM8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6YzI1MmE4NTgtYjZjMC05ZDRhLTllZDktM2Q2NzUwMTUwNjYzPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMyOjU0KzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjYrMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMyOjU0KzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K58shlgAAAWlJREFUKBWVkk1OwzAQhZ/tSZq0KCA4AYtKcAK2bDlLT4Q4CgvYcwCWIBAL6CIotIkT/zFOGoJENziyPE7mffM8jlitVndFUVw2TeOEEAo80jQFJQmkEHELHwKsMei6rt+HEFye56qqqnv6KkuhnIPWGgzoE7Ys2DfG7wyA5/xtVQm6Xa9xaG1PH+T4Af2G9MgdOMbR5WdZgq7Z2mldY8vrf8aCi77ypLN6g6XwMHyM0cEEirX2vQ1ITIIj3YDenjY49tyg1kPsP/rAG1m7nPlM4YMMSF806E4MPD9K/q02uZmi2ESrFNrSgcyVRreMQnZAI2BcJ9EQDeVjLw1JmGeAbNe6tmaSCpbihTNoSt757fsQoXFKOA9nW6lsmzjyHkfFgYT3YZZnGYRccM6cZ8b5NIiCBYJGcDWcqdDojuYzCctaenlPb/QDnecZGpotJCJA5AMA/Y/JEMfGEgawqHNo29Szi3xTh8dv1ra16vMZzB8AAAAASUVORK5CYII=", 172flag_4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMjoyMgAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjAwAA3EwyAAAAAJcEhZcwAACxMAAAsTAQCanBgAAAiBaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgI
172HhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNiswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo1M2M4Mjc4Yy04YTQzLTk5NGQtYjkxNy1jODdmMzNlZWRlZWI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo1M2M4Mjc4Yy04YTQzLTk5NGQtYjkxNy1jODdmMzNlZWRlZWI8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1M2M4Mjc4Yy04YTQzLTk5NGQtYjkxNy1jODdmMzNlZWRlZWI8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NTNjODI3OGMtOGE0My05OTRkLWI5MTctYzg3ZjMzZWVkZWViPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMyOjIyKzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjYrMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMyOjIyKzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KEBzJxgAAAdZJREFUKM9tkTtuFEEURU91V3fPjMc/yQgkIiQj5IgtkLAaxEpYAlsggQ3AAoicWA6MjEBCyMIe29P1e/VeEZiQ4KZH5+i6N+8+fd57/PRVDFsd+q7/vS28fX3My+NHpKI4Gm6aqOdnlI8fcHsHNK26u1r1P6+uvvgbcU5tJNnA5Dp+SGOYlgzTkn5sdADOUceJIc241YpWKwvpGXJy/mqzpe7MlBhY+I7vm0zOGTBKETrATROSE/nmGucnmhSmkpHNBi8ihFQoRWja8S0JWivNFFMDGpihVdEQcDmDFNQ5ahX8NkZsTtRcsKGDbabWiqpStT4YqKJVqPe3uL1DkIJoRULAb+82yLRBq9CGHu4jMczMcyAmoaPh1CghkDbXuP0jKBnLmdsQ8DFEZA6oGYN6mAtWFTPD7CHBmWGq6O0fXIxQMkUKKQR8KgUXEtpg1RrMgur/AIZtLnH5hJYj0vdIKfgsohoTlb7uQ2NbaGa01h5Gg9ZQM/RXw71ItJS0Ql9F1WPtoBuWdGbTuFjCkWdnd5f1eofO/7txsWBYr+mfP0GHgRSjX/oezXLgx3L93t+dn9CPsXOLjhFOT7+Sby8ppQLQjSN6cUE6fIaEglQ1Kbacazv7C5CFXfUtoyzCAAAAAElFTkSuQmCC", 173flag_5="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMTozNAAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjAwAINNr88AAAAJcEhZcwAACxMAAAsTAQCanBgAAAiBaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgI
173HhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNiswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozOTgxMjAxMy0zYmU5LWNjNDEtYTE1Yy01ZmM3MWVjYjc3YjY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDozOTgxMjAxMy0zYmU5LWNjNDEtYTE1Yy01ZmM3MWVjYjc3YjY8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDozOTgxMjAxMy0zYmU5LWNjNDEtYTE1Yy01ZmM3MWVjYjc3YjY8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6Mzk4MTIwMTMtM2JlOS1jYzQxLWExNWMtNWZjNzFlY2I3N2I2PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMxOjM0KzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjYrMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMxOjM0KzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KEe0KngAAAcNJREFUKBWNUr1uE0EQ/na9vnD26WKEECAHRXRBSpXCAiQkeIF00JInoOEBeAQegKTgBVJEVATJSG4CRVKmgcayEwHCsR1zZ593b/lmHVdpGGn2Z2a+2ZlvVvV6vXaz2Xw2mUwcgAp1Id4DSl0/LywuSZJKv9//YighioYr5P9vURQpUxRFQCx3uSit8efoGBftb8F383kLtx5twZdluMtCMASjl0DnHJy1bKKC888dfH/6BqOPX4PK+fywE3wSI7EiJRPqPM/h2a8YJf90OMLZ7j58aw0urQaV89nefvBJzDKBPG4GgwGGwyGK2Qy6WkXBBJe9nyjnc+B3Lg8BWkH3f+GScRFWUUqllPF4DJ1lGabTKay0QJBJ6oiebCA7OYRdQdDs5BOixxv0JSFGSpfXBWfmBC15kKy6anB/5yWyH138PfggJtS3X9H2AqXyfH3Rv+BEjbXWzVg+x2mp3hVzxHduY/PdW4xe70BmnD5Yh6nXID7Fv0EOyKWtCNawnEaapsLoShzHIYCsQsU30Lh3N1QgfHi26Dk6IZDEm1qtBiZomG63+569PCQ4ZwU6IK4WAYkojlZEpkUQWHHJRDF/7+k/teMG5GZhkJMAAAAASUVORK5CYII=", 174flag_6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMzoxNAAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjA4AITJcxAAAAAJcEhZcwAACxMAAAsTAQCanBgAAAiHaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNjowOCswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo1YWU1ZDBjNC0yMWE3LTNhNGItOGRmZi03N2U4NjY3MWQyNjk8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo1YWU1ZDBjNC0yMWE3LTNhNGItOGRmZi03N2U4NjY3MWQyNjk8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1YWU1ZDBjNC0yMWE3LTNhNGItOGRmZi03N2U4NjY3MWQyNjk8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NWFlNWQwYzQtMjFhNy0zYTRiLThkZmYtNzdlODY2NzFkMjY5PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMzOjE0KzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjY6MDgrMDI6MDA8L3htcDp
174DcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMzOjE0KzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K3rcp3AAAAflJREFUKBUlkrtuFEEQRU/39LAPvxZjgwM/5AAkMsuBYz4CUmeEEJORwA9A4MCSA0v+Af+AySByioQtnGwAtmAX7+7MTj+pmSlpNOqq27du1W318937i8319ReTYhZIZPnrQ/RgheQ8ZBlNhIDKDXH8D3d8Coqw1F/Ihnd3X4wpSpUXFQuFlTzk/T6q24OuHMqyJVhaav6p73CllT6Cw5DLXVP9HYHpYOcCTolkHVoAaTyGU+lWx+EhajAgSs3WeaXoVBY3GmOcrQjSyQuBMoYwm5GCyL+5gbOzluDgAHZ3iXPBek+SL0jFO4cpixLbmRKKAh49JLu7Jb19Q3r6DDY2WoKjI9TVD+Knz/h6zvsJPkSc3DV/phPG2sgIFUrLdqSgNjdb+fv7LcH5Obx6KcoilchmOhUVgftiVisoKHVOihE9nBHX1lAfPsLVNVxetgR7eyC5lMmIw1/QybFCVqs3dm6xWhYoBEbgYT5HP3kMJycwHLYEtaLVVeLvW6J30szjxOJ6f8ZbGyoKTExepybECQs7O822G4btbRBi8ahZeFIq+ExnIbhgImmwLGyB0OnnXXqLi+jlZXlIDra2WgVim5JcqCpSnjP33vS0FkfiwAw1xxfRPe9mlJ0HWudfv8GKPByxCgE1IeMhFqfRiGmWcFEi2N6U+P0/O58WVdHdeygAAAAASUVORK5CYII=", 175flag_7="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMzowNAAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjExAJUm/XQAAAAJcEhZcwAACxMAAAsTAQCanBgAAAiHaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNjoxMSswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDplMjE5NDU2Mi0zN2QzLWMzNDEtODJiNy0wMGZlNGY1NDljNTA8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDplMjE5NDU2Mi0zN2QzLWMzNDEtODJiNy0wMGZlNGY1NDljNTA8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDplMjE5NDU2Mi0zN2QzLWMzNDEtODJiNy0wMGZlNGY1NDljNTA8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6ZTIxOTQ1NjItMzdkMy1jMzQxLTgyYjctMDBmZTRmNTQ5YzUwPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMzOjA0KzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjY6MTErMDI6MDA8L3htcDp
175DcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMzOjA0KzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4Kl15VLQAAAZ9JREFUKBV1ksFu1DAQhv+xJ5tk1UqlSJxaxJW34MTzcOVZEAeehF4Qdy6cuKGqKhsFtsk6sT02400qVpUYyRo7zv/N77Hp2/t3n6+eP3uz3x+EiCw2AL+oEHcVaEM4Rs5AjMjBL2tkOW+39mfX3zC7PW2dhbkekQYD6QgcEnINyG4FFNlx+g+4RUTRsrvdwV8mNG9/I9wyxo+q7NTFqwT5Y1bhWvgxqaFqdpi7DuxzgL93mL4IpM+IYwadZZiUECcF/CckC5Iei50b4AfC8EmAWoWXwOalYPphkMaTIzwB+VBhdgdwPwzoKSE0CZqO9l3MkF8EqnStdp9G+ZTZ4mGcwePBwZmEpJ22pWDZ7XVoKxB0nMYKK2m2BtNBjxD9DK+TXK6KVsslj6fKx/lCyFrFG4vZpwLwMietrjdtqFAW0IJaBEdw2SlLhevvEkFWMgmr9YsztaO5busWpmlB7RZUN4BVbHFTHpE6FW2ajA+YfODakFLogu/IfviaNq8bJldxY0x1DsMqZm2C4cW70ReosKg8TxHBcIopt0OW738BSx7Y1a0TiAkAAAAASUVORK5CYII=", 176flag_8="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMTo0NQAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjAwACUQiXQAAAAJcEhZcwAACxMAAAsTAQCanBgAAAiBaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNiswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ZTJhYTgyNi1mZmVjLTRhNGUtODE2OS1kZjg4NmVmNTUzN2Y8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo5ZTJhYTgyNi1mZmVjLTRhNGUtODE2OS1kZjg4NmVmNTUzN2Y8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo5ZTJhYTgyNi1mZmVjLTRhNGUtODE2OS1kZjg4NmVmNTUzN2Y8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6OWUyYWE4MjYtZmZlYy00YTRlLTgxNjktZGY4ODZlZjU1MzdmPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMxOjQ1KzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjYrMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMxOjQ1KzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K4CighAAAAdpJREFUKM9lkc1tE1EURs/7mbGdOIkXIBQFloAQCyQqoAA6QXRBFzSQDTVABSyyACQgUgRIRAE7iWfm/d77WHhJA+c
1767n455dfrm/eHJvRdhmKSzzl3mW14/fcmz48fEmjAN3GzGzacvXJ6+w62OUKlysLfnfl39+eA3JhvxhegrM9f4IYluPqOb97jWYQGMofQ9s9sRv1hAqSxwuBCMvxo21GFBHgNz57kIG1KK0CDnjGVnkFIk/F3jFz2aCzYl4voaX3JhypFcIk06znNAqtBEURVaA1SRKtRxgpjQnKkNai34IUxoGKgpoa6HtKXWiohQq+wuiFBrJW9uaHdXaMrkUkkh4IfrLeWw2626HsYbwjgyTiMhR0wDr8o4TQxX13THd2gpoV1iGEZ8CIEyjUhTOi+QtqgIqoqqYhqo6s7o2xrzKKAhYXwmhICPJWFiQGjsKZBvENH/ASrUdoGJD9EQwTlKSvhUskicqJZ6BI28pqnSWqO1Bg1aa6gqlYSNEZmCVGtc0SoeaSs791jVWT+fgTlh/2DJcn+J7fwu43zOwXLJkgfQdUQTfG8tKrry/Vbf+vPpCZ0LdpEsuuLs4xnp55ZcMwC279l+/c7v5/eRUshGVVQWk9HP/wCJPFv6tGivGQAAAABJRU5ErkJggg==", 177flag_9="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMjo0MwAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjEyAFmCsjQAAAAJcEhZcwAACxMAAAsTAQCanBgAAAiHaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNjoxMiswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo0MWIzYzk3Yy0zMDYwLWRiNDMtYmVkMy05OWRiNzM4NWNlNjM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo0MWIzYzk3Yy0zMDYwLWRiNDMtYmVkMy05OWRiNzM4NWNlNjM8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo0MWIzYzk3Yy0zMDYwLWRiNDMtYmVkMy05OWRiNzM4NWNlNjM8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NDFiM2M5N2MtMzA2MC1kYjQzLWJlZDMtOTlkYjczODVjZTYzPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMyOjQzKzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjY6MTIrMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMyOjQzKzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KVSzMIAAAAeRJREFUKBVdkkuO00AQhv9+2G07E5RMGIQGsQg7BCvYsBmJI7HgHhyAQ3AEWLBmAWhYjDLSgAAJJnEefvejKDswkSjJble1v6q/q0u8f/Hy7f3p7HlRVR5CKLCJOILQmj9k7wIUQM6BOvvXJ3+UZerbevVOi6+ViNYpdFMzIIDQ/1/dsHuC37w17PcBIkQJu9tS6OTpD6SnHXzdclxAKoLUAsHx4+mG6bmDEdLUIPu5hD5+tsTkQYe0s
177FAyoKwN8o3D7UmHJIkQWNFQ/UCzAiAeRzi5qqB3qxphJuFqiyIYXHwqcLV4hMdnDU5n54hVxMqY+M9i0qi3NXS+LbDeeHi/xip/gsuPS7Sze7j+bRC7c0yPc3in+Si9lL31R6UgsWPVumpLtJ2HwhJWNhjNY9Sf36Ad30W4M+amXjA1ZRWHBH0TnVNorOcEy4DdrQZSjCDCAvMTgflZBqgFwpZQlilfTPevOK/U82gV9+uaoC9fJT60EsoKZ8aORMw9S3LAKtAG8NURz8TQtwHmSpyQPK/qewKvQ0yTkZEIRMZEGVSaQmYZJF+TmKthHsh5hLblZBXsrmTpnTY8M0H4if4VqdcftHrIgdqksdSjZA8blsLVICVPoQdYhZMOjW9hLfGIUFoTffkDb0vpNv7DjckAAAAASUVORK5CYII=", 178flag_10="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMjowMAAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjAwAJKfH2gAAAAJcEhZcwAACxMAAAsTAQCanBgAAAh7aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNiswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo1NDNhNTM3Zi1mOGY3LTlkNGUtOGQzZS1lMWVlMTQ2N2JiY2Y8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo1NDNhNTM3Zi1mOGY3LTlkNGUtOGQzZS1lMWVlMTQ2N2JiY2Y8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1NDNhNTM3Zi1mOGY3LTlkNGUtOGQzZS1lMWVlMTQ2N2JiY2Y8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NTQzYTUzN2YtZjhmNy05ZDRlLThkM2UtZTFlZTE0NjdiYmNmPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMyKzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjYrMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMyKzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KCn2zfQAAAcxJREFUKBVNUl1uEzEQ/mzPenfTjZSoTRDNAxIKQkhIvQLH4RAcAqmPXIEDIPFQrsALPCAVCZEoSgJRm2S36/VPx04KtdZrz/ibb74ZW/z++O5qMhm92e1qByEU4pAECJ4QyQQCfxbwPOMIwVVVT81mqy9E0gpoi0r7/3gcgMGHA4V8IDquzBdjNMeSWX8DTsYwdZvIH/9UppPpOvPYnfb6LofZLEHm9Vtg+hxut/8nOCIEZ12t9wk8PDtBVPMw0q6q4Ie/QM1wijB6AdePWQSXF8B1Yb7Y4etimWIuxiM8Pe/DOs+IWAZTFJpVl6DNcoab8SmMMdzDI0GmsJ7/wfx6zoTA5NRj0LOwXewzYyJtV2L7dwXa7mvsmwY+eCip+DDAdQGjJz1MXw6SgjPet52F9wcFEXPXGuyaGnR59R7DH8MElEqmNWbNiWC9SzZdK7TWcnY2+SwqkErgZrEFfVp/Zl3sEXx3lM4O1xlRx1tL3mMwe/k9IMYobODomTof6D5H+pDrXKPMShRxUg4V3xUHOlZirEHdcbltDWssSRJwt35A4lZ8wE+8kplqqNBS5wUHF8hkDpKxJMmldJxVcKMt1L5hAm5ZCGVo8f0ey83KIfugbrAAAAAASUVORK5CYII=", 179flag_11="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMToyMAAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjEyACXPNlsAAAAJcEhZcwAACxMAAAsTAQCanBgAAAiHaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgI
179HhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNjoxMiswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowZDliMmU5OS0zMzgyLThjNGUtYjRiNS01ZWZiNzdhYTYyMTA8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDowZDliMmU5OS0zMzgyLThjNGUtYjRiNS01ZWZiNzdhYTYyMTA8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDowZDliMmU5OS0zMzgyLThjNGUtYjRiNS01ZWZiNzdhYTYyMTA8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6MGQ5YjJlOTktMzM4Mi04YzRlLWI0YjUtNWVmYjc3YWE2MjEwPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMxOjIwKzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjY6MTIrMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMxOjIwKzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K3pCUxQAAAfxJREFUGBkFwbtqFUEAgOF/Lrubc8lJIioJiGAjGgQLWwUrK99EfAIbC9/A0trGB7DVyk6UIJoQTQyCtyQnOZ6dnfuM3ycePX/2Zra1ed8akxul1J9hyeN7D7l97ToueAQgu47+02dOX7xEXdyAmPN0PFI/zk7f6rMSRCbiSHTAj+Joupama1GNRtSKUIrStAx/F6jRiBoio1Rp/hmhjxfnpNURwVpWVMPR4hzvPVRIpaKlpADeO+zvE9T6GHxAdw43P0PGGBm8YwgeFzwHwZJTAmD+6zt779+RSqHkQpovyc6RrCUNjhwSsreGf8bQ24HeDmCWpJgIvufww2tePbnL0dddqhSE3Z9EYwi9IfQ93hp0v1gSRy05JYpuYbnEDj3fDnY59GMuPHjKeX+KXDgGDLrvKYOjaMfSGbS1lmgMuRSatsBwBlUwW7vEZLbB6vaEy1tXCSf7RI7A3qAYi1caFy3aBY+wA7lWxrWC64kxMF5Z5c72HUSFppsxpEgChHMUY0ErfAloH1PO1pIkaQ1RsafUUsk5U4UCATknSq0UIAdPtkNOUqoiS9bkvC5bjSyla1c6WL/CZHXKdDpFeoWsoMYjwmTCBEA3WITuhCSR13Xrywt9bG7SNFYmJ0kzdj7u4E+WhBQAkG2L2dtnvnmLQCKuqJJEHQ1ZfvkPL1xHMCie384AAAAASUVORK5CYII=", 180flag_12="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMzoyNgAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjIxAAg7n2UAAAAJcEhZcwAACxMAAAsTAQCanBgAAAiHaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgI
180HhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNjoyMSswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2MTM2MWU4OC01MGEyLTdjNDgtODlmMS0zMjFmYzc5YWUyNWU8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo2MTM2MWU4OC01MGEyLTdjNDgtODlmMS0zMjFmYzc5YWUyNWU8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo2MTM2MWU4OC01MGEyLTdjNDgtODlmMS0zMjFmYzc5YWUyNWU8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjEzNjFlODgtNTBhMi03YzQ4LTg5ZjEtMzIxZmM3OWFlMjVlPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMzOjI2KzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjY6MjErMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMzOjI2KzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KHyFM1wAAAlNJREFUGBkFwUtoVFcAgOH/PO7MZOLknWgyjYaJwWbhKlkoEnXVVglddCGl2dS1oK7dKWg30oKUbgouXAVEBEEQIRgVFBUVSmnU2AySxqaZTGYyc+ee+zr39PvEucUrj3rKwyeNH1ghhHJAUWmUUNStAmBAWTJnCWyKAJxztmtPUbU2asu6IUJhdUyoU4SAnHCs25QEuDhSQwC/1IbQCIa9jNgJnINQJ7RkKHTNb5D4BQgMGYLXqWKhGPB973/k/u1BSsVP/SssNoa41e5iVlskjg4Ru34THcUJUWx4F8Z0C8HPA9sc721yb2mOO8/62KxG/PhVnfNnXjHjDXKlPkDbwbQniNMUHZoOm6bIgm7x3WCNQ6W3vFk/y5t0P6e+ycArsfSiyNTbdeaPPGFSVri7M8J904uMDDps+nwu5ZgZWmfMbdAKFH/+UePB5b/4fCyhZ7TA+JejmOIYO40PlIVkVhl+a0ywz+8gW8bQb3zmqwNcX6tQ7yhmDq7if5HxcUfwdDngxuUqlfxLmlGZ638f4HR1iJ7Qp20MYu/FuWUxtudESTi76jy1X1l+Hf9EcXsfD59WQCq+nvtEp3+NC/9MUrWSKWVtRyrltoLHOkpia8OAXSnSio7cmhV8+77MpZEdfjhzE7Dc3prh6uoEqJBJ4diwWOWEyiWJ1disTxY0uczl24U8U16BQS/PtazM8+ZhJLDkBEdHDNtxSD0K8OJYi5wEa/t0rp39rteiaTxpuvNaducynHbMewm7mQQk8zKmlmR0xZaSSUniJMMlXS7MVv4Hi0Mcu1jONY8AAAAASUVORK5CYII=", 181flag_13="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA8mVYSWZNTQAqAAAACAAHARIAAwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAATEAAgAAACIAAAByATIAAgAAABQAAACUh2kABAAAAAEAAACoAAAAAAAAAEgAAAABAAAASAAAAAFBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoV2luZG93cykAMjAyMDowODoxOSAxNTozMzozNQAABJAEAAIAAAAUAAAA3qABAAMAAAABAAEAAKACAAQAAAABAAAAEKADAAQAAAABAAAACwAAAAAyMDIwOjA4OjE5IDE1OjI2OjE1AOZIbiEAAAAJcEhZcwAACxMAAAsTAQCanBgAAAiHaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgI
181HhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj42MjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40MjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAyMC0wOC0xOVQxNToyNjoxNSswMjowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmMTlkMzZkMi1hM2UwLTc4NGQtYTE2NS0zNDljNDcyODg0Yzg8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDpmMTlkMzZkMi1hM2UwLTc4NGQtYTE2NS0zNDljNDcyODg0Yzg8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpmMTlkMzZkMi1hM2UwLTc4NGQtYTE2NS0zNDljNDcyODg0Yzg8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6ZjE5ZDM2ZDItYTNlMC03ODRkLWExNjUtMzQ5YzQ3Mjg4NGM4PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDIwLTA4LTE5VDE1OjMzOjM1KzAyOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjAtMDgtMTlUMTU6MjY6MTUrMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDIwLTA4LTE5VDE1OjMzOjM1KzAyOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KdNwlrAAAAmNJREFUGBkVwdtrFFcAwOHfmTOzNzeX3UQiQRNj4iW2So0WRBFvb4Io/gn6oqgIvlXwUd9aUHwrBfFZRCgUKkjig1hKDXiLQhIjJFk2bmYzszu7cznnzGi/T0w/fDy9bc/kiQf/Ns3RciTHBiT33sPlSShWenn6LsCYjDTL8DsKZTLKRWkKhbJsNVZn7N/mHHFlU8KVg/0kWOQ2Gtw8UkU7Of6YbeOvQ962CGLDj6NV+ss5Xs25VGWOjUgI+/Zki4p0ybkxg2mXeL1JdWycleWYq0Mpv9YkblcQdDX2SIFy3uHFZ48Dw2D8Lvb915rzJwf4qaJZXq6RH96JsErU/JC/apJGqKm3FP97NrvGdD3h3oVRIp3j/tN5rGM7C4zLFnceLfCuaeOu+Vx95tM7uIlT1ZCZpRanf+jn7KFB1ryIqTJ4fhfP79CMEuzFN/M8eRnxdysjViG9DjxfaLC0XOLiuMNgJyDsBjg4zH3xuHFmmP8+1PnzU8TPlQTB1C8zm4dGj4/YmRkZ6ZOlosP8kofbViwGMFGVLDQVGNhekYQGhkqWSTJbRu3aC2sir7E7IQ1luHXpAHevH2bX1hKLbszenpR2O2aslDFcTBkoCHZXbT6uh7Q7EXGcYHmxMkEY0Q0TvVr39Urd064XarJUrwZKbyRad2Kja2+7+ti+qj53YptW/3S0lUTEsTKib/+113Z5YsoNNTu29FEuOURJSk9RYksLIUDrjDgxtELFRidBqBghHWS8MmuXhP87an5yezEfZsFXKzU5Nvc45ISN5LsMjEhxRIoQCrIQlSUpKi1mafjxG7w3O6eJhnGBAAAAAElFTkSuQmCC", 182flag_14="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFXSURBVHjaYvzPgAD/UNlYEUAAkuTgCAAIBgJggq5VoAs1qM0vdzmMz362vezjokxPGimkEQ5WoAQEKuK71zwCCKyB4c//J8+BShn+/vv/+w/D399AEox+//8FJH/9/wUU+cUoKw20ASCAWBhEDf/LyDOw84BU//kDtgGI/oARmAHRDJQSFwVqAAggxo8fP/Ly8oKc9P8/AxjiAoyMjA8ePAAIIJZ///5BVIM0MOBWDpRlZPzz5w9AALH8gyvCbz7QBrCJAAHEyKDYX15r/+j1199//v35++/Xn7+///77DST/wMl/f4Dk378K4jx7O2cABBALw7NP77/+ev3xB0gOpOHfr99AdX9/gTVASKCGP//+8XCyMjC8AwggFoZfIHWSwpwQk4CW/AYjsKlA8u+ff////v33998/YPgBnQQQQIzAaGNg+AVGf5AYf5BE/oCjGEIyAQQYAGvKZ4C6+xXRAAAAAElFTkSuQmCC", 183flags=[null,flag_1,flag_2,flag_3,flag_4,flag_5,flag_6,flag_7,flag_8,flag_9,flag_10,flag_11,flag_12,flag_13,flag_14],VerifyDelivery=function(){var a=function(f){switch(f){case "DELIVERED":return[la._1896,!0];case "RELAYED":case "PENDING":case "DEFERRED":return[la._1897,!0];case "MAILBOX_FULL":return[la._1898,!1];case "ADDRESS_UNKNOWN":return[la._1899,!1];case "DOMAIN_NO_MAIL":return[la._1900,!1];
183case "FORWARDING_REFUSED":return[la._1901,!1];case "REFUSED_AS_SPAM":return[la._1902,!1];case "HELD":return[la._1903, 184!1];case "FAILED":return[la._1904,!1];default:return null}},b=function(f,k,n,q){if(f!=null&&document.body.contains(f)){var r=document.createElement("div");r.setAttribute("style","margin-top:12px;"+(n?"color:#009000;":"color:tomato;"));q&&(n=document.createElement("b"),n.textContent=q,r.appendChild(n),r.appendChild(document.createTextNode(" \u2014 ")));r.appendChild(document.createTextNode(k));f.replaceChildren(r)}},c=function(f,k){var n=k?a(k.state):null;n&&b(f,n[0],n[1],n[1]?null:k.domain);return n!= 185null},d=function(f,k){var n=k||{},q=0,r=function(){f!=null&&document.body.contains(f)&&network.request({path:"user/verify",type:"status"}).done(function(u){if(f!=null&&document.body.contains(f))if(u?.ear&&EmailStatus[u.ear.status]==="VERIFIED")n.onVerified?.();else u=u?.emailDelivery,c(f,u),u&&!u.settled&&++q<20&&setTimeout(r,5E3)})};setTimeout(r,n.delay??4E3)};return{message:a,sendMessage:function(f){switch(f){case "NEW_MAIL_SENT":return[la._366,!0];case "IS_VERIFIED":return[la._360,!0];case "ALREADY_SENT_RECENTLY":return[la._369, 186!1];case "MAX_ATTEMPTS_REACHED":return[la._370,!1];case "IS_BLOCKED":return[la._368,!1];case "ADDRESS_REFUSED":return[la._1903,!1];default:return null}},line:b,clear:function(f){f!=null&&document.body.contains(f)&&f.replaceChildren()},show:c,watch:d,refresh:function(f,k){f!=null&&document.body.contains(f)&&network.request({path:"user/verify",type:"status"}).done(function(n){n=n?.emailDelivery;f!=null&&document.body.contains(f)&&n&&(n.settled?n.state!=="DELIVERED"&&n.state!=="RELAYED"&&c(f,n):n.at> 1870&&keepaTime.now()-n.at<=15&&(c(f,n),d(f,k)))})},GOOD:"color:#009000;",BAD:"color:tomato;"}}(),verifyRegExp={email:/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,asin:/([BC][A-Z0-9]{9}|\d{9}(!?X|\d))/,globalAsin:/([BC][A-Z0-9]{9}|\d{9}(!?X|\d))/g,productCode:/(?:^|\D)(\d{8,14})(?![\dXx])/,globalProductCode:/(?:^|\D)(\d{8,14})(?![\dXx])/g,sellerId:/([A-Z0-9]{9,21})/,domainId:/^([1-9]|10|11|12|13|14)$/, 188vatId:/^\s*[A-Za-z]{2}[0-9A-Za-z\s\-.,;_:#]{2,30}\s*$/},canonicalProductCode=a=>{if(typeof a!=="string")return"";a=a.trim();return/^\d+$/.test(a)?a.replace(/^0+(?=\d)/,""):a.toLowerCase()},productCodeInLists=(a,...b)=>{var c=canonicalProductCode(a);return c===""?!1:b.some(d=>Array.isArray(d)&&d.some(f=>canonicalProductCode(f)===c))};var tld; 189const CsvType={AMAZON:{index:0,deal:!0,currency:!0,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,isTrackable:!0,isTrackableStock:!0,graphAPI:!0,color:"#FFA500",fillColor:["rgba(255, 224, 193, 0.5)","rgba(255, 224, 193, 1)"],bg:"rgba(255, 225, 192, 0.8)"},NEW:{index:1,deal:!0,currency:!0,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,isTrackable:!0,isTrackableStock:!0,graphAPI:!0,color:"#88d",bg:"rgba(225, 235, 255, 0.8)"},USED:{index:2,deal:!0, 190currency:!0,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,isTrackable:!0,isTrackableStock:!0,graphAPI:!0,color:"#444",bg:"rgba(230, 230, 230, 0.8)"},SALES:{index:3,deal:!0,currency:!1,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,isTrackable:!0,isTrackableStock:!1,graphAPI:!0,color:"#8FBC8F",bg:"rgba(198, 237, 203, 0.8)"},LISTPRICE:{index:4,deal:!1,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,isTrackable:!0, 191isTrackableStock:!0,color:"#8B4513",bg:"rgba(214, 175, 147, 0.8)"},COLLECTIBLE:{index:5,deal:!0,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,isTrackable:!0,isTrackableStock:!0,color:"#B0C4DE",bg:"rgba(220, 233, 251, 0.8)"},REFURBISHED:{index:6,deal:!0,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,isTrackable:!0,isTrackableStock:!0,color:"#00FFFF",bg:"rgba(198, 255, 255, 0.8)"},NEW_FBM_SHIPPING:{index:7,deal:!0,currency:!0, 192showDefault:0,isEnabled:!0,isWithShipping:!0,isTopGraph:!0,isOfferData:!0,isTrackable:!0,isTrackableStock:!1,graphAPI:!0,color:"#039BE5",bg:"rgba(177, 213, 255, 0.8)"},LIGHTNING_DEAL:{index:8,deal:!0,currency:!0,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,isTrackable:!0,isTrackableStock:!1,graphAPI:!0,color:"#ff0000",bg:"rgba(255, 221, 221, 0.8)"}
192,WAREHOUSE:{index:9,deal:!0,currency:!0,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!0,isTrackable:!0, 193isTrackableStock:!1,graphAPI:!0,color:"#9c27b0",bg:"rgba(237, 206, 243, 0.8)"},NEW_FBA:{index:10,deal:!0,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!0,isTrackable:!0,isTrackableStock:!1,graphAPI:!0,color:"#ff5722",bg:"rgba(255, 188, 167, 0.8)"},COUNT_NEW:{index:11,deal:!1,currency:!1,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!1,isOfferData:!1,isTrackable:!0,isTrackableStock:!1,color:"#88d",bg:"rgba(225, 235, 255, 0.8)"},COUNT_USED:{index:12,deal:!1, 194currency:!1,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!1,isOfferData:!1,isTrackable:!0,isTrackableStock:!1,color:"#444",bg:"rgba(230, 230, 230, 0.8)"},COUNT_REFURBISHED:{index:13,deal:!1,currency:!1,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!1,isOfferData:!1,isTrackable:!0,isTrackableStock:!1,color:"#00FFFF",bg:"rgba(198, 255, 255, 0.8)"},COUNT_COLLECTIBLE:{index:14,deal:!1,currency:!1,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!1,isOfferData:!1,isTrackable:!0, 195isTrackableStock:!1,color:"rgba(220, 233, 251, 0.8)",bg:"rgba(220, 233, 251, 0.8)"},EXTRA_INFO_UPDATES:{index:15,deal:!1,currency:!1,showDefault:0,isEnabled:!1,isWithShipping:!1,isTopGraph:!0,color:"#444",bg:"rgba(255, 225, 192, 0.8)"},RATING:{index:16,deal:!1,currency:!1,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!1,isOfferData:!0,isTrackable:!0,isTrackableStock:!1,color:"#009688",bg:"rgba(200, 255, 251, 0.8)"},COUNT_REVIEWS:{index:17,deal:!1,currency:!1,showDefault:0,isEnabled:!0,isWithShipping:!1, 196isTopGraph:!1,isOfferData:!0,isTrackable:!0,isTrackableStock:!1,color:"#8ab300",bg:"rgba(222, 239, 167, 0.8)"},BUY_BOX_SHIPPING:{index:18,deal:!0,currency:!0,showDefault:1,isEnabled:!0,isWithShipping:!0,isTopGraph:!0,isOfferData:!0,isTrackable:!0,isTrackableStock:!0,graphAPI:!0,color:"#ff00b4",bg:"rgba(255, 204, 240, 0.8)"},USED_NEW_SHIPPING:{index:19,deal:!0,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!0,isTopGraph:!0,isOfferData:!0,isTrackable:!0,isTrackableStock:!1,color:"#444",bg:"rgba(173, 173, 173, 0.7)"}, 197USED_VERY_GOOD_SHIPPING:{index:20,deal:!0,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!0,isTopGraph:!0,isOfferData:!0,isTrackable:!0,isTrackableStock:!1,color:"#009678",bg:"rgba(162, 255, 236, 0.7)"},USED_GOOD_SHIPPING:{index:21,deal:!0,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!0,isTopGraph:!0,isOfferData:!0,isTrackable:!0,isTrackableStock:!1,color:"#795548",bg:"rgba(189, 162, 153, 0.8)"}
197,USED_ACCEPTABLE_SHIPPING:{index:22,deal:!0,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!0, 198isTopGraph:!0,isOfferData:!0,isTrackable:!0,isTrackableStock:!1,color:"#9E9E9E",bg:"rgba(220, 220, 220, 0.8)"},COLLECTIBLE_NEW_SHIPPING:{index:23,deal:!1,currency:!0,showDefault:0,isEnabled:!1,isWithShipping:!0,isTopGraph:!0,isOfferData:!0,isTrackable:!1,isTrackableStock:!1,color:"#444",bg:"rgba(255, 225, 192, 0.8)"},COLLECTIBLE_VERY_GOOD_SHIPPING:{index:24,deal:!1,currency:!0,showDefault:0,isEnabled:!1,isWithShipping:!0,isTopGraph:!0,isOfferData:!0,isTrackable:!1,isTrackableStock:!1,color:"#444", 199bg:"rgba(255, 225, 192, 0.8)"},COLLECTIBLE_GOOD_SHIPPING:{index:25,deal:!1,currency:!0,showDefault:0,isEnabled:!1,isWithShipping:!0,isTopGraph:!0,isOfferData:!0,isTrackable:!1,isTrackableStock:!1,color:"#444",bg:"rgba(255, 225, 192, 0.8)"},COLLECTIBLE_ACCEPTABLE_SHIPPING:{index:26,deal:!1,currency:!0,showDefault:0,isEnabled:!1,isWithShipping:!0,isTopGraph:!0,isOfferData:!0,isTrackable:!1,isTrackableStock:!1,color:"#222",bg:"rgba(255, 225, 192, 0.8)"},REFURBISHED_SHIPPING:{index:27,deal:!1,currency:!0, 200showDefault:0,isEnabled:!1,isWithShipping:!0,isTopGraph:!0,isOfferData:!0,isTrackable:!1,isTrackableStock:!1,color:"#009688",bg:"rgba(192, 255, 226, 0.8)"},EBAY_NEW_SHIPPING:{index:28,deal:!1,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!0,isTopGraph:!0,isOfferData:!1,isTrackable:!1,isTrackableStock:!1,color:"#009688",bg:"rgba(94, 226, 225, 0.8)"},EBAY_USED_SHIPPING:{index:29,deal:!1,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!0,isTopGraph:!0,isOfferData:!1,isTrackable:!1,isTrackableStock:!1, 201color:"#99E600",bg:"rgba(207, 255, 107, 0.8)"},TRADE_IN:{index:30,deal:!1,currency:!0,showDefault:0,isEnabled:!1,isWithShipping:!1,isTopGraph:!1,isOfferData:!1,isTrackable:!1,isTrackableStock:!1,color:"#ff597c",bg:"rgba(255, 201, 213, 0.7)"},RENT:{index:31,deal:!1,currency:!0,showDefault:0,isEnabled:!1,isWithShipping:!1,isTopGraph:!1,isOfferData:!0,isTrackable:!1,isTrackableStock:!1,color:"#b3809a",bg:"rgba(212, 212, 241, 0.8)"},BUY_BOX_USED_SHIPPING:{index:32,deal:!0,currency:!0,showDefault:0,isEnabled:!0, 202isWithShipping:!0,isTopGraph:!0,isOfferData:!0,isTrackable:!0,isTrackableStock:!1,graphAPI:!0,color:"#da66ff",bg:"rgba(225,159,255,0.6)"},PRIME_EXCL:{index:33,deal:!0,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!0,isTrackable:!1,isTrackableStock:!1,graphAPI:!0,color:"#dfc300",bg:"rgba(208,190,123,0.6)"},COUNT_NEW_FBA:{index:34,deal:!1,currency:!1,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!1,isOfferData:!1,isTrackable:!0,isTrackableStock:!1,color:"#ff5722", 203bg:"rgba(255, 87, 34, 0.1)"},COUNT_NEW_FBM:{index:35,deal:!1,currency:!1,showDefault:0,isEnabled:!0,isWithShipping:!1,isTopGraph:!1,isOfferData:!1,isTrackable:!0,isTrackableStock:!1,color:"#039BE5",bg:"rgba(3, 155, 229, 0.1)"},length:36,getObjectsSorted(){return[CsvType.SALES,0,CsvType.RATING,CsvType.COUNT_REVIEWS,CsvType.BUY_BOX_SHIPPING,CsvType.AMAZON,CsvType.NEW,CsvType.NEW_FBA,CsvType.NEW_FBM_SHIPPING,CsvType.PRIME_EXCL,CsvType.LIGHTNING_DEAL,0,CsvType.BUY_BOX_USED_SHIPPING,CsvType.USED,CsvType.USED_NEW_SHIPPING, 204CsvType.USED_VERY_GOOD_SHIPPING,CsvType.USED_GOOD_SHIPPING,CsvType.USED_ACCEPTABLE_SHIPPING,CsvType.WAREHOUSE,0,CsvType.REFURBISHED,CsvType.REFURBISHED_SHIPPING,CsvType.COLLECTIBLE,CsvType.COLLECTIBLE_NEW_SHIPPING,CsvType.COLLECTIBLE_VERY_GOOD_SHIPPING,CsvType.COLLECTIBLE_GOOD_SHIPPING,CsvType.COLLECTIBLE_ACCEPTABLE_SHIPPING,CsvType.LISTPRICE,CsvType.TRADE_IN,CsvType.RENT,CsvType.EBAY_NEW_SHIPPING,CsvType.EBAY_USED_SHIPPING,1,CsvType.COUNT_NEW,CsvType.COUNT_NEW_FBA,CsvType.COUNT_NEW_FBM,CsvType.COUNT_USED, 205CsvType.COUNT_REFURBISHED,CsvType.COUNT_COLLECTIBLE]},getObjectNamesSortedTracking(){return"BUY_BOX_SHIPPING AMAZON NEW NEW_FBA NEW_FBM_SHIPPING PRIME_EXCL LIGHTNING_DEAL BUY_BOX_USED_SHIPPING USED USED_NEW_SHIPPING USED_VERY_GOOD_SHIPPING USED_GOOD_SHIPPING USED_ACCEPTABLE_SHIPPING WAREHOUSE REFURBISHED REFURBISHED_SHIPPING COLLECTIBLE COLLECTIBLE_NEW_SHIPPING COLLECTIBLE_VERY_GOOD_SHIPPING COLLECTIBLE_GOOD_SHIPPING COLLECTIBLE_ACCEPTABLE_SHIPPING LISTPRICE TRADE_IN RENT EBAY_NEW_SHIPPING EBAY_USED_SHIPPING SALES RATING COUNT_REVIEWS COUNT_NEW COUNT_NEW_FBA COUNT_NEW_FBM COUNT_USED COUNT_REFURBISHED COUNT_COLLECTIBLE".split(" ")}, 206getName:function(a){switch(a){case 0:return"Amazon";case 1:return la._93;case 2:return la._94;case 3:return la._391;case 4:return la._398;case 5:return la._399;case 6:return la._400;case 7:return la._401;case 8:return la._402;case 9:return la._403;case 10:return la._404;case 11:return la._405;case 12:return la._406;case 13:return la._407;case 14:return la._408;case 15:return la._439;case 16:return la._440;case 17:return la._1563;case 18:return la._442;case 19:return la._443;case 20:return la._444; 207case 21:return la._445;case 22:return la._446;case 23:return la._447;case 24:return la._448;case 25:return la._449;case 26:return la._450;case 27:return la._451;case 28:return la._563;case 29:return la._564;case 30:return"Trade-In";case 31:return"Rental";case 32:return la._983;case 33:return la._984;case 34:return la._579;case 35:return la._581;default:return""}},getCondition:function(a){var b="Unknown";switch(a){case 1:b=la._93;break;case 2:b=la._443;break;case 3:b=la._444;break;case 4:b=la._445; 208break;case 5:b=la._446}return b},getNameWithCircle:function(a){return`<i class="fa fa-circle" style="font-size: 7px;transform: translateY(-1px);color:${CsvType.getObject(a).color}" ></i> `+CsvType.getName(a)},getDescription:function(a){switch(a){case 0:return la._499;case 1:return la._500;case 2:return la._501;case 3:return la._502;
208case 4:return la._409;case 5:return la._503;case 6:return la._504;case 7:return la._505;case 8:return la._1034;case 9:return la._1035;case 10:return la._506;case 11:return la._1036; 209case 12:return la._1037;case 13:return la._1038;case 14:return la._1039;case 15:return la._439;case 16:return la._1040;case 17:return`${la._1564}<br>${la._1565.replace("#reviewCount#",la._441)}`;case 18:return la._507;case 19:return la._508;case 20:return la._508;case 21:return la._508;case 22:return la._508;case 23:return la._447;case 24:return la._448;case 25:return la._449;case 26:return la._450;case 27:return la._451;case 28:return la._565;case 29:return la._566;case 30:return"Amazon Trade-In Value"; 210case 31:return"Rental price";case 32:return la._985;case 33:return la._986;case 34:return la._580;case 35:return la._582;default:return""}},getDescriptionTracking:function(a){switch(a){case 0:return la._818;case 1:return la._819;case 2:return la._820;case 3:return la._391;case 4:return la._398;case 5:return la._821;case 6:return la._822;case 7:return la._823;case 8:return la._402;case 9:return la._403;case 10:return la._824;case 11:return la._405;case 12:return la._406;case 13:return la._407;case 14:return la._408; 211case 16:return la._440;case 17:return la._1563;case 18:return la._825;case 19:return la._826;case 20:return la._827;case 21:return la._828;case 22:return la._829;case 23:return la._830;case 24:return la._831;case 25:return la._832;case 26:return la._833;case 27:return la._834;case 28:case 29:case 30:case 31:return"";case 32:return la._989;case 33:return la._986;case 34:return la._579;case 35:return la._581;default:return""}},getObjectNameByName:function(a){if(a.indexOf(la._391)==0)return"SALES";if(a.indexOf("eBay New")== 2120)return"EBAY_NEW_SHIPPING";if(a.indexOf("eBay Used")==0)return"EBAY_USED_SHIPPING";for(var b in CsvType)if(typeof CsvType[b]=="object"&&a==CsvType.getName(CsvType[b].index))return b},getObject:function(a){for(var b in CsvType)if(typeof CsvType[b]=="object"&&CsvType[b].index==a)return CsvType[b]},getObjectName:function(a){for(var b in CsvType)if(typeof CsvType[b]=="object"&&CsvType[b].index==a)return b},format:(a,b,c)=>{if(typeof CsvType[a]==="undefined")return"";if(b==null||b==-1)return"-";if(CsvType[a].currency)return Money.format(b, 213{sourceDomainId:c,targetDomainId:c});if(a=="RATING")return(b/10).toFixed(1);b=NumberUtil.format(b);a==="SALES"&&(b=`# ${b}`);return b}},graphIsRestricted=(a,b,c)=>hasDataAccessSubscription&&c!==!0?!1:[CsvType.EBAY_NEW_SHIPPING.index,CsvType.EBAY_USED_SHIPPING.index].includes(Number(b))?!0:[!1,!0,!0,!0,!0,!0,!0,!1,!0,!0,!0,!0,!0,!1][Number(a)]!==!0||[!1,!1,!1,!0,!1,!1,!1,!1,!1,!1,!1,!0,!0,!0,!0,!1,!0,!0,!1,!1,!1,!1,!1,!1,!1,!1,!1,!1,!0,!0,!1,!1,!0,!1,!0,!0][Number(b)]!==!0?!1:!0; 214function getStarsFromRating(a){a*=10;var b="#f1bb00",c="";for(let f=100;f<600;f+=100){var d=void 0;f<=a?d="fa-star":a+100<f?d="fa-star-o":(d=a%100,d>=75?d="fa-star":d<25?(d="fa-star-o",b="rgba(241, 187, 0, .5)"):d="fa-star-half-o");c+='<i style="color:'+b+'" class="fa '+d+'"></i>'}return c} 215function findOffer(a,b,c,d,f,k,n,q){if(a==null)return null;if(n==null&&k==CsvType.BUY_BOX_SHIPPING&&b!=null&&b.length>1)for(var r=0;r<b.length;r+=2){var u=Number(b[r]);if(u>c)break;if(!(u<c&&r+2!=b.length&&b[r+2]<=c)){n=b[r+1];break}}if(n==null&&k==CsvType.BUY_BOX_USED_SHIPPING&&q!=null&&q.length>1)for(b=0;b<q.length;b+=4){r=Number(q[b]);if(r>c)break;if(!(r<c&&b+4!=q.length&&q[b+4]<=c)){n=q[b+1];break}}q=[];for(b=0;b<a.length;b++)if(r=a[b],!(c>r.lastSeen||n!=null&&r.sellerId!=n||r.offerCSV==null|| 216r.offerCSV.length<2)){switch(k.index){case CsvType.AMAZON.index:if(!r.isAmazon)continue;break;case CsvType.WAREHOUSE.index:if(!r.isWarehouseDeal)continue;break;case CsvType.NEW_FBA.index:if(r.isAmazon||r.isWarehouseDeal||!r.isFBA||r.condition!=ConditionType.NEW)continue;break;case CsvType.NEW_FBM_SHIPPING.index:if(r.isAmazon||r.isWarehouseDeal||r.isFBA||r.isPrime||r.condition!=ConditionType.NEW)continue;break;case CsvType.USED_NEW_SHIPPING.index:if(r.condition!=ConditionType.USED_NEW)continue;break; 217case CsvType.USED_VERY_GOOD_SHIPPING.index:if(r.condition!=ConditionType.USED_VERY_GOOD)continue;break;case CsvType.USED_GOOD_SHIPPING.index:if(r.condition!=ConditionType.USED_GOOD)continue;break;case CsvType.USED_ACCEPTABLE_SHIPPING.index:if(r.condition!=ConditionType.USED_ACCEPTABLE)continue;break;case CsvType.BUY_BOX_SHIPPING.index:if(n==null||r.sellerId!=n)continue;if([ConditionType.USED_NEW,ConditionType.USED_VERY_GOOD,ConditionType.USED_GOOD,ConditionType.USED_ACCEPTABLE].includes(r.condition))continue; 218break;case CsvType.BUY_BOX_USED_SHIPPING.index:if(n==null||r.sellerId!=n)continue;if(![ConditionType.USED_NEW,ConditionType.USED_VERY_GOOD,ConditionType.USED_GOOD,ConditionType.USED_ACCEPTABLE].includes(r.condition))continue;break;case CsvType.PRIME_EXCL.index:if(!r.isPrimeExcl)continue;break;default:continue}for(u=0;
218u<r.offerCSV.length;u+=3){var B=r.offerCSV[u];if(B>c)break;if(B<c&&u+3!=r.offerCSV.length&&r.offerCSV[u+3]<c)continue;var t=r.offerCSV[u+1],G=r.offerCSV[u+2];let da=!1;k.isWithShipping? 219f==null&&(t+G==d?da=!0:t==d&&G==f&&(da=!0)):t==d&&(da=!0);if(da){r.item||(r.item={});disableStockFeatures!==!0&&(r.item.stock=getValueAtTime(r.stockCSV,c,CsvType.AMAZON));r.item.price=t;r.item.shipping=G;r.item.time=keepaTime.minutesToEpoch(B);q.push(r);break}}if(k.index===CsvType.PRIME_EXCL.index&&typeof r.primeExclCSV!=="undefined")for(u=0;u<r.primeExclCSV.length;u+=2){B=r.primeExclCSV[u];if(B>c)break;if(B<c&&u+2!=r.primeExclCSV.length&&r.primeExclCSV[u+2]<c)continue;t=r.primeExclCSV[u+1];G=!1; 220k.isWithShipping?f==null&&(t+0==d?G=!0:t==d&&0==f&&(G=!0)):t==d&&(G=!0);if(G){r.item||(r.item={});disableStockFeatures!==!0&&(r.item.stock=getValueAtTime(r.stockCSV,c,CsvType.AMAZON));r.item.price=t;r.item.shipping=0;r.item.time=keepaTime.minutesToEpoch(B);q.push(r);break}}}q.sort((da,Y)=>Y.lastSeen-da.lastSeen);return q.length>0?q:null}const continents=[[1,6,11],[12],[2,3,4,8,9,14],[5,10],[13]],domainIdToContinent=[0,0,2,2,2,3,0,3,2,2,3,0,1,4,2]; 221var LocaleType={length:numberOfDomains,getName:function(a){a=Number(a);switch(a){case 1:return"US";case 2:return"UK";case 3:return"DE";case 4:return"FR";case 5:return"JP";case 6:return"CA";case 7:return"CN";case 8:return"IT";case 9:return"ES";case 10:return"IN";case 11:return"MX";case 12:return"BR";case 13:return"AU";case 14:return"NL";default:return""}},getByRegionOrder:function(a){return a?[la._664,1,6,11,la._353,2,3,4,8,9,14,la._354,5,10]:[1,6,11,2,3,4,8,9,5,10]},getObjectNameByName:function(a){return a}, 222getObject:function(a){for(let b in LocaleType)if(typeof LocaleType[b]=="object"&&LocaleType[b].index==a)return LocaleType[b]},getObjectName:function(a){return LocaleType.getName(a)},getContinentId:a=>domainIdToContinent[a],getContinentName:a=>[la._664,la._665,la._353,la._354,la._663][domainIdToContinent[a]],getShippingInfoLink:a=>{a=Number(a);switch(a){case 1:return"http://www.amazon.com/gp/redirect.html?location=/gp/help/customer/display.html/ref=hp_left_ac?ie=UTF8&nodeId=596184";case 2:return"http://www.amazon.co.uk/gp/redirect.html?location=/gp/help/customer/display.html?nodeId=11072981"; 223case 3:return"http://www.amazon.de/gp/redirect.html?location=/gp/help/customer/display.html/ref=hp_left_sib?ie=UTF8&nodeId=200170100";case 4:return"http://www.amazon.fr/gp/redirect.html?location=/gp/help/customer/display.html/ref=hp_left_sib?ie=UTF8&nodeId=200781660";case 5:return"http://www.amazon.co.jp/gp/redirect.html?location=/gp/help/customer/display.html/ref=footer_shiprates?ie=UTF8&nodeId=642982";case 6:return"http://www.amazon.ca/gp/redirect.html?location=/gp/help/customer/display.html/ref=hp_rel_topic?ie=UTF8&nodeId=915474"; 224case 7:return"";case 8:return"http://www.amazon.it/gp/redirect.html?location=/gp/help/customer/display.html/ref=hp_left_cn?ie=UTF8&nodeId=200533920";case 9:return"http://www.amazon.es/gp/redirect.html?location=/gp/help/customer/display.html/ref=hp_left_cn?ie=UTF8&nodeId=200533920";case 10:return"";case 11:return"";case 12:return"";case 13:return"";case 14:return"";default:return""}}}; 225const LangUtil=(()=>{function a(c=""){return String(c).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var b=Object.freeze({buyBox:"_442",buyBoxUsed:"_983",boughtPastMonth:"_995",monthlySold:"_1032",productFinder:"_736",productViewer:"_738"});return{fill:function(c,d={},{noEscapeFor:f=[],escape:k=a}={}){if(!c||c.indexOf("#")===-1)return c||"";var n=new Set(f);return c.replace(/#([a-zA-Z0-9_]+)#/g,(q,r)=>Object.prototype.hasOwnProperty.call(d, 226r)?(q=String(d[r]),n.has(r)?q:k(q)):(r=b[r])&&window.la&&window.la[r]!=null?window.la[r]:q)},htmlEscape:a,aliasMap:b}})(),MerchantType={RATING:{index:0,deal:!1,currency:!1,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,color:"#009688",bg:"rgba(200, 255, 251, 0.8)"},RATING_COUNT:{index:1,deal:!1,currency:!1,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,color:"#8ab300",bg:"rgba(222, 239, 167, 0.8)"},LISTINGS_COUNT:{index:2,deal:!1,currency:!1,showDefault:1, 227isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!0,color:"#B0C4DE",bg:"rgba(225, 235, 255, 0.8)"},length:3,getName:function(a){a=Number(a);switch(a){case 0:return la._440;case 1:return la._1563;case 2:return la._1197;default:return""}},getObjectNameByName:function(a){for(let b in MerchantType)if(typeof MerchantType[b]=="object"&&a==MerchantType.getName(MerchantType[b].index))return b},getObject:function(a){for(let b in MerchantType)if(typeof MerchantType[b]=="object"&&MerchantType[b].index== 228a)return MerchantType[b]},getObjectName:function(a){for(let b in MerchantType)if(typeof MerchantType[b]=="object"&&MerchantType[b].index==a)return b}},RatingType={COUNT_RATING:{index:0,deal:!1,currency:!1,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,color:"#8ab300",bg:"rgba(222, 239, 167, 0.9)"},COUNT_REVIEW:{index:1,deal:!1,currency:!1,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,color:"#ae9101",bg:"rgba(216,201,134,0.9)"},length:2,getName:function(a){a= 229Number(a);switch(a){case 0:return la._1563;case 1:return la._441;default:return""}},getObjectNameByName:function(a){for(let b in RatingType)if(typeof RatingType[b]=="object"&&a==RatingType.getName(RatingType[b].index))return b},getObject:function(a){for(let b in RatingType)if(typeof RatingType[b]=="object"&&RatingType[b].index==a)return RatingType[b]},getObjectName:function(a){for(let b in RatingType)if(typeof RatingType[b]=="object"&&RatingType[b].index==a)return b}},OfferType={STOCK:{index:0,deal:!1, 230currency:!1,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,color:"#2692c2",bg:"rgba(185, 238, 255, 1.0)"},PRICE:{index:1,deal:!1,currency:!0,showDefault:1,isEnabled:!0,isWithShipping:!0,isTopGraph:!0,isOfferData:!1,color:"#000",background:"#000"},BBWIN:{index:2,deal:!1,currency:!1,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!0,isOfferData:!1,color:"#e600ff",background:"#e600ff"},length:3,getName:function(a){a=Number(a);switch(a){case 0:return la._632;case 1:return la._488; 231case 2:return"Buy Box Win";default:return""}},getObjectNameByName:function(a){for(let b in OfferType)if(typeof OfferType[b]=="object"&&a==OfferType.getName(OfferType[b].index))return b},getObject:function(a){for(let b in OfferType)if(typeof OfferType[b]=="object"&&OfferType[b].index==a)return OfferType[b]},getObjectName:function(a){for(let b in OfferType)if(typeof OfferType[b]=="object"&&OfferType[b].index==a)return b}},ConditionType={UNKNOWN:0,NEW:1,USED_NEW:2,USED_VERY_GOOD:3,USED_GOOD:4,USED_ACCEPTABLE:5, 232REFURBISHED:6,COLLECTIBLE_NEW:7,COLLECTIBLE_VERY_GOOD:8,COLLECTIBLE_GOOD:9,COLLECTIBLE_ACCEPTABLE:10,length:12,getName:function(a){a=Number(a);switch(a){case 0:return la._530;case 1:return la._93;case 2:return la._637;case 3:return la._638;case 4:return la._639;case 5:return la._640;case 6:return la._645;case 7:return la._641;case 8:return la._642;case 9:return la._643;case 10:return la._644;default:return`${la._530} (${a})`}},getCorrespondingCsvType:function(a){var b=null;switch(a){case 2:b=CsvType.USED_NEW_SHIPPING; 233break;case 3:b=CsvType.USED_VERY_GOOD_SHIPPING;break;case 4:b=CsvType.USED_GOOD_SHIPPING;break;case 5:b=CsvType.USED_ACCEPTABLE_SHIPPING;break;case 6:b=CsvType.REFURBISHED_SHIPPING;break;case 7:b=CsvType.COLLECTIBLE_NEW_SHIPPING;break;case 8:b=CsvType.COLLECTIBLE_VERY_GOOD_SHIPPING;break;case 9:b=CsvType.COLLECTIBLE_GOOD_SHIPPING;break;case 10:b=CsvType.COLLECTIBLE_ACCEPTABLE_SHIPPING}return b},getMetaCondition:function(a){a=Number(a);switch(a){case 1:return"NEW";case 2:case 3:case 4:case 5:return"USED"; 234case 6:return"REFURBISHED";case 7:case 8:case 9:case 10:return"COLLECTIBLE";default:return"UNKNOWN"}},getBuyBoxUsedConditionMap:function(){return{[ConditionType.USED_NEW]:ConditionType.getName(ConditionType.USED_NEW),[ConditionType.USED_VERY_GOOD]:ConditionType.getName(ConditionType.USED_VERY_GOOD),[ConditionType.USED_GOOD]:ConditionType.getName(ConditionType.USED_GOOD),[ConditionType.USED_ACCEPTABLE]:ConditionType.getName(ConditionType.USED_ACCEPTABLE)}}},CouponType={SNS:{index:0,currency:!1,showDefault:1, 235color:"rgba(204, 153, 102, 1.0)",bg:"rgba(204, 153, 102, 0.5)"},OTPCT:{index:1,currency:!1,showDefault:1,color:"rgba(102, 153, 204, 1.0)",bg:"rgba(102, 153, 204, 0.5)"},OTABS:{index:2,currency:!0,showDefault:1,color:"rgba(153, 102, 204, 1.0)",bg:"rgba(153, 102, 204, 0.5)"},length:3,getName:function(a){a=Number(a);switch(a){case 0:return la._1068+" %";case 1:return la._211+" %";case 2:return la._211;default:return""}},getDescription:function(a){a=Number(a);switch(a){case 0:return la._1069;default:return CouponType.getName(a)}}, 236getObjectNameByName:function(a){for(let b in CouponType)if(typeof CouponType[b]=="object"&&a==CouponType.getName(CouponType[b].index))return b},getObject:function(a){for(let b in CouponType)if(typeof CouponType[b]=="object"&&CouponType[b].index==a)return CouponType[b]},getObjectName:function(a){for(let b in CouponType)if(typeof CouponType[b]=="object"&&CouponType[b].index==a)return b}};for(let a=0;a<numberOfDomains;a++)a!=7&&(LocaleType[LocaleType.getName(a)]={index:a,deal:!0,currency:!0,showDefault:1}); 237var AccountType=["GUEST","ANON","KEEPA"],EmailStatus=["NEW","VERIFIED","BLOCKED"],checkboxNameArray=" US GB DE FR JP CA CN IT ES IN MX BR AU".split(" "),NotifyIfType=["OUT_OF_STOCK","BACK_IN_STOCK","EVERY_CHANGE"];const ProductType=Object.freeze({STANDARD:0,DOWNLOADABLE:1,EBOOK:2,INACCESSIBLE:3,INVALID:4,VARIATION_PARENT:5}),desiredSeriesPrefix="desired-";var window_focus=!0;window.addEventListener("focus",function(){window_focus=!0});window.addEventListener("blur",function(){window_focus=!1}); 238const selectText=a=>{if(document.body.createTextRange){var b=document.body.createTextRange();b.moveToElementText(a);b.select()}else if(window.getSelection){b=window.getSelection();let c=document.createRange();c.selectNodeContents(a);b.removeAllRanges();b.addRange(c)}}; 239function tryParseJSON(a,b){if(a!==null&&typeof a==="object")return a;try{let c=JSON.parse(a);if(c&&typeof c==="object"&&c!==null)return c}catch(c){isTest&&console.error(c,a),b||a==null||a===""||a==="undefined"||a==="null"||reportBug(c,a)}return null}var material=(()=>({getButton:(a,b,c,d,f,k)=>`<button id="${a}" class="mdc-button ${f?"":"mdc-button--raised"} ${k?"mdc-button--secondary":"mdc-button--primary"}" data-mdc-auto-init="MDCRipple" name="action"> 240 ${c?'<i class="fa fa-'+c+' btn-icon -prefix"></i>':""} 241 ${b} 242 ${d?'<i class="fa fa-'+d+' btn-icon -suffix"></i>':""} 243 </button>`,getCheckbox:(a,b,c,d,f,k,n=null)=>`<div class="mdc-form-field"> 244 <div class="mdc-checkbox" data-mdc-auto-init="MDCCheckbox"> 245 <input class="mdc-checkbox__native-control" type="checkbox" id="${a}-checkbox" ${c?"checked":""} name="${f}" ${d?"required":""}${k==0||k?` value="${k}"`:""}${n!=null?` tabindex="${n}"`:""} /> 246 <div class="mdc-checkbox__background"> 247 <svg class="mdc-checkbox__checkmark" viewBox="0 0 24 24"> 248 <path class="mdc-checkbox__checkmark-path" fill="none" stroke="white" d="M1.73,12.91 8.1,19.28 22.79,4.59"/> 249 </svg> 250 <div class="mdc-checkbox__mixedmark"></div> 251 </div> 252 </div> 253 <label for="${a}-checkbox">${b}</label> 254 </div>`,getCountrySelect:(a,b)=>{var c="",d=[],f=[],k="US GB DE FR JP CA CN IT ES IN MX BR AU".split(" ");for(var n of k)f.push(a[n]);for(let q in a)d.push([a[q].name,a[q]]);d.sort((q,r)=>q[0].localeCompare(r[0]));for(let q in d)f.push(d[q][1]);a=!1;for(let q in f)d=f[q],(n=b==d.id&&!a)&&(a=!0),c+=`<option ${n?'selected="selected"':""} id="${d.id}" data-country="${d.name}">${d.name}</option>`,Number(q)==k.length-1&&(c+="<option disabled>----------------</option>");return`<div class="mdc-select" style="width:204px;"> 255 <select id="countrySelect" name="billing-country" autocomplete="billing country" class="mdc-select__native-control" style="font-size: 0.82rem; text-indent: 0;">${c}</select> 256 </div>`},getInput:(a,b,c,d,f,k,n,q,r,u,B,t)=>`<div class="mdc-text-field mdc-text-field--dense"${r?' style="width:inherit;"':""} data-mdc-auto-init="MDCTextField"> 257 <input type="${t?t:"text"}" id="${c}" class="mdc-text-field__input" ${q?'placeholder="'+q+'"':""} ${b?'pattern="'+b+'"':""} name="${k}"${B?' value="'+String(B).replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")+'"':""} ${a?"required":""} ${f?'autocomplete="'+f+'"':""} aria-controls="${c}-validation-msg"> 258 <label for="${c}" class="mdc-floating-label"${u?` style="${u}"`:""}>${d}</label> 259 </div> 260 ${n?`<p id="${c}
260-validation-msg" class="mdc-text-field-helper-text mdc-text-field-helper-text--validation-msg" aria-hidden="true"> 261 ${n} 262 </p>`:""}`,getInputNumber:(a,b,c,d,f,k,n,q)=>`${k?`${k} `:""} 263 <div class="mdc-text-field mdc-text-field--dense"> 264 <input type="number" id="${a}" class="mdc-text-field__input" value="${b}" min="${c}" max="${d}"${f?" disabled":""}${q?` style="${q}"`:""}> 265 </div> 266 ${n?` ${n}`:""}`,getInputNumberPattern:(a,b,c,d,f,k,n,q,r,u)=>`<div class="mdc-text-field mdc-text-field--dense${q||u?" mdc-text-field--with-leading-icon":""}${r?" mdc-text-field--with-trailing-icon":""}" data-mdc-auto-init="MDCTextField"> 267 ${q?`<i class="mdc-text-field__icon fa fa-fw fa-lg fa-${q}"></i>`:""} 268 ${u?u:""} 269 <input type="text" id="${a}" class="mdc-text-field__input" name="${b}"${d==0||d?' value="'+d+'"':""}${f?' pattern="'+f+'"':""}${k?' title="'+k+'"':""}${n?'autocomplete="'+n+'"':""}> 270 <label for="${a}" class="mdc-floating-label">${c}</label> 271 ${r?`<i class="mdc-text-field__icon fa fa-fw fa-lg fa-${r}"></i>`:""} 272 </div>`,getInputFile:(a,b,c,d,f,k,n)=>`<div class="mdc-text-field mdc-text-field--dense"${k?' style="width:inherit;"':""} data-mdc-auto-init="MDCTextField"> 273 <input id="${a}Trigger" class="mdc-text-field__input"${f?" required":""} autocomplete="off"> 274 <input id="${a}" name="${b}" type="file"${d?` accept="${d}"`:""} style="display:none;"> 275 <label for="${a}" class="mdc-floating-label"${n?` style="${n}"`:""}>${c}</label> 276 </div> 277 <p id="${a}-validation-msg" class="mdc-text-field-helper-text mdc-text-field-helper-text--validation-msg" aria-hidden="true"> 278 no valid file found 279 </p>`,getMenu:(a,b)=>{var c="";for(let d of b)c=d.divider?c+'<li class="mdc-list-divider"></li>':c+`<li${d.value?` data-value="${d.value}"`:""} class="mdc-list-item" role="menuitem" tabindex="${d.disabled?-1:0}"${d.disabled?' aria-disabled="true"':""}${d.style?` style="${d.style}"`:""}> 280 ${d.content} 281 </li>`;return` 282 <div${a?` id="${a}"`:""} class="mdc-menu" tabindex="-1"> 283 <ul class="mdc-menu__items mdc-list" role="menu" aria-hidden="true"> 284 ${c} 285 </ul> 286 </div> 287 `},getRadio:(a,b,c,d,f,k,n)=>`<div class="mdc-form-field"${typeof n!="undefined"?` title="${n}"`:""}> 288 <div class="mdc-radio ${f?"mdc-radio--disabled":""}" data-mdc-auto-init="MDCRadio"> 289 <input class="mdc-radio__native-control" type="radio" id="${a}-radio" name="${d}"${typeof k!="undefined"?` value="${k}"`:""}${c?" checked":""}${f?" disabled":""}> 290 <div class="mdc-radio__background"> 291 <div class="mdc-radio__outer-circle"></div> 292 <div class="mdc-radio__inner-circle"></div> 293 </div> 294 </div> 295 <label id="${a}-radio1-label" for="${a}-radio">${b}</label> 296 </div>`,getSelect:(a,b,c,d,f,k,n)=>{var q=n?"":-1;f=k!==!0?`<option value="${q}"${c==q?' selected="selected"':""}>${f?f:"All"}</option>`:"";for(let r in d)k=d[r],f+=`<option value="${k.value}"${c==k.value?' selected="selected"':""}>${k.label}</option>`;return`<div class="mdc-select"> 297 <select id="${a}" name="${b}" class="mdc-select__native-control"${n?" required":""} style="text-indent:0;"> 298 ${f} 299 </select> 300 </div>`},getSwitch:(a,b,c,d)=>` 301 <div class="mdc-switch"> 302 <input type="checkbox" id="${a}-switch" class="mdc-switch__native-control"${b?" checked":""}${c?" disabled":""} /> 303 <div class="mdc-switch__background"> 304 <div class="mdc-switch__knob"></div> 305 </div> 306 </div> 307 <label for="${a}-switch" class="mdc-typography--body2 ml-4 cursor-pointer">${d}</label>`,getTabs:a=>{var b=a.mode?a.mode:"text-icon",c="",d="",f=a.tabs;for(let k of f)k&&(b==="text-icon"?c+=`<a class="mdc-tab mdc-tab--with-icon-and-text${k.isActive?" mdc-tab--active":""}"${k.tab.id?' id="'+k.tab.id+'"':""}> 308 <i class="fa fa-${k.tab.icon} mdc-tab__icon" aria-hidden="${k.isActive?"false":"true"}"></i> 309 <span class="mdc-tab__icon-text">${k.tab.label}</span> 310 </a>`:b==="text"&&(c+=`<a class="mdc-tab${k.isActive?" mdc-tab--active":""}"${k.tab.id?' id="'+k.tab.id+'"':""}> 311 ${k.tab.label} 312 </a>`),d+=`<div class="panel ${k.isActive?"active":""}" ${k.panel.style?'style="'+k.panel.style+'"':""} ${k.panel.id?'id="'+k.panel.id+'"':""} role="tabpanel" aria-hidden="false">${k.panel.content?k.panel.content:""}</div>`);return`<section class="dynamic-toolbar"> 313 <nav id="${a.id?a.id:"icon-text-tab-bar"}" class="mdc-tab-bar${b==="text-icon"?" mdc-tab-bar--icons-with-text":""}"> 314 ${c} 315 <span class="mdc-tab-bar__indicator"></span> 316 </nav> 317 </section> 318 <section> 319 <div class="panels ${a.panelsClass?a.panelsClass:""}"> 320 ${d} 321 </div> 322 </section>`},getTextarea:(a,b,c,d,f=100)=>`<div class="mdc-text-field mdc-text-field--textarea"> 323 <textarea id="${b}" class="mdc-text-field__input" rows="2" cols="${f}" name="${d}" placeholder="${c}" ${a?"required":""}></textarea> 324 </div>`,init:a=>{setTimeout(()=>{var b=typeof a==="string"?document.querySelector(a):a;mdc.autoInit(b||void 0,()=>{})},0)}}))(); 325const NotificationType={getName:function(a){return[la._5,"","",la._7,"","API","Keepa App","Telegram"][a]??la._530},getNotifiedViaText:function(a){return Array.isArray(a)?a.map((b,c)=>
325b?NotificationType.getName(c):null).filter(Boolean).join(", ")||la._1417:la._1417}},NotificationCause={getName:(a,b=!0)=>{switch(a){case 0:return la._525;case 1:return b?la._526:la._864;case 2:return b?la._527:la._865;case 3:return b?la._528:la._866;case 4:return la._134;case 5:return la._462;case 6:return b?la._529: 326la._867;case 7:return la._560;default:return la._530}}};function getCurrencyByDomain(a){a=parseInt(a);switch(a){case 1:case 6:return dollar;case 2:return pound;case 3:case 4:case 8:case 9:case 14:return euro;case 7:case 5:return yen;case 10:return rupee;case 11:return dollar;case 12:return real;case 13:return dollar;default:return dollar}} 327function getCurrencyCodeByDomain(a){a=parseInt(a);switch(a){case 1:return"USD";case 2:return"GBP";case 3:case 4:case 8:case 9:case 14:return"EUR";case 5:return"JPY";case 6:return"CAD";case 7:return"CNY";case 10:return"INR";case 11:return"MXN";case 12:return"BRL";case 13:return"AUD";default:return"???"}}const globalEbayArray=[!1,!0,!0,!0,!0,!1,!0,!1,!0,!0,!0,!1,!1,!1,!1]; 328function getBucketInformation(){if((typeof storage.bucketUpdated!=="undefined"||storage.bucketUpdated==null)&&Date.now()-Number(storage.bucketUpdated)<3E4){let a={tokenBucketSize:storage.tokenBucketSize,tokens:storage.tokens,dataQuantity:storage.dataQuantity};QuotaUI.updateWidget(a);return Deferred().resolve(a)}return network.request({path:"user/settings",type:"getTokenStatus"}).done(a=>{isTest&&typeof a.tokenBucketSize=="undefined"&&console.error("BUCKET ERROR: tokenBucketSize is undefined");QuotaUI.updateWidget({tokenBucketSize:a.tokenBucketSize, 329tokens:a.tokens,dataQuantity:a.dataQuantity})}).fail(a=>{a.status==401?console.log("not authorized - no account"):console.log(a)})} 330function getAmazonRedirectByDomain(a,b){var c=lastUrl.substr(2);if(document.getElementById("dealSearchBar")){c="dealsOverlay";try{let d=dealWrapperInstance.get();d.lastRequest&&d.lastRequest.priceTypes&&(c+="/"+CsvType.getObjectName(d.lastRequest.priceTypes[0]))}catch(d){}}else document.getElementById("trackingSearch")?c="manageOverlay":document.getElementById("searchPage")&&(c="searchOverlay");return"https://dyn-2.keepa.com/r/?type=amazon&smile="+(storage.useSmile==="true"?"1":"0")+"&domain="+a+ 331"&asin="+b+"&source=website&path="+c} 332function getEbayRedirectByDomain(a,b,c,d,f){try{let k=" 711-53200-19255-0 710-53481-19255-0 707-53477-19255-0 709-53476-19255-0 706-53473-19255-0 724-53478-19255-0 1185-53479-19255-0 4686-53472-19255-0 705-53470-19255-0".split(" "),n="";storage.lastEbayClick&&(keepaTime.now()-parseInt(storage.lastEbayClick))/60<12&&(f=!1);storage.accountType=="2"&&f&&(n="&mkevt=1&mkcid=1&campid=5338036340&toolid=10050&customid=&mkrid="+k[a]);let q="https://www.ebay."+getTldByDomain(a)+"/";a="";let r=new Set;if(c!== 333null&&typeof c!=="undefined")for(let u of c)r.add(u);if(b!==null&&typeof b!=="undefined")for(let u of b)r.add(u);for(let u of r)a+=u+",";a.length>0?(a=a.slice(0,-1),r.size>1&&(a="("+a+")",a=encodeURIComponent(a))):d!==null&&(a=encodeURIComponent(d));return q+"sch/?kw="+a+n}catch(k){return console.error(k),""}} 334function refreshDomain(a){a=parseInt(a);switch(a){case 1:currency=dollar;tld="com";break;case 2:currency=pound;tld="co.uk";break;case 3:currency=euro;tld="de";break;case 4:currency=euro;tld="fr";break;case 5:currency=yen;tld="co.jp";break;case 6:currency=dollar;tld="ca";break;case 7:currency=yen;tld="cn";break;case 8:currency=euro;tld="it";break;case 9:currency=euro;tld="es";break;case 10:currency=rupee;tld="in";break;case 11:currency=dollar;tld="com.mx";break;case 12:currency=real;tld="com.br";break; 335case 13:currency=dollar;tld="com.au";break;case 14:currency=euro;tld="nl";break;default:currency=dollar,tld="com"}}function getTldByDomain(a){a=parseInt(a);switch(a){case 1:return"com";case 2:return"co.uk";case 3:return"de";case 4:return"fr";case 5:return"co.jp";case 6:return"ca";case 7:return"cn";case 8:return"it";case 9:return"es";case 10:return"in";case 11:return"com.mx";case 12:return"com.br";case 13:return"com.au";case 14:return"nl";default:return"com"}} 336function getSSTldByDomain(a){a=parseInt(a);switch(a){case 1:return"com";case 2:return"co.uk";case 3:return"co.uk";case 4:return"co.uk";case 5:return"co.jp";case 6:return"com";case 7:return"cn";case 8:return"co.uk";case 9:return"co.uk";case 10:return"co.uk";case 11:return"com";case 12:return"com";case 13:return"com.au";case 14:return"nl";default:return"com"}} 337function getSSMktByDomain(a){a=parseInt(a);switch(a){case 1:return"1";case 2:return"3";case 3:return"4";case 4:return"5";case 5:return"6";case 6:return"7";case 7:return"3240";case 8:return"35691";case 9:return"44551";case 10:return"44571";case 11:return"771770";case 12:return"526970";case 13:return"111172";default:return"1"}} 338function getDomainByTld(a){a=a.toLowerCase();switch(a){case "com":return 1;case "co.uk":return 2;case "de":return 3;case "fr":return 4;case "co.jp":return 5;case "ca":return 6;case "cn":return 7;case "it":return 8;case "es":return 9;
338case "in":return 10;case "com.mx":return 11;case "com.br":return 12;case "com.au":return 13;case "nl":return 14;default:return 1}} 339var serviceWorker=function(){function a(G,da){if(!k())return!1;var Y=!1;f().done(function(X){Y=!0}).fail(function(X){Y=X?!1:null}).always(function(){if(Y!=null&&(!Y||da)){var X='Receive Web Push Notifications for Price Alerts<br><div style="font-size:11px;margin-left:35px;"><span style="color:black;">Chrome and Firefox</span>: You will receive notifications whenever your browser is open. <span style="color:black">Chrome for Android</span>: Always.<br>Registration needs to be repeated for each browser through which you want to receive web push notifications.'+ 340(Y?' To send a test message, <span class="settings-chpw" id="testMessage">click here</span>.':"")+(da?"":`<br> ${la._571}`)+"</div>",P='<i class="settings-chpw fa fa-toggle-'+(Y?"on":"off")+' fa-18"></i>';iframe.isIframe&&(X='Want to receive Web Push Notifications for Price Alerts? Go to your <a target="_parent" href="https://keepa.com/#!settings" class="url">account settings</a> to enable them on all your supported devices.',P="");replaceHtml(G,P+" "+X);DomUtil.setStyles(document.getElementById(G), 341{color:"#444"});da=!0;var ka=!1;document.getElementById("testMessage")?.addEventListener("click",function(){ka||(b(),ka=!0,setTimeout(function(){ka=!1},5E3))});document.querySelectorAll("#"+G+" i").forEach(D=>D.addEventListener("click",function(W){W.currentTarget.parentNode&&(W.currentTarget.outerHTML='<i style="margin:0 4px;" class="fa fa-refresh fa-rotate-90 fa-spin"></i>');Y?c().always(function(){a(G,da)}):d().always(function(){a(G,da)})}))}})}function b(){var G=Deferred();network.request({path:"user/session", 342type:"webPushSendTest",content:""}).done(function(da){da.error==null?G.resolve(r):G.reject(r)}).fail(function(){G.reject(r)});return G}function c(){var G=Deferred();navigator.serviceWorker.ready.then(function(da){da.pushManager.getSubscription().then(function(Y){if(Y){var X=Y.endpoint,P=Y.getKey?Y.getKey("p256dh"):"",ka=Y.getKey?Y.getKey("auth"):"";network.request({path:"user/session",type:"webPushUnregister",content:X,key:P?btoa(String.fromCharCode.apply(null,new Uint8Array(P))):"",auth:ka?btoa(String.fromCharCode.apply(null, 343new Uint8Array(ka))):""}).always(function(){Y.unsubscribe().then(function(){G.resolve(X)}).catch(function(D){G.reject(X);console.error("Error unsubscribing: ",D)})})}else G.resolve()}).catch(function(Y){console.error("Error unsubscribing.",Y);G.reject(null)})});return G}function d(){var G=Deferred(),da={userVisibleOnly:!0,applicationServerKey:"BPD1V1O2wWmO_i2VyaeAxu1EiKnrZDJS-zgZ3pAPUJbtMz8jC5lTg0OUxCmJBd1opBSWIEakIjWOEEtOEMoP2TA"};navigator.serviceWorker.ready.then(function(Y){Y.pushManager.subscribe(da).then(function(X){var P= 344X.getKey?X.getKey("p256dh"):"",ka=X.getKey?X.getKey("auth"):"",D=X.endpoint;network.request({path:"user/session",type:"webPushRegister",content:D,key:P?btoa(String.fromCharCode.apply(null,new Uint8Array(P))):"",auth:ka?btoa(String.fromCharCode.apply(null,new Uint8Array(ka))):""}).done(function(W){W.error==null?G.resolve(D):G.reject(D)}).fail(function(){G.reject(D)})}).catch(function(X){Y.unregister().finally(()=>{Y.pushManager.subscribe(da).then(function(P){var ka=P.getKey?P.getKey("p256dh"):"",D= 345P.getKey?P.getKey("auth"):"",W=P.endpoint;network.request({path:"user/session",type:"webPushRegister",content:W,key:ka?btoa(String.fromCharCode.apply(null,new Uint8Array(ka))):"",auth:D?btoa(String.fromCharCode.apply(null,new Uint8Array(D))):""}).done(function(N){N.error==null?G.resolve(W):G.reject(W)}).fail(function(){G.reject(W)})}).catch(function(P){Y.unregister();G.reject(null);showPopup("Unable to register push subscription",`<div style="width:600px;">${P}<br><br>Please try again. If it still does not work: Are using incognito or private mode? If that is not the case, please change your Notification exception of https://keepa.com:443 here:<br><br>Chrome:<br>chrome://settings/content/notifications<br><br>Firefox:<br>Open about:preferences#privacy and open the Notifications settings.</div>`, 346!0)})})})});return G}function f(){var G=Deferred();navigator.serviceWorker.ready.then(function(da){da.pushManager.getSubscription().then(function(Y){if(Y){let X=Y.endpoint,P=Y.getKey?Y.getKey("p256dh"):"";Y=Y.getKey?Y.getKey("auth"):"";network.request({path:"user/session",type:"webPushStatus",content:X,key:P?btoa(String.fromCharCode.apply(null,new Uint8Array(P))):"",auth:Y?btoa(String.fromCharCode.apply(null,new Uint8Array(Y))):""}).done(function(ka){ka.error==null?G.resolve(X):G.reject(X)}).fail(function(){G.reject(X)})}else G.reject(!0)}).catch(function(Y){console.error("Error getting subscription", 347Y);G.reject(!1)})});return G}
347function k(){return!B||isIframe?!1:"serviceWorker"in navigator&&"showNotification"in ServiceWorkerRegistration.prototype&&"PushManager"in window?!0:!1}function n(){try{navigator.serviceWorker.getRegistration().then(function(G){try{G.unregister()}catch(da){}})}catch(G){}}function q(){try{navigator.serviceWorker.getRegistration().then(G=>{var da=G&&(G.active||G.waiting);if(da&&G.updateViaCache!==t.updateViaCache)return navigator.serviceWorker.register(da.scriptURL,{...t, 348scope:G.scope})}).catch(()=>{})}catch(G){}}var r,u=Deferred(),B=!1;try{if(navigator.userAgent.toLowerCase().indexOf("firefox")>-1){let G=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)\.\d\d?/);G&&Number(G[1])<=48?n():B=!0}else B=!0}catch(G){console.log(G)}var t={updateViaCache:"all"};return{checkSupport:k,isInitialized:u,generatePushHtml:a,unsubscribePush:c,subscribePush:d,checkSubscription:f,register:function(){if(!k())return u.reject(),!1;if(navigator.serviceWorker.controller==null){var G= 349storage.swFile||"serviceWorker.js";navigator.serviceWorker.register("./"+G,t).then(()=>navigator.serviceWorker.ready).then(function(da){isTest&&console.log("registered: "+G,da)}).catch(function(da){u.reject();isTest&&console.log(da)})}
349else{try{navigator.serviceWorker.addEventListener("message",function(da){isTest&&console.log("message from SW",da)})}catch(da){reportBug(da,"register"),network.connectToServer(!1),u.state()=="pending"&&u.reject()}q()}},showNotification:b,unregister:n}}(); 350const ProductImageHover=function(){var a={image_urls_main:[],pf_preview_current:"",preview_images:[],createNewImageElement:function(b,c){b=b.createElement(c?c:"img");b.style.borderTop="4px solid #328dc3";b.style.borderBottom="3px solid #999999";b.style.display="block";b.style.position="relative";b.style.padding="5px";return b},preview_image:function(b,c){var d=document;if(!d.getElementById("pf_preview")){var f=d.createElement("div");f.id="pf_preview";f.addEventListener("mouseout",function(u){a.clear_image(u)}, 351!1);f.style.boxShadow="rgb(68, 68, 68) 0px 1px 7px -2px";f.style.position="fixed";f.style.zIndex="10000000";iframe.isIframe?f.style.top="400px":f.style.bottom="0px";f.style.right="0px";f.style.margin="12px 12px";f.style.backgroundColor="#fff";d.body.appendChild(f)}a.pf_preview_current=d.getElementById("pf_preview");if(!a.pf_preview_current.firstChild){f=c;var k=Math.max(Math.floor(d.defaultView.innerHeight*.4),256),n=Math.max(Math.floor(d.defaultView.innerWidth*.4),256),q=b.clientX>d.defaultView.innerWidth/ 3522,r=256;try{let u=d.defaultView.innerWidth-b.clientX,B=d.defaultView.innerHeight-b.clientY;q&&(u=d.defaultView.innerWidth-u);r=Math.max(Math.max(u,B)-150,r);n=Math.min(Math.floor(d.defaultView.innerWidth*.9),r);k=Math.min(Math.floor(d.defaultView.innerHeight*.9),r);r=Math.min(n,k)}catch(u){}r>768&&(r=768);r-=r%10;a.pf_preview_current.current=-1;a.pf_preview_current.a=c;a.pf_preview_current.href="";a.pf_preview_current.size=Math.floor(Math.min(n,k)*1.1);q&&(b=d.getElementById("pf_preview"),b.style.right= 353"",b.style.left="6px");typeof c==="object"&&c.type==="svgBarcode"?LoaderUtil.js(`${CDNUrl}JsBarcode-3.11.6.all.min.js`).then(()=>{if(JsBarcode){d.getElementById("pf_preview").style.display="block";var u=`jsBarcode-${c.value}`,B=a.createNewImageElement(d,"span");B.innerHTML=`<svg id="${u}"></svg>`;a.pf_preview_current.appendChild(B);setTimeout(function(){document.getElementById(u)&&JsBarcode(`#${u}`,c.value,{format:c.format?c.format:"auto"})},100)}}).catch(()=>{}):(c.startsWith("https://keepa/cdn")|| 354c.startsWith("https://dyn-2.keepa.com")||c.startsWith(graphBaseUrl)||(f=imageServer,f+=c.replace(".","._SL"+r+"_.")),d.getElementById("pf_preview").style.display="block",b=a.createNewImageElement(d),b.setAttribute("src",f),a.pf_preview_current.appendChild(b))}},clear_image:function(b){try{var c=document.getElementById("pf_preview");c.style.display="none";c.style.right="2px";c.style.left="";a.pf_preview_current.innerHTML=""}catch(d){}},add_events:function(b,c){var d;b.getAttribute("keepaPreview")!= 355"pf_prevImg"&&(b.addEventListener("mouseover",function(f){d=setTimeout(function(){a.preview_image(f,c)},200)},!0),b.addEventListener("mouseout",function(f){clearTimeout(d);a.clear_image(f)},!1),b.setAttribute("keepaPreview","pf_prevImg"))}};return{preview:a}}(),browserInfo=function(a){a=a||navigator.userAgent;var b=a.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];if(/trident/i.test(b[1])){var c=/\brv[ :]+(\d+)/g.exec(a)||[];return{name:"IE",version:c[1]||""}}if(b[1]==="Chrome"&& 356(c=a.match(/\b(OPR|Edg)\/(\d+)/),c!=null))return{name:c[1].replace("OPR","Opera").replace("Edg","Edge"),version:c[2]};b=b[2]?[b[1],b[2]]:[navigator.appName,navigator.appVersion,"-?"];(c=a.match(/version\/(\d+)/i))!=null&&b.splice(1,1,c[1]);return{name:b[0],version:b[1]}};function wait(a){return Deferred(function(){setTimeout(this.resolve,a)}).promise()} 357const intranet=function(){var a=null,b=0,c=function(f,k){b=Date.now();a!=null?wait(100).always(function(){c(f,k)}):(a=k,f!=null&&(storage.postMessage=JSON.stringify(f)),isIframe&&f.key=="login"&&(isIframe?setTimeout(settings.refresh,1E3):document.location.reload()))},d=null;window.addEventListener("storage",function(f){if(f.key=="token"&&f.newValue){var k=f.newValue;if(network.wsToken()==null||network.wsToken()==k)return;isTest||document.location.reload()}if(!(Date.now()-b<1E3)&&f.key=="postMessage"&&
358f.newValue&&(f=f.newValue,storage.removeItem("postMessage"),k=tryParseJSON(f),k!=null)){try{d!=null&&d.close()}catch(n){}switch(k.key){case "login":isIframe&&k.key=="login"&&document.location.reload();break;case "logout":network.reauthorize();refreshLoginBar();try{callSubPage(1)}catch(n){reportBug(n)}k.key=="logout"&&(d=showPopup("Your session ended","You have signed out from Keepa in another tab.",!0))}a!=null&&(k=a,a=null,k(tryParseJSON(f)))}},!1);return{postMessage:c,key:"postMessage"}}(); 359function inIframe(){try{return window.self!==window.top}catch(a){return!0}}RegExp.escape=function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")};function onlyUnique(a,b,c){return c.indexOf(a)===b}String.prototype.replaceAt=function(a,b){a=Number(a);b=String(b);return this.substr(0,a)+b+this.substr(a+b.length)}; 360const errorReporter=function(){function a(z){z=z.filter(g=>!(g.fileName&&Z.test(g.fileName)));return z.length>0&&z.every(b)}function b(z){return z.source!==void 0?!1:z.fileName?ia.test(z.fileName):!0}function c(z){z=z.filter(g=>!(g.fileName&&Z.test(g.fileName)));return z.length>1&&b(z[0])}function d(z){try{var g=new URL(z,location.href)}catch(m){return!1}if(g.protocol!=="http:"&&g.protocol!=="https:")return!1;if(g.origin!==location.origin)return ea.test(g.host)&&!ta.test(g.href);z=location.pathname.replace(/[^/]*$/, 361"");g=g.pathname.startsWith(z)?g.pathname.slice(z.length):g.pathname.replace(/^\//,"");return Ga.test(g)||Pa.test(g)||Ya.test(g)}function f(z){return String(z||"").replace(/^https?:\/\/[^/]+\//,"").replace(/^cdn\/\d{6,}\//,"").replace(/\?.*$/,"")}function k(z){z=String(z||"").trim();if(!z)return null;var g;if(/^\s*at\s/.test(z)&&(g=A.exec(z)))z=(g[1]||"").trim(),g=g[2];else if(g=H.exec(z))z=g[1].trim(),g=g[2];else return{source:z};var m=ca.exec(g);return{functionName:z||"?",fileName:f(m?m[1]:g),lineNumber:m? 362Number(m[2]):0,columnNumber:m?Number(m[3]):0}}function n(z){if(!z)return[];var g=String(z).split("\n");z=[];for(let m of g){if(!z.length&&!/^\s*at\s/.test(m)&&!H.test(m))continue;(g=k(m))&&z.push(g);if(z.length>=25)break}return z}function q(z){try{let g=z.tagName.toLowerCase();z.id&&(g+="#"+z.id);let m=z.src||z.href;m&&(g+=" "+f(m));return g}catch(g){return"element"}}function r(z){if(z==null)return"";if(typeof z==="string")return z.trim();try{if(z.message)return String(z.message).trim();if(z.type){var g= 363z.target||z.currentTarget;return"Event "+z.type+(g&&g.tagName?" on "+q(g):"")}if(typeof z.status==="number")return("HTTP "+z.status+" "+(z.statusText||"")).trim();let m=String(z);if(!/^\[object /.test(m))return m;g=[];for(let S of Object.keys(z)){let ma=z[S];if(ma!=null&&typeof ma!=="function"&&typeof ma!=="object"&&(g.push(S+"="+String(ma)),g.length>=6))break}let w=z.constructor&&z.constructor.name||m;if(g.length)return w+" {"+g.join(", ")+"}";let I=Object.keys(z);if(!I.length)try{I=Object.getOwnPropertyNames(z)}catch(S){}return I.length? 364w+" {"+I.slice(0,8).join(", ")+"}":w}catch(m){return"unknown error"}}function u(z){z=String(z);return z.length>4E3?z.slice(0,4E3)+"\u2026":z}function B(z){for(let g of fa)if(z.indexOf(g)>-1)return!0;return!1}function t(z,g,m){try{for(let I of Fa)if(m.indexOf(I)>-1)return!0;if(Ra.indexOf(m)>-1||K.test(m))return!0;for(let I of[z,g]){a:{if(I&&typeof I==="object")for(let S of[I,I.response,I.data,I.msg,I.xhr])if(S&&typeof S==="object"&&bb.indexOf(S.status)>-1){var w=!0;break a}w=!1}if(w||typeof I==="string"&& 365F.test(I))return!0}}catch(I){}return!1}function G(){var z={};try{z.userAgent=navigator.userAgent;z.language=navigator.language;z.platform=navigator.platform;z.vendor=navigator.vendor;z.cookieEnabled=navigator.cookieEnabled;z.online=navigator.onLine;z.touchPoints=navigator.maxTouchPoints;z.cores=navigator.hardwareConcurrency;navigator.deviceMemory&&(z.memoryGB=navigator.deviceMemory);let g=navigator.connection;g&&g.effectiveType&&(z.connection=g.effectiveType,g.saveData&&(z.saveData=!0));z.screen= 366screen.width+"x"+screen.height;z.viewport=window.innerWidth+"x"+window.innerHeight;z.dpr=window.devicePixelRatio;z.visibility=document.visibilityState;e&&(z.bfcache=!0);typeof localStorageIsPolyFill!=="undefined"&&localStorageIsPolyFill&&(z.storagePolyfill=!0);typeof performance!=="undefined"&&performance.memory&&(z.jsHeapMB=Math.round(performance.memory.usedJSHeapSize/1048576))}catch(g){}return z}function da(){var z={};try{z.hash=location.hash,z.readyState=document.readyState,typeof keepaBoxInit!== 367"undefined"&&keepaBoxInit&&keepaBoxInit.asin&&(z.box=keepaBoxInit),typeof storage!=="undefined"&&(z.domain=storage.domain,z.language=storage.language,z.signedIn=!(!storage.token||!storage.username))}catch(g){}return z}function Y(){var z=[];try{for(let g of network.lastUrls){let m=typeof g==="string"?{url:g}:g;m&&(m.url&&/js\/languages/.test(m.url)||m.path!=="service/features"&&m.path!=="user/settings"&&m.path!=="user/session"&&z.pu
367sh(m))}}catch(g){}return z}function X(){try{if(!localStorageSupported)return!0; 368let z=Date.now(),g=String(storage.bugReportWindow||"").split(":"),m=Number(g[0])||0,w=Number(g[1])||0;z-m>6E5&&(m=z,w=0);if(w>=40)return!1;storage.bugReportWindow=m+":"+(w+1)}catch(z){}return!0}function P(z,g,m){g=String(g).replace(/\d{3,}/g,"#").slice(0,200);return z+"|"+g+"|"+(m?m.fileName+":"+m.lineNumber:"")}function ka(){return v?v:v=decompressFromBase64("Ky1OLcpLzE0FAA==").then(z=>decompressFromBase64("S6nM08tOTS1I1EvOzwUA").then(g=>x={un:z,host:g,name:"",nameFor:null}))}function D(){var z= 369storage&&storage[x.un]||"";return x.nameFor===z?Promise.resolve(x.name):compressAndConvertToBase64(z).then(g=>{x.nameFor=z;x.name=g||"";return x.name})}function W(z){z=protocol+x.host+ajaxPrefix+"service/bugreport/?user="+storage.token+"&type=website&version="+encodeURIComponent(scriptSource||"30")+"&d="+encodeURIComponent(z||"");window.h&&(z+="&h="+encodeURIComponent(window.h));return z}function N(z,g,m){try{if(navigator.sendBeacon&&navigator.sendBeacon(z,new Blob([g],{type:"text/plain;charset=UTF-8"})))return}catch(w){}if(!m)try{let w= 370new XMLHttpRequest;w.open("POST",z,!0);w.setRequestHeader("Content-Type","text/plain;charset=UTF-8");w.send(g)}catch(w){}}function ha(z){if(sa.length)if(x)if(z){z=sa.splice(0,sa.length);let g=W(x.name);for(let m of z)N(g,JSON.stringify(m),!0)}else D().then(g=>{var m=sa.splice(0,sa.length);g=W(g);for(let w of m)N(g,JSON.stringify(w),!1)}).catch(()=>{});else z||ka().then(()=>ha(!1)).catch(()=>{})}function V(z,g,m,w,I,S){if(!ba){ba=!0;try{if(!localStorageSupported||isTest)console.warn(m,w);else{var ma= 371u(r(m)),Q=m&&typeof m==="object"&&m.stack?String(m.stack):"";if(!(B(ma)||Q&&B(Q)||t(m,w,ma))){var l=n(Q);!l.length&&I&&I.file&&(l=[{functionName:"?",fileName:f(I.file),lineNumber:Number(I.line)||0,columnNumber:Number(I.col)||0}]);if(!(Aa.test(ma)||a(l)||c(l))){var M=l.find(L=>
371L.fileName)||null;if(!(z==="uncaught"&&M&&/^#!/.test(M.fileName)&&Ia.test(ma))){var na=P(z,ma,M),U=(eb.get(na)||0)+1;eb.set(na,U);Ba.indexOf(U)===-1&&U%1E3!==0||Qa>=20||!X()||(Qa++,sa.push({keepaType:"website",version:scriptSource|| 372"30",logLevel:g,kind:z,url:document.location.toString(),exception:ma,stack:l,file:M?M.fileName:void 0,line:M?M.lineNumber:void 0,col:M?M.columnNumber:void 0,fn:M?M.functionName:void 0,additional:w==null||w===""?void 0:typeof w==="string"?u(w):w,ctx:da(),navigator:G(),history:Y(),isIframe,sid:db,seq:++Ta,count:U,age:Date.now()-Sa,userOnly:S?!0:void 0}),ha(!1))}}}}}catch(L){try{console.error("bug report failed",L,m)}catch(ra){}}finally{ba=!1}}}function O(z){try{let g=z.target;if(g&&g!==window&&g.tagName){let m= 373g.tagName;g.onerror||m!=="SCRIPT"&&m!=="LINK"||!d(g.src||g.href||"")||V("resource",900,"Failed to load "+q(g),null,{file:f(g.src||g.href||"")})}else V("uncaught",1E3,z.error||z.message,null,{file:z.filename,line:z.lineno,col:z.colno})}catch(g){}}function wa(z){try{let g=z.reason;g!=null&&V("rejection",1E3,g)}catch(g){}}function La(){C||(C=!0,window.addEventListener("error",O,!0),window.addEventListener("unhandledrejection",wa),window.addEventListener("pagehide",()=>ha(!0)),document.addEventListener("visibilitychange", 374()=>{document.hidden&&ha(!0)}),window.addEventListener("pageshow",z=>{z.persisted&&(e=!0)}),window.addEventListener("hashchange",()=>{try{network.trail({route:location.hash})}catch(z){}}),ka().catch(()=>{}))}var Ba=[1,2,5,10,25,50,100,250,500,1E3],fa="Function statements require;getComputedStyle;'plot' of undefined;Invalid dimensions for plot;NS_ERROR_FILE_CORRUPTED;Object Not Found Matching Id:;GM_getValue;GM_setValue;GM_xmlhttpRequest;mooikfkahbdckldjjndioackbalphokd;translate_http;KasperskyLab;ResizeObserver loop;Script error.;runtime.sendMessage;jQuery is not defined;grecaptcha is not defined;The provider is disconnected;property 'ethereum';You must authenticate your request;Unable to load image data:;Message channel disconnected;Receiving end does not exist;Module load timeout;can't redefine non-configurable property;User rejected the request;The play method is not allowed;__spreadArray;zp_token;wallet must has at least one account;because it's not your default extension;[messaging] In this JS context;Importing a module script failed;Blocked a frame with origin;Permission denied to access property;Object {url=, id=};Fehler beim Parsen der Regeln;challenges.cloudflare.com/turnstile;overrideContentAccess;The WKWebView was deallocated;A listener indicated an asynchronous response;nsresult: \"0x;can't access dead object;this._adjusted;mask_out_white_background".split(";"), 375ia=/^(?:chrome-extension|moz-extension|safari-web-extension|safari-extension|ms-browser-extension|opera-extension|webkit-masked-url|user-script|chrome|resource|blob|data|file):|^<anonymous(?: code)?>$| > (?:injectedScript|eval|Function)\b|\.user\.js$/i,Aa=/\b_0x[0-9a-f]{4,}\b/i,Ia=/^(?:Unexpected (?:identifier|string literal|number|token|EOF|end of (?:input|script))|Expected [')}\],:;]|Invalid (?:character|escape in identifier)|No identifiers allowed directly after numeric literal|Identifier '[^']*' has already been declared|redeclaration of |missing [;)}] )/, 376Ga=/^(?:js\/(?:subpages|flot|languages)\/[^/]+|cdn\/(?:\d{6,}\/[^/]+|(?:img|fonts)\/.+|[^/]+))$/,Ya=/^(?:manifest\.json|opensearch\.xml)$/,Pa=/^(?:css\/(?:comment|detailProduct|fa-4\.7\.0|flot|grid|iframe|logdash|loginSlide|main|manage|material-components-web-0\.35\.2\.min|monitoring|products|selector_styles|style)\.css|js\/(?:fzstd\.min|graph|grid|init|logdash|mdc-lite|menu|monitoring-fleet|monitoring|nav|network|search|tools)\.js)$/,ta=/^https:\/\/challenges\.cloudflare\.com\/turnstile\//,ea=/^(?:[a-z0-9-]+\.)*(?:keepa\.com|js\.stripe\.com|challenges\.cloudflare\.com)$/i, 377Fa="Failed to fetch;NetworkError when attempting to fetch resource;Load failed;The network connection was lost;Request failed - no connection;The Internet connection appears to be offline;net::ERR_;ERR_INTERNET_DISCONNECTED;ERR_NAME_NOT_RESOLVED;ERR_CONNECTION_;ERR_NETWORK_CHANGED".split(";"),bb=[429,403,401,400,0],Ra="cancelled;turnstile-unavailable;retry;Login attempt expired. Please try again.;The request was not answered between the 5 minutes allowed.;Database deleted by request of the user;Our Bot check failed. Please reload the page and try again.;The connection was lost during loading. Please reload the page to resume loading.;Message: The connection was lost during loading. Please reload the page to resume loading.;You are not authorized to use this feature. Please register or login first.".split(";"), 378Sa=Date.now(),db=function(){try{return Array.from(crypto.getRandomValues(new Uint8Array(6)),z=>z.toString(16).padStart(2,"0")).join("")}catch(z){return Math.random().toString(16).slice(2,14)}}(),eb=new Map,sa=[],Qa=0,Ta=0,ba=!1,e=!1,x=null,v=null,C=!1,A=/^\s*at\s+(?:(.+?)\s+\()?(.+?)\)?\s*$/,H=/^(.*?)@(.*:\d+:\d+|\[native code\])$/,Z=/^\[native code\]$/,ca=/^(.*?):(\d+):(\d+)$/,K=/^HTTP (?:429|403|401|400)\b/,F=/"status"\s*:\s*(?:429|403|401|400)\s*[,}]/;La();return{report:V,install:La,trail:Y,sessionId:db, 379SEVERE:1E3,WARNING:900,INFO:800}}();function reportBug(a,b){errorReporter.report("handled",errorReporter.WARNING,a,b)}
379function reportUserLog(a,b){errorReporter.report("userlog",errorReporter.INFO,a,b,null,!0)}function getDebugInfos(){var a=document.location+"",b=errorReporter.trail().map(c=>JSON.stringify(c));return[a,"",b]} 380function prettyDate(a){a=Math.floor(a*60);var b=parseInt(storage.language)===3?la._652+" ":"";return a<60&&b+la._112||a<120&&b+la._113||a<3600&&b+Math.floor(a/60)+la._114||a<7200&&b+la._115||a<86400&&b+Math.floor(a/3600)+la._116||a<172800&&b+la._117||a<5356800&&b+Math.floor(a/86400)+la._118||a<114048E4&&b+Math.floor(a/2678400)+la._120}function zeroToDash(a){return a==0?"-":a} 381function greenOrRed(a){if(a=="-")return a;var b=parseFloat(a)>0?"red":"green",c=parseFloat(a)>0?"":' <img src="'+imgCDNUrl+'good.png" />';return'<span style="color: '+b+'">'+a+c+"</span>"}function getValueAtTime(a,b,c){if(a==null||a.length==0)return-1;for(var d=0,f=c.isWithShipping?3:2;d<a.length&&!(a[d]>b);d+=f);return d>a.length?getLast(a,c):d<f?-1:c.isWithShipping?(b=a[d-2],a=a[d-1],b<0?b:b+(a<0?0:a)):a[d-1]} 382function getValueAtTimeWithShipping(a,b){if(a==null||a.length==0)return-1;for(var c=0;c<a.length&&!(a[c]>b);c+=3);return c>a.length?getLastWithShipping(a,CsvType.BUY_BOX_SHIPPING):c<3?[-1,0]:[a[c-2],a[c-1]]}function getFirstValueWithinIntervalWithShipping(a,b,c){if(a==null||a.length==0)return-1;for(var d=0;d<a.length&&!(a[d]>b);d+=3);return d>a.length||d<3&&a[d]<c?getLastWithShipping(a,CsvType.BUY_BOX_SHIPPING):d<3?[-1,0]:[a[d-2],a[d-1]]} 383function getValueAtTimeWithExactTime(a,b,c){if(a==null||a.length==0)return-1;for(var d=0,f=c.isWithShipping?3:2;d<a.length&&!(a[d]>b);d+=f);return d>a.length?getLast(a,c):d<f?-1:c.isWithShipping?(b=a[d-2],a=a[d-1],b<0?b:b+(a<0?0:a)):[a[d-2],a[d-1]]}function getBBEntryAtTimeWithExactTime(a,b){if(a==null||a.length==0)return-1;for(var c=0;c<a.length&&!(a[c]>b);c+=2);return c>a.length?a[a.length-1]:c<2?-1:a[c-1]} 384function getBBEntryClosestWithPrice(a,b,c){if(a==null||a.length==0)return-1;for(var d=0;d<a.length;d+=2){if(a[d+1].price>-1&&a[d]>=b&&a[d]<c)return a[d+1].time=a[d],a[d+1];if(a[d]>b)break}return a[d+1].endDate>b?-1:d>a.length?a[a.length-1]:d<2?-1:a[d-1]} 385function getAggregatedDrop(a,b,c){if(a==null||a.length==0)return-1;for(var d=0,f=-1,k=-1;d<a.length&&!(a[d]>b);d+=2);for(d>1&&(d-=2);d<a.length;d+=2){b=a[d+1];if(k>0&&b>0&&b<k){let n=k-b;!(n<=c&&n%100!=0)||d>2&&b==10&&d>2&&a[d-3]==b&&n>9&&n%10==0||k%100==0&&b%100==0&&n>49||(f+=n)}k=b}f>=0&&f++;return f}function getLastTime(a,b){return a==null||a.length==0?-1:a[a.length-(b.isWithShipping?3:2)]} 386function splitRootSalesRank(a){try{var b=CsvType.SALES.index;if(a.csv[b]!=null&&a.salesRankReferenceHistory!=null&&a.salesRankReferenceHistory.length>2){a.salesRankReferenceHistory.length>=4&&a.salesRankReference==-1&&a.csv[b][a.csv[b].length-1]==-1&&a.csv[b][a.csv[b].length-2]<=a.salesRankReferenceHistory[a.salesRankReferenceHistory.length-2]&&(a.salesRankReferenceHistory.pop(),a.salesRankReferenceHistory.pop(),a.salesRankReference=a.salesRankReferenceHistory[a.salesRankReferenceHistory.length-1]); 387let d={},f={},k=a.salesRankReferenceHistory[1],n=a.salesRankReferenceHistory[0];for(var c=0;c<a.salesRankReferenceHistory.length;c+=2)d[a.salesRankReferenceHistory[c]]=a.salesRankReferenceHistory[c+1];let q=c=-1,r=0;for(let B=0;B<a.csv[b].length;B+=2){let t=a.csv[b][B],G=a.csv[b][B+1];if(t<=n)q=k;else{let da=d[t];q=da!=null?da:getValueAtTime(a.salesRankReferenceHistory,t,CsvType.SALES)}c!=q&&(B>0&&t-r>4320&&(f[c]=processCSV(f[c],-1,null,CsvType.SALES,t,a,!1)),c=q,r=t);f[q]=processCSV(f[q],G,null, 388CsvType.SALES,t,a,!1)}for(let B in f){a.salesRanks==null&&(a.salesRanks={});let t=f[B];B!=a.salesRankReference&&keepaTime.now()-t[t.length-2]>4320&&(f[B]=processCSV(f[B],-1,null,CsvType.SALES,t[t.length-2]+1440,a,!1));let G=a.salesRanks[B];G==null&&(a.salesRanks[B]=t);a.salesRanks[B]=mergeCSV(t,G,CsvType.SALES)}let u=a.salesRanks[a.salesRankReference];u!=null&&(a.csv[b]=u)}if(a.salesRanks!=null)for(let d in a.salesRanks){if(typeof a.salesRankCategoryTrees==="undefined")continue;if(a.salesRankCategoryTrees[d])continue; 389b=d;d==-2&&(b="Launchpad");a.salesRankCategoryTrees[d]=[{catId:d,name:b}];a.salesRankCategories[d]={catId:d,name:b,children:null,domainId:a.domainId,highestRank:-1,lowestRank:-1,parent:0,productC
389ount:0}}}catch(d){console.log(d)}} 390function processCSV(a,b,c,d,f,k,n){if(a==null||a.length==0){if(b==-1&&d.index>CsvType.SALES.index&&!n)return null;d=d.isWithShipping?[f,b,c]:[f,b]}else if(d.isWithShipping)if(n||a[a.length-2]!=b||a[a.length-1]!=c){if(a[a.length-3]>f)return a;if(a[a.length-3]==f){if(a.length>5&&a[a.length-2]<0&&(f=a[a.length-4],a[a.length-5]==b&&f==c))return a.slice(0,a.length-3);d=a;d[a.length-2]=b;d[a.length-1]=c}else d=a,d.push(f),d.push(b),d.push(c)}else d=a;else if(n||a[a.length-1]!=b){if(a[a.length-2]>f)return a; 391if(a[a.length-2]==f){if(a.length>3&&a[a.length-1]<0&&a[a.length-3]==b)return a.slice(0,a.length-3);d=a;d[a.length-1]=b}else d=a,d.push(f),d.push(b)}else d=a;return d}function mergeCSV(a,b,c){var d=[],f=[];try{let k=c.isWithShipping?3:2,n=q=>{for(let r=0,u=q.length;r<u;r+=k){let B=q[r],t=q[r+1];d[B]=c.isWithShipping?{d:B,c:t,s:q[r+2]}:{d:B,c:t}}};n(a);n(b);for(let q in d){let r=d[q];f.push(r.d);f.push(r.c);c.isWithShipping&&f.push(r.s)}}catch(k){return a}return f} 392const CsvTypeWithCoupon={BUY_BOX_SHIPPING_COUPON:{index:18,deal:!1,currency:!0,showDefault:0,isEnabled:!0,isWithShipping:!0,isTopGraph:!0,isOfferData:!0,includesCoupon:!0,isTrackable:!1,graphAPI:!1,color:"rgba(170, 85, 196, 1)",bg:"rgba(170, 153, 216, 0.6)"},length:1,getName:function(a){typeof a==="string"&&(a=Number(a));switch(a){case 18:return la._442+" ("+la._212+" "+la._211+")";default:return""}},getNameWithCircle:function(a){return`<i class="fa fa-circle" style="font-size: 7px;transform: translateY(-1px);color:${CsvTypeWithCoupon.getObject(a).color}" ></i> `+ 393CsvTypeWithCoupon.getName(a)},getDescription:function(a){switch(a){case 18:return la._507+" ("+la._212+" "+la._211+")";default:return""}},getObjectNameByName:function(a){for(var b in CsvTypeWithCoupon)if(typeof CsvTypeWithCoupon[b]=="object"&&a==CsvTypeWithCoupon.getName(CsvTypeWithCoupon[b].index))return b},getObject:function(a){for(var b in CsvTypeWithCoupon)if(typeof CsvTypeWithCoupon[b]=="object"&&CsvTypeWithCoupon[b].index==a)return CsvTypeWithCoupon[b]},getObjectName:function(a){for(var b in CsvTypeWithCoupon)if(typeof CsvTypeWithCoupon[b]== 394"object"&&CsvTypeWithCoupon[b].index==a)return b},format:(a,b,c)=>typeof CsvTypeWithCoupon[a]==="undefined"?"":b==null||b==-1?"-":Money.format(b,{sourceDomainId:c,targetDomainId:c})};function removeSnsFromCouponHistory(a){return a.reduce((b,c,d)=>d%3===0?[...b,a[d],a[d+1]]:b,[])}function getHistoryStartingFrom(a,b,c){var d=b?3:2;a=a.reduce((f,k,n,q)=>n%d===0?[...f,q.slice(n,n+d)]:f,[]);b=a.findIndex(([f])=>f>=c);return a.slice(b===-1?a.length-1:Math.max(b-1,0)).flat()} 395function mergePriceWithCoupon(a,b,c,d=!1){d=d?removeSnsFromCouponHistory(c):c;var f=keepaTime.epochToMinutes((new Date("2024-06-15T00:00:00Z")).getTime());f=getHistoryStartingFrom(a,b,f);var k=b?3:2,n=[],q=null,r=0;for(var u=0;u<d.length;u+=2){for(var B=d[u],t=d[u+1];r<f.length&&f[r]<=B;){var G=f[r],da=f[r+1];let Y=b?f[r+2]:0;da!==-1&&(da=q!==null?q<0?Math.max(da*(1+q/100),0):Math.max(da-q,0):da,n.push(G),n.push(da),b&&n.push(Y));r+=k}q=t;r<f.length&&f[r]>B&&(G=f[r-(k-1)],t=b?f[r-(k-2)]:0,G=q!==null? 396q<0?Math.max(G*(1+q/100),0):Math.max(G-q,0):G,n.push(B),n.push(G),b&&n.push(t))}for(;r<f.length;)u=f[r],t=f[r+1],B=b?f[r+2]:0,t!==-1&&(t=q!==-1?Math.max(t-q,0):t,n.push(u),n.push(t),b&&n.push(B)),r+=k;isTest&&console.log({priceHistory:a,reducedPriceHistory:f,couponHistory:c,couponOneTimeHistory:d,mergedHistory:n});return n}function getWeightedMean(a,b,c,d,f){a=getExtremeFilteredCSV(a,d,f);return getWeightedMeanInInterval(a,b,b-c*24*60,b,d)} 397function getWeightedMeanRaw(a,b,c,d,f){return getWeightedMeanInInterval(a,b,b-c*24*60,b,d)}function getExtremeFilteredCSV(a,b,c){var d=keepaTime.now();if(a==null||!b.currency)return a;d=getWeightedMeanInInterval(a,d,d-144E4,d,b);if(d<100)return a;var f=b.isWithShipping?3:2,k=a.length,n=c==5?100:1;c=99E5*n;n*=2E4;var q=[];for(let r=1;r<k;r+=f){let u=a[r];u>c||u>0&&(u>n&&u>d*5||u<d*0)||(q.push(a[r-1]),q.push(u),b.isWithShipping&&q.push(a[r+1]))}return q} 398function getWeightedMeanInInterval(a,b,c,d,f){if(c>=d||!a||a.length===0)return-1;
398var k=a.length,n=f.isWithShipping?3:2,q=getLastTime(a,f),r=a[0];if(q===-1||r===-1||r>d)return-1;r>c&&(c=r);d>b&&(d=b);q=f.isWithShipping?2:1;var u=0;r=0;for(let G=1,da=k;G<da;G+=n){var B=a[G-1];if(B>=d)break;k=a[G];if(!(k<0)){if(f.isWithShipping){var t=a[G+1];k+=t<0?0:t}if(B>=c){if(G===1&&G+q===da)return k;t=G+q===da?b:a[G+q];t>d&&(t=d);B=Math.max(1,t-B);r+=B;u+=k*B}else{if(G===da-q||a[G+q]>=d)return k;B=a[G+q];B>=c&& 399(r=u=Math.max(1,B-c),u*=k)}}}return r===0?-1:Math.floor(u/r)} 400function getMergedBB(a,b,c,d,f,k){var n={};if(a==null)return{};var q=keepaTime.now(),r=0,u=0,B=0;for(let G=1,da=a.length;G<da;G+=f?4:2){let Y=a[G];if(f&&Y=="")continue;let X=Number(a[G-1]),P=G+(f?3:1)<a.length?Number(a[G+(f?3:1)]):q;if(!(P<k)&&(X<k&&(X=k),r>2&&(r-=3),u>1&&(u-=2),B>1&&(B-=2),b!=null))for(let ka=b.length;r<ka;r+=3){let D=b[r],W=r+3<b.length?b[r+3]:q;if(W<=X)continue;if(D>=P)break;let N=-1;b[r+1]>0&&(N=b[r+2]>0?b[r+1]+b[r+2]:b[r+1]);D<X&&(D=X);W>P&&(W=P);let ha=-1,V=-1;if(c!=null)for(var t= 401c.length;u<t;u+=2)if(!((u+2<c.length?c[u+2]:q)<X)){if(c[u]>P)break;ha=c[u+1];break}if(d!=null)for(t=d.length;B<t;B+=2)if(!((B+2<d.length?d[B+2]:q)<X)){if(d[B]>P)break;V=d[B+1];break}n[D]?n[D].price=N:n[D]={sellerId:Y,price:N,oc:ha,endDate:W,uoc:V}}}a=[];for(let G in n)b=n[G],G=Number(G),a.push(G),a.push(b);return a} 402function getWeightedMeanSellerInInterval(a,b,c,d,f,k){var n=keepaTime.now(),q=n-f*24*60;f={};if(q>=n)return-1;if(a==null||a.length==0)return f;c=getMergedBB(a,b,c,d,k,q);d=n;for(k=b.length;k>=0&&k!=0;k-=3){var r=b[k-3];if(b[k-2]<0)d=r;else break}if(d<q)return f;a=Number(a[0]);if(c[c.length-2]==-1||a==-1||a>n)return f;a>q&&(q=a);q<changeV5&&(q=changeV5);a=!0;for(let B=1,t=c.length;B<t;B+=2){b=c[B];r=c[B-1];a&&(q=r,a=!1);if(b.price<0||b.sellerId==-1||b.sellerId==-2)continue;var u=b.endDate;k=f[b.sellerId]; 403if(r>=n)break;if(u<q)continue;if(r<changeV5||r<q)if(B+2>=c.length||c[B-1+2]>q&&c[B-1+2]>changeV5||u>q)r=q;else continue;u=B+2<t?c[B+2-1]:d;k?k.lastSeen=u:k=f[b.sellerId]={pct:0,price:0,oc:0,uoc:0,lastSeen:u};if(r>=q){if(B==1&&B+1==t)return k.pct=100,k.price=b.price,k.oc=b.oc,k.uoc=b.uoc,f;B+1==t?u=n:(u=c[B+1],u>n&&(u=n));r=Math.max(1,Math.min(u,n)-r);k.pct+=r;k.price+=b.price*r;k.oc+=b.oc*r;k.uoc+=b.uoc*r}else{if(B==t-1)return k.pct=100,k.price=b.price,k.oc=b.oc,k.uoc=b.uoc,f;r=c[B+1];if(r>=n)return k.pct= 404100,k.price=b.price,k.oc=b.oc,k.uoc=b.uoc,f;r>=q&&(k.pct=Math.max(1,r-q),k.price=b.price*k.pct,k.oc=b.oc*k.pct,k.uoc=b.uoc*k.pct)}}n-=q;for(let B in f)q=f[B],q.price=q.price==0?-1:parseInt(Math.floor(q.price/q.pct)),q.oc=q.oc==0?-1:parseInt(Math.floor(q.oc/q.pct)),q.uoc=q.uoc==0?-1:parseInt(Math.floor(q.uoc/q.pct)),q.pct=q.pct/n*100,q.pct==0&&delete f[B];return f} 405function getClosestValueAtTime(a,b,c){if(a==null||a.length==0)return-1;for(var d=0,f=c.isWithShipping?3:2;d<a.length&&!(a[d]>b);d+=f);if(d>a.length)return getLast(a,c);if(d<f)if(c.isWithShipping){if(a.length<4)return d=a[2],a=a[1],d<0?d:d+(a<0?0:a);d+=3}else{if(a.length<3)return a[1];d+=2}if(c.isWithShipping){if(a[d-2]!=-1)return b=a[d-2],a=a[d-1],b<0?b:b+(a<0?0:a);for(;d<a.length&&a[d-2]==-1;d+=f);if(d>a.length)return getLast(a,c);if(d<3)return-1;b=a[d-2];a=a[d-1];return b<0?b:b+(a<0?0:a)}if(a[d- 4061]!=-1)return a[d-1];for(;d<a.length&&a[d-1]==-1;d+=2);return d>a.length?getLast(a,c):d<2?-1:a[d-1]}function getLast(a,b){return a==null||a.length==0?-1:b.isWithShipping?(b=a[a.length-1],a=a[a.length-2],a<0?a:a+(b<0?0:b)):a[a.length-1]}function getLastWithShipping(a,b){return a==null||a.length==0?-1:b.isWithShipping?[a[a.length-2],a[a.length-1]]:[a[a.length-1],0]}function getCsvSeries(a,b){return Array.isArray(a[b])?a[b]:[]} 407function hydrateCsvFields(a){var b=Array.isArray(a.csv)?a.csv:[],c={AMAZON:"AMAZON",MARKET_NEW:"NEW",MARKET_USED:"USED",SALESRANK:"SALES"};for(let [d,f]of Object.entries(c))c=getCsvSeries(b,CsvType[f].index),a[d]=c,a[`${d}_LAST`]=c.length?c[c.length-1]:null;a.BUY_BOX_LAST=getLast(getCsvSeries(b,CsvType.BUY_BOX_SHIPPING.index),CsvType.BUY_BOX_SHIPPING);a.BUY_BOX_USED_LAST=getLast(getCsvSeries(b,CsvType.BUY_BOX_USED_SHIPPING.index),CsvType.BUY_BOX_USED_SHIPPING);return a} 408function getSimpleTreeToString(a){var b="";a.forEach((c,d)=>{d<a.length-1?(b+=c.name,b+=" \u203a "):b+=c.name+""});return b} 409function getCategorySalesRanks(a,b,c,d){var f=keepaTime.now(),k=[];for(let n in a)if(a[n]!=null){if(!c[n])continue;let q=b!=null?b[n]:null,r=getLast(c[n],CsvType.SALES),u=G=>{var da=[365,90,30,0,0,0,0];if(d&&d[n])return d[n][da.indexOf(G)];if(G<=30)return getWeightedMean(c[n],f,G,CsvType.SALES);var Y=f-c[n][0];da=da[da.indexOf(G)+1];return Y<1440*da?-1:getWeightedMean(c[n],f,G,CsvType.SALES,1)}
409,B=u(30),t=q.productCount==0||B<=0?108:B/q.productCount*100;t=t>2?parseInt(Math.ceil(t)):Math.round(t*100)/ 410100;t=t==0?.01:t;k.push({tree:getSimpleTreeToString(a[n]),sublevel:a[n].length-1,rank:r,avg30:B,avg90:u(90),avg365:u(365),cr:q,topPct:t})}k.sort((n,q)=>n.sublevel==q.sublevel?n.rank>q.rank?-1:1:n.sublevel<q.sublevel?-1:1);return k}var supportsPassive=!1;try{var opts=Object.defineProperty({},"passive",{get:function(){supportsPassive=!0}});window.addEventListener("test",null,opts)}catch(a){}var currencies=0; 411function exchangeCurrencyCSV(a,b,c,d){if(a!=null){var f=b.isWithShipping?3:2;for(let k=0;k<a.length;k+=f)b.isWithShipping?(a[k+1]=Money.raw(a[k+1],{sourceDomainId:c,targetDomainId:d,applyFloor:!0,keepUnit:!0}),a[k+2]=Money.raw(a[k+2],{sourceDomainId:c,targetDomainId:d,applyFloor:!0,keepUnit:!0})):a[k+1]=Money.raw(a[k+1],{sourceDomainId:c,targetDomainId:d,applyFloor:!0,keepUnit:!0})}} 412function createImageTag({imagesCSV:a,size:b,containerSize:c,cssClass:d="",altText:f=la._624}){a=imageUrlBuilder(a,b);f=a.includes(noImageFilename)?la._905:f;var k=b?`width="${b}" height="${b}"`:"";b=(b=c||b)?`style="width:${b}px; height:${b}px;"`:"";d=`active ${d}`.trim();return`<img src="${a}" alt="${f}" class="${d}" ${k} ${b} />`} 413function imageUrlBuilder(a,b){a=a?.split(",").find(f=>f.trim())?.trim();if(!a)return`${imgCDNUrl}${noImageFilename}`;if(!b)return`${imageServer}${a}`;var {filename:c,filetype:d}=(f=>{var k=f.lastIndexOf(".");if(k===-1)return{filename:f,filetype:".jpg"};var n=f.substring(0,k);f=f.substring(k).toLowerCase();return{filename:n,filetype:[".gif",".jpg",".png",".jpeg"].includes(f)?f:".jpg"}})(a);return`${imageServer}${c}._SS${b}_${d}`}const imageGalleryUrl=CDNUrl+"image.html"; 414function openImageGallery({title:a,domainId:b,asin:c,images:d,groups:f}){a=[`title=${encodeURIComponent(a??"")}`,`tld=${getTldByDomain(b)}`];c&&a.push(`asin=${encodeURIComponent(c)}`);d?.length&&a.push(`images=${d.map(encodeURIComponent).join(",")}`);var k=[],n=new Map,q=r=>{var u=n.get(r);u===void 0&&(u=k.push(r)-1,n.set(r,u));return u};c=(f??[]).filter(r=>r.images?.length).map(r=>[encodeURIComponent(r.asin??""),(r.labels??[]).map(q).join(","),r.images.map(q).join(",")].join(";")).join("|");c=`${imageGalleryUrl}?${a.join("&")}`+ 415(c?`#pool=${k.map(encodeURIComponent).join(",")}&groups=${c}`:"");window.open(c,"_blank")||console.warn("Popup blocked or failed to open new window.")}function replaceHtml(a,b){if((a=document.getElementById(a))&&a.parentNode){var c=a.parentNode,d=a.cloneNode(!1);d.innerHTML=b;a.parentNode===c&&c.replaceChild(d,a)}}function replaceHtmlEl(a,b){if(a&&a.parentNode){var c=a.cloneNode(!1);c.innerHTML=b;a.parentNode.replaceChild(c,a);return c}} 416function replaceElement(a,b,c,d){if(a&&a.parentNode)return b=document.createElement(b),b.innerHTML=c,d&&b.setAttribute("style",d),a.parentNode.replaceChild(b,a),b} 417function sizeCategoryGrid(a,b){if(a&&(a.style.display=b?"":"none",b&&a.clientWidth)){var c=b+"|"+a.clientWidth+"|"+a.textContent.length;
417if(a.dataset.fitKey!==c){var d=Math.max(14,b);a.classList.remove("-cramped");a.style.columnGap="";var f=0;for(var k=1;k<=d;k++)if(a.style.setProperty("--rows",k),a.scrollWidth<=a.clientWidth){f=k;b-k*(Math.ceil(b/k)-1)<k/2&&k<d&&(a.style.setProperty("--rows",k+1),a.scrollWidth>a.clientWidth?a.style.setProperty("--rows",k):f=k+1);break}if(f){if(b=Math.ceil(b/f),b> 4181){d=Infinity;f=-Infinity;for(var n of a.children)k=n.getBoundingClientRect(),k.width&&(d=Math.min(d,k.left),f=Math.max(f,k.right));k=getComputedStyle(a);n=a.clientWidth-parseFloat(k.paddingLeft)-parseFloat(k.paddingRight);k=parseFloat(k.columnGap)||0;a.style.columnGap=Math.round(k+Math.min(Math.max(0,n-(f-d))/(b-1),30))+"px"}}else a.style.setProperty("--rows",b),a.classList.add("-cramped");a.dataset.fitKey=c}}} 419function observeCategoryGrid(a,b){var c=()=>{var d=document.getElementById(b);d&&sizeCategoryGrid(d,d.children.length)};a&&!a.dataset.fitObserved&&typeof ResizeObserver==="function"&&(a.dataset.fitObserved="1",(new ResizeObserver(c)).observe(a));setTimeout(c,0)}function toPascalCase(a){return(a.match(/[a-zA-Z0-9]+/g)||[]).map(b=>`${b.charAt(0).toUpperCase()}${b.slice(1)}`).join("")} 420function toCamelCase(a){return a.toLowerCase().replace(/[-_]+/g," ").replace(/[^\w\s]/g,"").replace(/ (.)/g,function(b){return b.toUpperCase()}).replace(/ /g,"")}function toSpecialCamelCase(a){return a.toLowerCase().replace(/[-_]+/g," ").replace(/[^\w\s]/g,"").replace(/(?: |^)(.)/g,function(b){return b.toUpperCase()})} 421function longCodeToString(a,b){if(a<1E4)return"0";var c=""+a,d=c.length,f=b?12:13;if(d==f)return c;if(d>f)return console.error("invalid product code: "+a+" isUPC: "+b),"0";a=f-d;b="";for(d=0;d<a;d++)b+="0";return b+c}function stripTags(a){return a.replace(/<\/?[^>]+>/gi,"")}function stripHTML(a){var b=document.createElement("div");a!==void 0&&(b.innerHTML=a);return stripTags(b.textContent)}function escapeHTML(a){var b=document.createElement("div");b.textContent=a;return b.innerHTML} 422function unescapeHTML(a){var b=document.createElement("div");b.innerHTML=a.stripTags();return b.childNodes[0].nodeValue}function getLoaderBox(a){var b='<div style="position:relative;width:50px;display:block;margin-bottom:50px;"><div class="cssload-box-loading"></div></div>';a&&(b=`<div class="loadingFlipper" style="display:flex;justify-content:center;margin:80px;flex-direction:column;align-content:center;align-items: center;">${b}<div class="loadingProgress"></div></div>`);return b} 423const ColorTip=(()=>{var a="red green blue white yellow black".split(" "),b=f=>f?typeof f==="string"?document.querySelector(f):f.nodeType===Node.ELEMENT_NODE?f:f[0]??null:null,c=f=>f?typeof f==="string"?[...document.querySelectorAll(f)]:f.nodeType===Node.ELEMENT_NODE?[f]:[...f]:[];class d{constructor(f,k,n){this.content=f;this.alignment=k;this.container=n;this.shown=!1;this.tip=null}generate(){if(!this.tip){let f=document.createElement("span");f.className=`colorTip${this.alignment!=="center"?` ${this.alignment}`: 424""}`;f.innerHTML=`<span class="colorTipContent">${this.content}</span><span class="pointyTipShadow"></span><span class="pointyTip"></span>`;this.tip=f}return this.tip}show(){if(!this.shown){var f=this.tip,{contentHeight:k,outerWidth:n}=DomUtil.measureHidden(f,()=>({contentHeight:DomUtil.height(f),outerWidth:DomUtil.layoutOuterWidth(f)})),q=-18-k;q<-40&&(q-=3);f.style.top=`${q}px`;this.alignment==="center"?(f.style.left="50%",f.style.marginLeft=`${-n/2}px`):this.alignment==="left"?(f.style.left="0%", 425f.style.marginLeft="-4px"):(f.style.left="100%",f.style.marginLeft=`${-n+4}px`);f.style.display="inline";q=this.container?this.container.getBoundingClientRect():{left:0,right:document.documentElement.clientWidth};var r=f.getBoundingClientRect(),u=0;r.left<q.left?u=q.left-r.left+8:r.right>q.right&&(u=q.right-r.right-8);u&&(q=parseFloat(getComputedStyle(f).marginLeft)||0,f.style.marginLeft=`${q+u}px`,f.querySelectorAll(".pointyTip, .pointyTipShadow").forEach(B=>{var t=parseFloat(getComputedStyle(B).left)|| 4260;B.style.left=`${t-u}px`}));this.shown=!0}}hide(){this.shown&&(this.tip.style.display="none",this.shown=!1)}}return{attach:(f,k)=>{var n=k?.alignment??"center",q=k?.color??"red",r=b(k?.container);f=c(f);f.forEach(u=>{var B=u.getAttribute("title"),t=u.nodeName=="INPUT"?u.parentElement:u;if(B&&t){var G=new d(B,n,r);t.appendChild(G.generate());t.classList.add("colorTipContainer");a.some(Y=>t.classList.contains(Y))||t.classList.add(...q.split(/\s+/).filter(
426Boolean));var da=()=>G.hide();t.addEventListener("mouseenter", 427()=>{G.show();G.tip.querySelector(".colorTipContent")?.addEventListener("mouseenter",da,{once:!0})});t.addEventListener("mouseleave",()=>G.hide());t.removeAttribute("title");u.removeAttribute("title")}});return f}}})();function float2int(a){return a|0}Date.DATE_ATOM="Y-m-d%TH:i:sP";Date.DATE_ISO8601="Y-m-d%TH:i:sO";Date.DATE_RFC2822="D, d M Y H:i:s O";Date.DATE_W3C="Y-m-d%TH:i:sP"; 428Date.prototype.formatDate=function(a,b){function c(u){return q[u]!=void 0?q[u]():u}var d=la._77,f=la._78,k=la._79,n=la._80,q={a:function(){return r.getHours()>11?"pm":"am"},A:function(){return this.a().toUpperCase()},B:function(){var u=(r.getTimezoneOffset()+60)*60;u=r.getHours()*3600+r.getMinutes()*60+r.getSeconds()+u;u=Math.floor(u/86.4);u>1E3&&(u-=1E3);u<0&&(u+=1E3);String(u).length==1&&(u="00"+u);String(u).length==2&&(u="0"+u);return u},c:function(){return this.Y()+"-"+this.m()+"-"+this.d()+"T"+ 429this.H()+":"+this.i()+":"+this.s()+this.P()},d:function(){var u=String(this.j());return u.length==1?"0"+u:u},D:function(){return f[r.getDay()]},F:function(){return n[r.getMonth()]},g:function(){return r.getHours()==0?12:r.getHours()>12?r.getHours()-12:r.getHours()},G:function(){return r.getHours()},h:function(){var u=String(this.g());return u.length==1?"0"+u:u},H:function(){var u=String(this.G());return u.length==1?"0"+u:u},i:function(){var u=String(r.getMinutes());return u.length==1?"0"+u:u},I:function(){return(new Date("January 1 "+ 430this.Y()+" 00:00:00")).getTimezoneOffset()==r.getTimezoneOffset()?0:1},j:function(){return r.getDate()},l:function(){return d[r.getDay()]},L:function(){var u=this.Y();return u%4==0&&u%100!=0||u%4==0&&u%100==0&&u%400==0?1:0},m:function(){var u=String(this.n());return u.length==1?"0"+u:u},M:function(){return k[r.getMonth()]},n:function(){return r.getMonth()+1},N:function(){var u=this.w();return u==0?7:u},O:function(){var u=Math.abs(r.getTimezoneOffset()),B=String(Math.floor(u/60));u=String(u%60);B.length== 4311&&(B="0"+B);u.length==1&&(u="0"+u);return r.getTimezoneOffset()<0?"+"+B+u:"-"+B+u},P:function(){var u=this.O();return u.substr(0,3)+":"+u.substr(3,2)},r:function(){return this.D()+", "+this.d()+" "+this.M()+" "+this.Y()+" "+this.H()+":"+this.i()+":"+this.s()+" "+this.O()},s:function(){var u=String(r.getSeconds());return u.length==1?"0"+u:u},S:function(){switch(r.getDate()){case 1:return"st";case 2:return"nd";case 3:return"rd";case 21:return"st";case 22:return"nd";case 23:return"rd";case 31:return"st"; 432default:return"th"}},t:function(){return this.L()==1&&this.n()==2?29:[null,31,28,31,30,31,30,31,31,30,31,30,31][this.n()]},U:function(){return Math.round(r.getTime()/1E3)},w:function(){return r.getDay()},W:function(){var u=this.N(),B=this.z(),t=364+this.L()-B;if(t<=2&&u<=3-t)return 1;if(B<=2&&u>=5)return(new Date(this.Y()-1,11,31)).formatDate("W");u=(new Date(this.Y(),0,1)).getDay();u=u!=0?u-1:6;return u<=3?1+Math.floor((B+u)/7):1+Math.floor((B-(7-u))/7)},y:function(){var u=String(this.Y());return u.substring(u.length- 4332,u.length)},Y:function(){if(r.getFullYear){var u=(new Date("January 1 2001 00:00:00 +0000")).getFullYear();if(u==2001)return r.getFullYear()}u=r.getYear();u%=100;return u+(u<38?2E3:1900)},z:function(){var u="January 1 "+this.Y()+" 00:00:00 GMT"+this.O();u=new Date(u);u=r.getTime()-u.getTime();return Math.floor(u/1E3/60/60/24)},Z:function(){return r.getTimezoneOffset()*-60}};var r=b?new Date(b):this;a=a.split("");for(b=0;b<a.length;)a[b]=="%"?a.splice(b,1):a[b]=c(a[b]),b++;return a.join("")}; 434function drawLine(a,b,c,d,f){try{if(!a.nextElementSibling?.classList.contains("drawLine")){var k=getOffset(a),n=getOffset(b),q=k.left,r=k.top+k.height,u=n.left+n.width/2-5,B=n.top,t=Math.sqrt((u-q)*(u-q)+(B-r)*(B-r));b=(q+u)/2-t/2;n=(r+B)/2-d/2;var G=180/Math.PI*Math.atan2(r-B,q-u),da=n+k.height/2+4;k=b+19;iframe.isIframe&&(da=n,k=b+7);a.insertAdjacentHTML("afterend","<div class='drawLine' style='opacity: "+f+"; height:"+d+"px; background-color:"+c+"; left:"+k+"px; top:"+da+"px; width:"+t+"px; -moz-transform:rotate("+ 435G+"deg); -webkit-transform:rotate("+G+"deg); -o-transform:rotate("+G+"deg); -ms-transform:rotate("+G+"deg); transform:rotate("+G+"deg);' />")}}catch(Y){}}function getOffset(a){for(var b=0,c=0,d=a.offsetWidth|0,f=a.offsetHeight|0,k=2;k!=0&&a&&!isNaN(a.offsetLeft)&&!isNaN(a.offsetTop);)b+=a.offsetLeft-a.scrollLeft,c+=a.offsetTop-a.scrollTop,a=a.offsetParent,k--;return{top:c,left:b,width:d,height:f}} 436Array.prototype.includes||(Array.prototype.includes=function(a){if
436(this==null)throw new TypeError("Array.prototype.includes called on null or undefined");var b=Object(this),c=parseInt(b.length,10)||0;if(c===0)return!1;var d=parseInt(arguments[1],10)||0;d>=0||(d=c+d,d<0&&(d=0));for(var f;d<c;){f=b[d];if(a===f||a!==a&&f!==f)return!0;d++}return!1});function isStockMax(a,b){return[999,1E3,99999].includes(a)?!0:a&&b?b[b.length-1]===1:!1} 437function getEdgeLink(){return isMobile?isChrome?edgeLinks.edgeAppChrome:edgeLinks.edgeAppEdgeAndOther:edgeLinks.desktopExt} 438function getPlatformConfig(){var a=navigator.userAgent.toLowerCase(),b=/ipad/.test(a)||/macintosh/.test(a)&&navigator.maxTouchPoints>1,c={type:"fallback",text:la._707,url:"https://get.keepa.com",icon:"chrome_128x128.png"};if(/android/.test(a))c.type="mobile",c.type2="android",c.text=la._708,c.url="https://play.google.com/store/apps/details?id=com.keepa.mobile",c.icon=null;else if(/iphone|ipod/.test(a)||b)c.type="mobile",c.type2="apple",c.text=la._709,c.url="https://apps.apple.com/app/keepa-price-tracker/id1518541385", 439c.icon=null;else if(/edg/.test(a))c.type="browser",c.text=LangUtil.fill(la._717,{browser:"Edge"}),c.url=getEdgeLink(),c.icon="edgechromium_128x128.png";else if(/opr\//.test(a)||/opera/.test(a))c.type="browser",c.text=LangUtil.fill(la._717,{browser:"Opera"}),c.url="https://chrome.google.com/webstore/detail/neebplgakaahbhdphmkckjjcegoiijjo",c.icon="opera_128x128.png";else if(/firefox/.test(a))c.type="browser",c.text=LangUtil.fill(la._717,{browser:"Firefox"}),c.url="https://addons.mozilla.org/firefox/addon/keepa", 440c.icon="firefox_128x128.png";else if(/chrome/.test(a)||/chromium/.test(a))c.type="browser",c.text=LangUtil.fill(la._717,{browser:"Chrome"}),c.url="https://chrome.google.com/webstore/detail/neebplgakaahbhdphmkckjjcegoiijjo",c.icon="chrome_128x128.png";return c} 441function getAppLinksAndBadges(){switch(storage.language){case "3":var a=`<img alt="" src="${imgCDNUrl}app-store/Download_on_the_App_Store_Badge_DE_RGB_blk_092917.svg"/>`;var b=`<img alt="Jetzt bei Google Play" src="${imgCDNUrl}app-store/de_badge_web_generic.png"/>`;break;case "4":a=`<img alt="" src="${imgCDNUrl}app-store/Download_on_the_App_Store_Badge_FR_RGB_blk_100517.svg"/>`;b=`<img alt="Disponible sur Google Play" src="${imgCDNUrl}app-store/fr_badge_web_generic.png"/>`;break;case "5":a=`<img alt="" src="${imgCDNUrl}app-store/Download_on_the_App_Store_Badge_JP_RGB_blk_100317.svg"/>`; 442b=`<img alt="Google Play \u3067\u624b\u306b\u5165\u308c\u3088\u3046" src="${imgCDNUrl}app-store/ja_badge_web_generic.png"/>`;break;case "7":a=`<img alt="" src="${imgCDNUrl}app-store/Download_on_the_App_Store_Badge_CNSC_RGB_blk_092917.svg"/>`;b=`<img alt="\u4e0b\u8f7d\u5e94\u7528\uff0c\u8bf7\u5230 Google Play" src="${imgCDNUrl}app-store/zh-cn_badge_web_generic.png"/>`;break;case "8":a=`<img alt="" src="${imgCDNUrl}app-store/Download_on_the_App_Store_Badge_IT_RGB_blk_100317.svg"/>`;b=`<img alt="Disponibile su Google Play" src="${imgCDNUrl}app-store/it_badge_web_generic.png"/>`; 443break;case "9":a=`<img alt="" src="${imgCDNUrl}app-store/Download_on_the_App_Store_Badge_ES_RGB_blk_100217.svg"/>`;b=`<img alt="Disponible en Google Play" src="${imgCDNUrl}app-store/es_badge_web_generic.png"/>`;break;case "12":a=`<img alt="" src="${imgCDNUrl}app-store/Download_on_the_App_Store_Badge_PTBR_RGB_blk_092917.svg"/>`;b=`<img alt="Disponivel no Google Play" src="${imgCDNUrl}app-store/pt_badge_web_generic.png"/>`;break;default:a=`<img alt="" src="${imgCDNUrl}app-store/Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917.svg"/>`, 444b=`<img alt="Get it on Google Play" src="${imgCDNUrl}app-store/en_badge_web_generic.png"/>`}return{linkAppStore:"https://apps.apple.com/app/keepa-price-tracker/id1518541385",badgeAppStore:a,linkGooglePlay:"https://play.google.com/store/apps/details?id=com.keepa.mobile",badgeGooglePlay:b}} 445const showReferencePrice=a=>window.location.hash.split("/")[0]==="#!deals"?!1:currencyDomainId>0&¤cyDomainId!=a&¤cies!=0&¤cies[a]!=currencies[currencyDomainId],Money=(()=>{var a={},b=0,c,d,f,k=(n,q)=>{q.isDivided===!0&&q.sourceDomainId!=5&&(n*=100);q.absolute&&n<0&&(n!=-1||n==-1&&q.acceptMinusOne)&&n!=null&&(n*=-1);b=n;typeof q.targetDomainId==="undefined"&&(q.targetDomainId=currencyDomainId>0?currencyDomainId:q.sourceDomainId);a=q;c=Number(a.sourceDomainId);d=Number(a.targetDomainId); 446f=d!=5?2:0;a.noDigits===!0&&(f=0);d!=0&&c!=d&¤cies!=0&¤cies[c]!=currencies[d]&&b!=-1&&b!=null&&(b=1/currencies[c]*b*currencies[d]/(d==5?100:c==5?.01:1),b=+accounting.toFixed(b,a.keepUnit?f:0));a.keepUnit!==!0&&d!=5&&(b=d==100?b/10:b/100);a.applyFloor&&(b=Math.floor(b))};return{format:(n,q)=>{try{k(n,q);if(n==null||n==-1&&!a.acceptMinusOne)return"-";let r=a.forceEuropeanStyle===!0,u=a.preValueModifier?a.preValueModifier+"%v":"%v",B=a.skipSymbol?u:r?`${u} %s`:`%s ${u}`;return accounting.formatMoney(b, 447{symbol:getCurrencyByDomain(d),precision:f,thousand:r?".":",",decimal:r?",":".",format:B})}catch(r){return reportBug(r),""}},raw:(n,q)=>{try{return k(n,q),b}catch(r){return reportBug(r),""}},unformat:n=>accounting.unformat(n)}})(),NumberUtil=(()=>({format:(a,b)=>accounting.formatNumber(a,{precision:b||0,thousand:",",decimal:"."})}))(),HeroGraph=(()=>{var a=[[0,89.99],[14,89.99],[22,84.5],[40,84.5],[47,59.49],[63,79.99],[78,79.99],[92,74.95],[108,74.95],[117,49.99],[131,69.99],[148,69.99],[159,44.99], 448[172,64.99],[180,64.99]],b=[[47,84.5,59.49],[117,74.95,49.99],[159,69.99,44.99]],c=(t,G)=>{t=document.createElementNS("http://www.w3.org/2000/svg",t);for(let da in G)t.setAttribute(da,G[da]);return t},d=t=>Money.format(t,{sourceDomainId:1,targetDomainId:1,isDivided:!0}),f=t=>{var G=t>>>0;return()=>{G=G*1664525+1013904223>>>0;return G/4294967296}},k=(t,G,da)=>{var Y=f(t),X=G+Y()*(da-G);return a.map(([P,ka])=>{X=Math.max(G,Math.min(da,X+(Y()-.5)*.08));return[P,Math.round(ka*X*100)/100]})},n=t=>{t=f(t); 449var G=[],da=11200;for(let Y=0;Y<=180;Y+=1+Math.floor(t()*2))da=Math.max(4200,Math.min(21E3,da+(t()-.5)*3400+(11200-da)*.09)),G.push([Y,Math.round(da)]);return G},q=(t,G,da)=>{var Y=(G-t)/da||1,X=Math.pow(10,Math.floor(Math.log10(Y)));da=[1,2,2.5,5,10].map(P=>P*X).find(P=>P>=Y)||10*X;return{min:Math.max(0,Math.floor(t/da)*da),max:Math.ceil(G/da)*da,step:da}},r=()=>{var t=[],G=new Date;for(let da=6;da>=0;da--){let Y=new Date(G.getFullYear(),G.getMonth()-da,1),X=180-Math.round((G-Y)/864E5);X>6&&X<178&& 450t.push({t:X,label:la._79[Y.getMonth()]})}return t},u=t=>{t=Math.round(Math.max(260,Math.min(660,t||660)));return{W:t,H:Math.round(Math.max(175,t*250/660))}},B=(t,G,da)=>{var {W:Y,H:X}=u(G),P={amazon:a,bb:a.map(([x,v])=>[x,Math.round((v*.97-.8)*100)/100]),used:k(9001,.58,.78),rank:n(5150)},ka=[{key:"bb",label:la._442,color:CsvType.BUY_BOX_SHIPPING.color,hidden:!1},{key:"amazon",label:la._55,color:CsvType.AMAZON.color,hidden:!1},{key:"used",label:la._94,color:CsvType.USED.color,hidden:!1},{key:"rank", 451label:la._391,color:CsvType.SALES.color,hidden:!0}],D=da.hidden||(da.hidden=Object.fromEntries(ka.map(x=>[x.key,x.hidden]))),W=Object.fromEntries(ka.map(x=>[x.key,x.color])),N=document.createElement("div");N.className="plot";G=c("svg",{viewBox:`0 0 ${Y} ${X}`,preserveAspectRatio:"none",role:"img","aria-label":la._718});N.appendChild(G);t.appendChild(N);da=c("defs");var ha=c("linearGradient",{id:"heroGraphFill",x1:0,y1:0,x2:0,y2:1});ha.append(c("stop",{offset:"0%","stop-color":"rgba(255, 224, 193, 0.95)"}), 452c("stop",{offset:"100%","stop-color":"rgba(255, 224, 193, 0.15)"}));var V=c("clipPath",{id:"heroGraphClip"}),O=c("rect",{x:44,y:0,width:Y-44-14,height:X});V.append(O);da.append(ha,V);G.append(da);var wa=c("g",{}),La=c("g",{"clip-path":"url(#heroGraphClip)"}),Ba=c("g",{}),fa=c("g",{});G.append(wa,La,Ba,fa);var ia=0,Aa=100,Ia=x=>14+(1-(x-ia)/(Aa-ia))*(X-14-26),Ga=(x,v)=>{var C="";x.forEach(([A,H],Z)=>
452{C+=Z===0?`M${A.toFixed(1)},${H.toFixed(1)}`:`H${A.toFixed(1)}V${H.toFixed(1)}`});C+=`H${(44+(Y-44- 45314)).toFixed(1)}`;v&&(C+=`V${(X-26).toFixed(1)}H44Z`);return C},Ya=x=>{var v=Infinity,C=-Infinity;for(var A of["amazon","bb","used"])if(!D[A])for(let [,ca]of P[A])v=Math.min(v,ca),C=Math.max(C,ca);isFinite(v)||(v=0,C=100);A=(C-v)*.18||5;v=q(v-A,C+A,5);ia=v.min;Aa=v.max;wa.textContent="";Ba.textContent="";La.textContent="";for(C=ia;C<=Aa+1E-9;C+=v.step)A=Ia(C),wa.append(c("line",{x1:44,x2:Y-14,y1:A,y2:A,stroke:"#f0f2f4"})),A=c("text",{x:36,y:A+3.5,"text-anchor":"end",fill:"#9aa0a6","font-size":10.5}), 454A.textContent=Money.format(C,{sourceDomainId:1,targetDomainId:1,isDivided:!0,noDigits:!0}),Ba.append(A);for(var H of r())v=c("text",{x:44+H.t/180*(Y-44-14),y:X-8,"text-anchor":"middle",fill:"#9aa0a6","font-size":10.5}),v.textContent=H.label,Ba.append(v);Ba.append(c("line",{x1:44,x2:Y-14,y1:X-26,y2:X-26,stroke:"#e3e6e9"}));if(!D.rank){let ca=Infinity;H=-Infinity;for(var [,Z]of P.rank)ca=Math.min(ca,Z),H=Math.max(H,Z);let K=H-ca;La.append(c("path",{d:Ga(P.rank.map(([F,z])=>[44+F/180*(Y-44-14),14+(z- 455(ca-K*.35))/(K*1.55)*(X-14-26)]),!1),fill:"none",stroke:W.rank,"stroke-width":1.4,opacity:.85}))}D.amazon||(Z=P.amazon.map(([ca,K])=>[44+ca/180*(Y-44-14),Ia(K)]),La.append(c("path",{d:Ga(Z,!0),fill:"url(#heroGraphFill)"}),c("path",{d:Ga(Z,!1),fill:"none",stroke:W.amazon,"stroke-width":1.9,"stroke-linejoin":"round"})));for(let ca of["bb","used"])D[ca]||La.append(c("path",{d:Ga(P[ca].map(([K,F])=>[44+K/180*(Y-44-14),Ia(F)]),!1),fill:"none",stroke:W[ca],"stroke-width":ca==="bb"?2:1.7,"stroke-linejoin":"round"})); 456if(x&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches){O.setAttribute("width",0);let ca=performance.now(),K=F=>{F=Math.min(Math.max((F-ca)/1100,0),1);O.setAttribute("width",(Y-44-14)*(F<.5?4*F*F*F:1-Math.pow(-2*F+2,3)/2));F<1&&O.isConnected&&requestAnimationFrame(K)};requestAnimationFrame(K)}else O.setAttribute("width",Y-44-14)};G=document.createElement("div");G.className="hit";N.appendChild(G);var Pa=document.createElement("div");Pa.className="tip";N.appendChild(Pa);var ta=c("g",{opacity:0}), 457ea=c("line",{y1:14,y2:X-26,stroke:"#9aa0a6"});ta.append(ea);fa.append(ta);var Fa={},bb=(x,v)=>{x=Math.max(0,Math.min(180,x));var C=44+x/180*(Y-44-14);ea.setAttribute("x1",C);ea.setAttribute("x2",C);ta.setAttribute("opacity",1);var A="";for(let ca of ka){if(D[ca.key]){Fa[ca.key]&&Fa[ca.key].setAttribute("opacity",0);continue}var H=P[ca.key],Z=H[0][1];for(let K of H){if(K[0]>x)break;Z=K[1]}H=ca.key==="rank"?"#"+NumberUtil.format(Z):d(Z);ca.key!=="rank"&&(Fa[ca.key]||(Fa[ca.key]=c("circle",{r:3.4,fill:"#fff", 458"stroke-width":2,stroke:ca.color}),fa.append(Fa[ca.key])),Fa[ca.key].setAttribute("cx",C),Fa[ca.key].setAttribute("cy",Ia(Z)),Fa[ca.key].setAttribute("opacity",1));A+=`<div class="row"><span class="dot" style="background:${ca.color}"></span>${ca.label}<span class="v">${H}</span></div>`;if(Z=t.querySelector(`[data-chip="${ca.key}"] .val`))Z.textContent=H}v?Pa.classList.remove("-on"):(x=new Date(Date.now()-(180-x)*864E5),x=`${la._79[x.getMonth()]} ${x.getDate()}, ${x.getFullYear()}`,Pa.innerHTML=`<div class="d">${x}</div>${A}`, 459A=N.getBoundingClientRect(),C=C/Y*A.width,x=Pa.offsetWidth,Pa.style.left=Math.max(4,Math.min(A.width-x-4,C+14+x>A.width-4?C-14-x:C+14))+"px",Pa.style.top="16px",Pa.classList.add("-on"))},Ra=()=>{ta.setAttribute("opacity",0);Pa.classList.remove("-on");for(let x of Object.values(Fa))x.setAttribute("opacity",0);t.querySelectorAll("[data-chip] .val").forEach(x=>{x.textContent=x.dataset.rest})};Ya(!1);da=document.createElement("div");da.className="chips";for(let x of ka){ha=P[x.key][P[x.key].length-1][1]; 460ha=x.key==="rank"?"#"+NumberUtil.format(ha):d(ha);let v=document.createElement("button");v.type="button";v.className="chip"+(D[x.key]?" -off":"");v.setAttribute("data-chip",x.key);v.innerHTML=`<span class="dot" style="background:${x.color}"></span>${x.label} <span class="val" data-rest="${ha}">${ha}</span>`;v.addEventListener("click",()=>{D[x.key]=!D[x.key];v.classList.toggle("-off",D[x.key]);Ya(!1)});da.appendChild(v)}t.appendChild(da);var Sa=document.createElement("div");
460Sa.className="callout"; 461N.appendChild(Sa);var db=[],eb=!1,sa=(x,v)=>db.push(setTimeout(x,v)),Qa=()=>{db.forEach(clearTimeout);db=[];Sa.classList.remove("-on")},Ta=x=>{if(!eb&&t.isConnected){var [v,C,A]=b[x];bb(v,!0);Sa.innerHTML=`<div class="t"><i class="fa fa-bell"></i>${la._1844.replace("{PERCENT}",Math.round((1-A/C)*100))}</div><div class="s">${la._1853.replace("{FROM}",`<del>${d(C)}</del>`).replace("{TO}",`<b>${d(A)}</b>`)}</div>`;var H=N.getBoundingClientRect();Sa.style.left="0";Sa.style.width="auto";Sa.style.width= 462Sa.offsetWidth+"px";var Z=Sa.offsetWidth/2+6;Sa.style.left=Math.max(Z,Math.min(H.width-Z,(44+v/180*(Y-44-14))/Y*H.width))+"px";Sa.style.top=Math.max(6,Ia(A)/X*H.height-Sa.offsetHeight-10)+"px";Sa.classList.add("-on");sa(()=>Sa.classList.remove("-on"),3E3);sa(()=>{x+1<b.length?Ta(x+1):(Ra(),sa(()=>Ta(0),6E3))},3600)}};da=x=>{eb=!0;Qa();var v=N.getBoundingClientRect();bb(((x.clientX-v.left)/v.width*Y-44)/(Y-44-14)*180)};for(let x of["pointerdown","pointermove"])G.addEventListener(x,da);for(let x of["pointerleave", 463"pointercancel","pointerup"])G.addEventListener(x,()=>{Qa();Ra();sa(()=>{eb=!1;Ta(0)},2500)});var ba=()=>{Ya(!0);sa(()=>Ta(0),1500)},e=null;(()=>{var x=t.getBoundingClientRect();return x.bottom>0&&x.top<window.innerHeight&&x.height>0})()?ba():"IntersectionObserver"in window?(e=new IntersectionObserver(x=>{x.some(v=>v.isIntersecting)&&(e.disconnect(),ba())},{threshold:.3}),e.observe(t)):ba();return()=>{Qa();e&&e.disconnect()}};return{init:()=>{var t=document.querySelector("#heroGraph");if(t){var G= 464{},da=null,Y=0,X=()=>{Y=t.clientWidth;da&&da();da=null;t.textContent="";try{da=B(t,Y,G)}catch(P){reportBug(P)}};X();requestAnimationFrame(()=>{t.isConnected&&Math.abs(t.clientWidth-Y)>=8&&X()});if("ResizeObserver"in window){let P,ka=new ResizeObserver(()=>{t.isConnected?Math.abs(t.clientWidth-Y)<8||(clearTimeout(P),P=setTimeout(X,200)):(ka.disconnect(),clearTimeout(P),da&&da())});ka.observe(t)}}}}})(),CurrencySwitch=(()=>{var a=()=>{var b=Deferred(),c=[],d=[{label:la._352,domainIds:[1,6,11,12]},{label:la._353, 465domainIds:[2,3,4,8,9]},{label:la._354,domainIds:[5,10]}].map(f=>{var k=f.domainIds.filter(n=>{n=getCurrencyCodeByDomain(n);if(c.includes(n))return!1;c.push(n);return!0}).map(n=>({rel:n,label:`${getCurrencyByDomain(n)} ${getCurrencyCodeByDomain(n)}`,active:n==currencyDomainId}));return k.length?settingsRow("currencyDomainId",f.label,settingsChips(k)):""}).join("");d=`<form class="currency-setup" id="formCurrency"> 466 <p class="currency-setup__intro">${la._952}<br>${la._953}*</p> 467 <div class="currency-setup__off" data-setting="currencyDomainId"> 468 ${settingsChips([{rel:0,label:la._954,active:currencyDomainId==0}])} 469 </div> 470 ${d} 471 <p class="currency-setup__note">* ${la._955}</p> 472 <div class="setting-actions"> 473 <button type="submit" class="card-action" id="submitCurrency"><i class="fa fa-money"></i>${la._225}</button> 474 </div> 475 </form>`;setTimeout(()=>{var f=document.getElementById("formCurrency");f&&(f.addEventListener("click",k=>{if(k=k.target.closest(".setting-chip"))f.querySelectorAll(".setting-chip.-on").forEach(n=>n.classList.remove("-on")),k.classList.add("-on")}),f.addEventListener("submit",k=>{k.preventDefault();b.resolve({currency:Number(f.querySelector(".setting-chip.-on")?.getAttribute("rel")??0)})}))},0);return{onSubmit:b.promise(),html:d}};return{init:()=>{var b=a(),c=showPopup(la._951,b.html,!0);b.onSubmit.done(d=> 476{d=Number(d.currency);d>0&&typeof currencies[d]==="undefined"&&(d=0);storage.currencyDomainId=d;settings.send();settings.refresh();c.close()})}}})(),LoaderUtil=(()=>{var a=[],b=(c,d)=>{var f=Deferred();if(a.includes(d))return f.resolve();a.push(d);var k=document.createElement(c);switch(c){case "script":var n="body";var q="src";k.async=!0;k.crossOrigin="anonymous";break;case "link":n="head";q="href";k.type="text/css";k.rel="stylesheet";break;default:throw Error("Unsupported tag.");}k.onload=f.resolve; 477k.onerror=()=>{var r=a.indexOf(d);r>-1&&a.splice(r,1);f.reject(Error(`Failed to load ${c}: ${d}`))};k[q]=d;document[n].appendChild(k);return f.promise()};return{css:c=>b("link",c),js:c=>b("script",c)}})(),GraphService=(()=>({getAvailableGraphTypes:()=>[CsvType.SALES.index,CsvType.BUY_BOX_SHIPPING.index,CsvType.AMAZON.index,CsvType.NEW.index,CsvType.NEW_FBA.index,CsvType.NEW_FBM_SHIPPING.index,CsvType.PRIME_EXCL.index,CsvType.LIGHTNING_DEAL.index,CsvType.BUY_BOX_USED_SHIPPING.index,CsvType.USED.index, 478CsvType.WAREHOUSE.index],getDefaultWebGraphRange:()=>365,getDefaultWebGraphType:()=>{var a=Array(CsvType.length).fill(0);a[CsvType.SALES.index]=1;a[CsvType.BUY_BOX_SHIPPING.index]=1;a[CsvType.AMAZON.index]=1;a[CsvType.NEW.index]=1;a[CsvType.LIGHTNING_DEAL.index]=1;a[CsvType.USED.index]=1;a[CsvType.WAREHOUSE.index]=1;return a},getShareUrl:(a,b)=>{var c=`${graphBaseUrl}${graphBaseFilename}`;return c+=`?asin=${a}&domain=${getTldByDomain(b)}`},getUrl:(a,b,c,d,f,k,n)=>{var q=`${graphBaseUrl}${graphBaseFilename}`; 479q+=`?asin=${a}&domain=${getTldByDomain(b)}`;f=f||JSON.parse(get("webGraphType"));
479k=k||JSON.parse(get("webGraphRange"));q+=`&salesrank=${f[CsvType.SALES.index]}`;q+=`&amazon=${f[CsvType.AMAZON.index]}`;q+=`&new=${f[CsvType.NEW.index]}`;q+=`&used=${f[CsvType.USED.index]}`;q+=`&bb=${f[CsvType.BUY_BOX_SHIPPING.index]}`;q+=`&fba=${f[CsvType.NEW_FBA.index]}`;q+=`&fbm=${f[CsvType.NEW_FBM_SHIPPING.index]}`;q+=`&pe=${f[CsvType.PRIME_EXCL.index]}`;q+=`&ld=${f[CsvType.LIGHTNING_DEAL.index]}`;q+=`&bbu=${f[CsvType.BUY_BOX_USED_SHIPPING.index]}`; 480q+=`&wd=${f[CsvType.WAREHOUSE.index]}`;q=q+`&range=${k}`+`&width=${c||500}&height=${d||200}`;n&&n===1&&(q+="&type=1");return q},getWebGraphTypeAllOff:()=>Array(CsvType.length).fill(0)}))(); 481function sendHelloGraph(a){isTest||(storage.accountType!=0&&storage.accountType!=1||a)&&decompressFromBase64("Ky1OLcpLzE0FAA==").then(b=>{compressAndConvertToBase64(storage[b]).then(c=>{var d="?token="+storage.token+"&v="+c;a&&(d="?v="+c);decompressFromBase64("yygpKSi20tdPL0osyNDLTk0tSNRLzs/Vz0jNycnXA4sCAA==").then(f=>{var k=new XMLHttpRequest;k.open("HEAD",f+d,!0);k.withCredentials=!0;k.send(null)})})}).catch(()=>{})} 482function getBaseUrl(){return is30108?"http://"+document.location.host+"/"+document.location.search:protocol+document.location.hostname+"/"}const DOMAIN_PREFIXED_ROUTES=["#!product","#!seller"];function rewriteSubUrlDomain(a,b,c){if(!DOMAIN_PREFIXED_ROUTES.includes(a)||typeof b!=="string")return null;a=b.indexOf("-");if(a<=0||!verifyRegExp.domainId.test(b.substring(0,a)))return null;c+=b.substring(a);return c===b?null:c} 483function encodeHTML(a){return a?a.split("&").join("&").split("<").join("<").split('"').join(""").split("'").join("'"):""}function getCasinLocalesFromStorage(){var a=storage.casinLocales?tryParseJSON(storage.casinLocales):null;Array.isArray(a)&&a.length===LocaleType.length&&typeof a[0]==="boolean"||(a=Array(LocaleType.length).fill(!1),a[0]=!0);return a} 484const SellerUtil=(()=>{var a=" ATVPDKIKX0DER A3P5ROKL5A1OLE A3JWKAKR8XB7XF A1X6FK5RDHNB96 AN1VRQENFRJN5 A3DWYIK6Y9EEQB A1AJ19PSB66TGU A11IL2PNWYJU7H A1AT7YVPFBWXBL AVDBXBAVVSXLQ A1ZZFT5FULY4LN ANEGB3WVEVKZB A17D2BRD4YMT0X".split(" "),b=" A3SLTBYT1P4ASM AZH2GF8Z5J95G AMUN6OW4OKOC5 A2W68NJA5YNXUP A1TMZHY2SHKLH2 A13P6277X44WWB ".split(" "),c="A3M32Z6M072V6G A17SFUTIVB227Z A73J8FUD3TCA5 A3T7DQBB0CKEM6 A3ODHND3J0WMC8 A6D8GZQLZZGO9 A3NKQTGM3PCAIZ A3SLTBYT1P4ASM A5UUIVRC5HDTS A1NHYT4IBWIJVV A1SL8GN8WYR9PY A27GA0YBG6SP60 A3MTENA2RGT54E AR9ZQCUDB1BRG A18FWS6K2KEZVH A272UC180L3PT5 A3QNOO22OOSRVA A8FQRD0WW0VW5 AYRD2K1E2G5OI A3OSP7RQDCZTFI A2KAVP39WOVYMY ALQGD0RUJOUO0 A2VH1G09VXWEK4 A3DMYT37LYXJWC A1HAK8FCVUIIJW A3HBS5CIENBL3I AZ8B0UT6GFHPA AE2QNCE40KCLM A1RJCHJCQT9WV5 A1XE56C8KJF3Q8 A1XHM9JTFOBM5W A3G9IOHQDOG823 A2U5JVE7GGFD8B A23R8XU9UYU5MY A14WSK88711B1Q A27LXP2YCQ2WLE A1RIR7ZBMS38LR A20WXWN33S3JGD A1PT7S6F0FISH A2X9BIRDIKC20I A1JW18WKUHUG7I A1G3UP32AZJ14F A1LD4FJ97AUVJA".split(" "), 485d=" A2L77EE7U53NWQ A2OAJ7377F756P A8KICS1PHF7ZO A2CVHYRTWLQO9T ANNLLU4HTZVX9 AUJBRIGYRJ3Q8 A1HO9729ND375Y A6T89FGPU3U0Q A23KQ2J0V65IPS A3CO2Z4EZ33K8R A1GE4GWD4XC0D9 A3C1D9TG1HJ66Y".split(" "),f=(n,q)=>n==-1||n==-2?"-":k(n,q)?"Amazon":la._1264,k=(n,q)=>n===a[q]||n===b[q]||c.includes(n);return{getAmazonSellerIds:n=>{var q=[];a[n]&&a[n].length&&q.push(a[n]);b[n]&&b[n].length&&q.push(b[n]);return q},getAmazonWarehouseSellerIds:n=>{var q=[];d[n]&&d[n].length&&q.push(d[n]);return q},getHtml:(n,q,r,u= 486null,B=!1,t="<br>")=>{var G=k(n,q),da=!G&&q!=14,Y="https://www.amazon."+getTldByDomain(q)+"/gp/aag/details/?seller="+n,X=getBaseUrl()+"#!seller/"+q+"-"+n;r=r||f(n,q);return`${da?`<a href="${X}" title="${la._181}" target="_blank">${r}</a>`:r} ${da?`<a href="${Y}" title="${la._646} Amazon" target="_blank"><i class="fa fa-external-link"></i></a>`:""} 487 ${!G&&u!==null&&u>0?`${t}<span style="color:#999">(${u}% ${la._210})</span>`:""} 488 ${B?`<br><span style="font-family:monospace;color:#ccc">${n}</span>`:""}`},getLinkInternal:(n,q)=>getBaseUrl()+"#!seller/"+q+"-"+n,getLabel:f,isSellerIdAmazon:k,isSellerIdAmazonWarehouse:(n,q)=>n===d[q]}})(),SettingsSchema=Object.freeze({dealsSectionState:{value:()=>"{}",keep:!0},extremeFilter:{value:()=>"0"},finderLayout:{value:()=>"cards",keep:!0},finderSectionState:{value:()=>JSON.stringify(SettingsUtil.getFinderSectionStateDefault())},graphScale:{value:()=>"0"},includeMeta:{value:()=>"0"}, 489onlyNotificationsWithTracking:{value:()=>"0"},optOut_crawl:{value:()=>"0",extension:!0},overlayPriceGraph:{value:()=>"0",extension:!0},revealStock:{value:()=>"1",extension:!0},s_boxHorizontal:{value:()=>"0",extension:!0},s_boxType:{value:()=>"0",extension:!0},s_boxVertical:{value:()=>"200"},s_dateFormat:{value:()=>"D, M j G:i"},s_merchantTrack:{value:()=>JSON.stringify(SettingsUtil.getMerchantTrackDefault())},s_percent:{value:()=>"5"},s_position:{value:()=>"0"},s_range:{value:()=>"2160"},s_trackingMode:{value:()=> 490"basic"},s_trackingTtl:{value:()=>TrackingComponent.getDefaultTtl().toString()},showGraphs:{value:()=>JSON.stringify(graph.getDefaultShowGraphSetting())},singleVariation:{value:()=>"1"},stockMaxOrderQty:{value:()=>"false"}
490,webGraphRange:{value:()=>GraphService.getDefaultWebGraphRange().toString(),extension:!0},webGraphType:{value:()=>JSON.stringify(GraphService.getDefaultWebGraphType()),extension:!0}}),settingsExtensionKeys=()=>Object.keys(SettingsSchema).filter(a=>SettingsSchema[a].extension),settingsRow= 491(a,b,c)=>`<div class="setting-row"> 492 <div class="setting-row__label">${b}</div> 493 <div class="setting-row__control" data-setting="${a}">${c}</div> 494 </div>`,settingsSegment=a=>`<span class="setting-segment">${a.map(b=>`<button type="button" class="setting-segment__opt${b.active?" -on":""}" rel="${b.rel}">${b.label}</button>`).join("")}</span>`,settingsChips=(a,b)=>`<span class="setting-chips">${a.map(c=>`<button type="button" class="setting-chip${b?" -multi":""}${c.active?" -on":""}" rel="${c.rel}">${c.label}</button>`).join("")}</span>`,settingsYesNo=(a,b="1",c="0")=>settingsSegment([{rel:b,label:la._254,active:a},{rel:c,label:la._255,active:!a}]), 495settingsField=(a,b,c={})=>`<span class="setting-field"> 496 <input type="${c.text?"text":"number"}" class="setting-field__input${c.modifier||""}"${c.id?` id="${c.id}"`:""} 497 value="${escapeHTML(String(a))}"${c.min?` min="${c.min}"`:""}${c.max?` max="${c.max}"`:""}${c.placeholder?` placeholder="${escapeHTML(c.placeholder)}"`:""}${c.title?` title="${escapeHTML(c.title)}"`:""}> 498 ${b?`<span class="setting-field__unit">${b}</span>`:""} 499 </span>`,settingsAction=(a,b,c,d="")=>`<button type="button" class="card-action${d}" data-setting="${a}" rel="${a}"><i class="fa ${c}"></i>${b}</button>`,SettingsUtil=(()=>{var a=()=>{var c=Array(CsvType.length).fill(0);c[CsvType.AMAZON.index]=1;c[CsvType.BUY_BOX_SHIPPING.index]=1;return c},b=c=>{if(c===null)return JSON.stringify(a());
499if(typeof c==="string"&&c.length===3){let d=Array(CsvType.length).fill(0);c.charAt(CsvType.AMAZON.index)==="1"&&(d[CsvType.AMAZON.index]=1);c.charAt(CsvType.NEW.index)=== 500"1"&&(d[CsvType.NEW.index]=1);c.charAt(CsvType.USED.index)==="1"&&(d[CsvType.USED.index]=1);if(d[CsvType.AMAZON.index]||d[CsvType.NEW.index])d[CsvType.BUY_BOX_SHIPPING.index]=1;return JSON.stringify(d)}return c};return{getFinderSectionStateDefault:()=>({c:1,s:1,oc:1,bb:1,bbu:1,si:1,o:1}),getMerchantTrack:()=>{var c=a(),d=get("s_merchantTrack");if(d==="undefined")return set("s_merchantTrack",c),c;try{c=JSON.parse(d)}catch(f){reportBug(f,"[SettingsUtil][getMerchantTrack] "+d),set("s_merchantTrack", 501b(d))}return c},getMerchantTrackDefault:a,ensureMerchantTrackFormat:b}})(); 502class Autocomplete{static get(a){return Autocomplete.instances.get(a)}constructor(a,b){this.input=a;this.options=Object.assign({minLength:1,delay:200,autoFocus:!1},b);this.menu=null;this.items=[];this.activeIndex=-1;this.term="";this.searchTimer=null;this.requestId=0;this.onInput=()=>this.schedule(this.input.value);this.onKeyDown=c=>this.keydown(c);this.onBlur=()=>{this.blurTimer=setTimeout(()=>this.close(),150)};this.onReposition=()=>this.position();this.onDocumentPointerDown=c=>{c.target===this.input|| 503this.menu&&this.menu.contains(c.target)||this.close()};a.setAttribute("autocomplete","off");a.setAttribute("aria-autocomplete","list");a.setAttribute("aria-expanded","false");a.classList.add("ui-autocomplete-input");a.addEventListener("input",this.onInput);a.addEventListener("keydown",this.onKeyDown);a.addEventListener("blur",this.onBlur);Autocomplete.instances.set(a,this)}get isOpen(){return this.menu!==null}schedule(a){clearTimeout(this.searchTimer);clearTimeout(this.blurTimer);this.searchTimer= 504setTimeout(()=>this.search(a),this.options.delay)}search(a){clearTimeout(this.searchTimer);clearTimeout(this.blurTimer);a=a!=null?a:this.input.value;this.term=this.input.value;if(a.length<this.options.minLength)this.close();else{var b=++this.requestId;this.options.source({term:a},c=>{b===this.requestId&&this.render((c||[]).map(d=>typeof d==="string"?{label:d,value:d}:d))})}}render(a){this.items=a;if(a.length){if(!this.menu){this.menu=document.createElement("ul");this.menu.className="ui-menu ui-widget ui-autocomplete ui-front"; 505this.menu.style.margin="0";this.menu.setAttribute("role","listbox");let c=this.options.classes&&this.options.classes["ui-autocomplete"];c&&(this.menu.className+=" "+c);this.menu.addEventListener("mousedown",d=>d.preventDefault());this.menu.addEventListener("click",d=>{var f=d.target.closest("li");f&&f.autocompleteItem&&this.select(f.autocompleteItem,d)});this.menu.addEventListener("mouseover",d=>{(d=d.target.closest("li"))&&d.autocompleteItem&&!d.autocompleteItem.disabled&&this.activate(d.autocompleteIndex)}); 506this.menu.addEventListener("mouseleave",()=>{this.activate(this.options.autoFocus?this.firstSelectable():-1)});document.body.appendChild(this.menu);window.addEventListener("scroll",this.onReposition,!0);window.addEventListener("resize",this.onReposition);document.addEventListener("mousedown",this.onDocumentPointerDown,!0);this.input.setAttribute("aria-expanded","true")}this.menu.innerHTML="";var b=this.menu;a.forEach((c,d)=>{if(this.options.renderItem)var f=this.options.renderItem(b,c);else{f=document.createElement("li"); 507let k=document.createElement("div");k.textContent=c.label;f.appendChild(k);b.appendChild(f)}f&&(f.classList.add("ui-menu-item"),f.setAttribute("role","option"),f.autocompleteItem=c,f.autocompleteIndex=d)});this.activeIndex=-1;this.position();this.options.autoFocus&&this.activate(this.firstSelectable())}else this.close()}firstSelectable(){for(let a=0;a<this.items.length;a++)if(!this.items[a].disabled)return a;return-1}position(){if(this.menu)if(this.input.isConnected){var a=this.input.getBoundingClientRect(); 508this.menu.style.minWidth=a.width+"px";var b=this.menu.offsetHeight;this.menu.style.top=(a.bottom+b>window.innerHeight&&a.top>=b?a.top-b:a.bottom)+window.scrollY+"px";this.menu.style.left=Math.max(0,Math.min(a.left,window.innerWidth-this.menu.offsetWidth-4))+window.scrollX+"px"}else this.close()}activate(a){var b=this.menu?this.menu.children:[];this.activeIndex>=0&&b[this.activeIndex]&&b[this.activeIndex].classList.remove("ui-state-active");this.activeIndex=a;a>=0&&b[a]&&(b[a].classList.add("ui-state-active"), 509a=b[a],a.offsetTop<this.menu.scrollTop?this.menu.scrollTop=a.offsetTop:a.offsetTop+a.offsetHeight>this.menu.scrollTop+this.menu.clientHeight&&(this.menu.scrollTop=a.offsetTop+a.offsetHeight-this.menu.clientHeight))}move(a){if(this.isOpen){var b=this.items.length;if(b){var c=this.activeIndex;for(let d=0;d<b;d++)if(c=(c+a+b)%b,!this.items[c].disabled){this.activate(c);break}}}}select(a,b){a.disabled||(this.options.select&&this.options.select(b,{item:a})===!1||(this.input.value=a.value),this.close(b))}keydown(a){switch(a.key){case "ArrowDown":if(!this.isOpen){this.search(this.input.value); 510break}a.preventDefault();this.move(1);break;case "ArrowUp":if(!this.isOpen)break;a.preventDefault();this.move(-1);break;case "Enter":this.isOpen&&this.activeIndex>=0&&(a.preventDefault(),this.select(this.items[this.activeIndex],a));break;case "Tab":this.isOpen&&this.activeIndex>=0&&this.select(this.items[this.activeIndex],a);break;case "Escape":this.isOpen&&(a.preventDefault(),this.input.value=this.term,this.close(a))}}close(a){clearTimeout(this.searchTimer);this.requestId++;this.menu&&(window.removeEventListener("scroll", 511this.onReposition,!0),window.removeEventListener("resize",this.onReposition),document.removeEventListener("mousedown",this.onDocumentPointerDown,!0),this.menu.remove(),this.menu=null,this.items=[],this.activeIndex=-1,this.input.setAttribute("aria-expanded","fal
511se"),this.options.close&&this.options.close(a))}destroy(){clearTimeout(this.searchTimer);clearTimeout(this.blurTimer);this.close();this.input.removeEventListener("input",this.onInput);this.input.removeEventListener("keydown",this.onKeyDown); 512this.input.removeEventListener("blur",this.onBlur);Autocomplete.instances.delete(this.input)}}Autocomplete.instances=new WeakMap; 513const FilterField=(()=>{var a=b=>{var c=b.classList.contains("filter-range--field"),d=c?b.closest(".filter-range--input"):b.closest(".filter-input");d&&(b=c?Array.from(d.querySelectorAll(".filter-range--field")).some(f=>f.value!==""):b.value!=="",d.classList.toggle("-has-value",b))};return{caption:(b,c)=>`<div class="filter-text--label" data-filter-name="${encodeHTML(b)}"><span>${b}</span>${c||""}</div>`,input:(b,c,d,f)=>{d=d||{};c=c?encodeHTML(c):"";return`<span class="filter-input${d.modifier?" "+ 514d.modifier:""}"><input type="text" class="filter-input--field" id="${b}" name="${b}" autocomplete="off" spellcheck="false"${f?` aria-label="${encodeHTML(f)}"`:""}${c?` value="${c}"`:""}${d.pattern?` pattern="${encodeHTML(d.pattern)}"`:""}${d.required?" required":""}></span>`},select:(b,c,d,f)=>{var k="";d.forEach(n=>{k+=`<option value="${n.value}"${c==n.value?" selected":""}>${n.label}</option>`});return`<span class="filter-input -select"><select class="filter-input--field" id="${b}" name="${b}"${f? 515` aria-label="${encodeHTML(f)}"`:""}>${k}</select></span>`},check:({type:b="checkbox",id:c,label:d,checked:f,name:k=c,value:n,inline:q})=>{var r=b==="radio"?"-radio":"-checkbox";n=n==0||n?` value="${encodeHTML(String(n))}"`:"";return`<span class="panelCheck${q||b==="radio"?" -inline":""}"> 516 <input type="${b}" id="${c}${r}" name="${k}"${n}${f?" checked":""}> 517 <label for="${c}${r}">${d}</label> 518 </span>`},button:({id:b,label:c,icon:d,secondary:f,name:k,type:n="button"})=>`<button type="${n}" id="${b}" class="panelButton${f?" -secondary":""}"${k?` name="${k}"`:""}>${c}${d?`<i class="fa fa-${d} -panel-icon"></i>`:""}</button>`,file:({id:b,name:c,accept:d,required:f})=>`<span class="filter-input -file"><input type="text" id="${b}Trigger" class="filter-input--field" readonly autocomplete="off"${f?" required":""}><label class="filter-input--file" for="${b}"></label><input type="file" id="${b}" name="${c|| 519b}"${d?` accept="${d}"`:""} hidden></span>`,updateHasValueState:a,syncHasValueState:b=>b?.querySelectorAll("input.filter-input--field, .filter-range--field").forEach(a),HAS_VALUE_SELECTOR:"input.filter-input--field, .filter-range--field"}})(),GlobalFilterAutocomplete=(()=>{var a="activeIngredients author binding brand brandStoreName brandStoreUrlName businessDiscount buyBoxShippingCountry buyBoxStandardDeviation30 buyBoxStandardDeviation90 buyBoxStandardDeviation365 buyBoxStatsTopSellerId30 buyBoxStatsTopSellerId90 buyBoxStatsTopSellerId180 buyBoxStatsTopSellerId365 categories color couponOneTimeAbsolute couponOneTimePercent couponSNSPercent dealType deltaPercent90_monthlySold edition fbaFees flipability30 flipability90 flipability365 format historicalSellerIds itemForm itemHeight itemLength itemTypeKeyword itemWeight itemWidth languages listedSince manufacturer material model monthlySold monthlySoldPeak numberOfItems numberOfPages packageHeight packageLength packageQuantity packageWeight packageWidth partNumber pattern publicationDate releaseDate returnRate salesRankDisplayGroup scent sellerIds sellerIdsFBA sellerIdsFBM sellerIdsLowestFBA sellerIdsLowestFBM size specialIngredients style targetAudienceKeyword type unitType websiteDisplayGroup websiteDisplayGroupName".split(" "), 520b=Y=>Y==="unitCount.unitType"?"unitType":Y,c=Y=>Y==="isEmpty"||Y==="isNotEmpty",d=Y=>{var X=Y.closest(".filter-text--autocomplete");if(X){var P=c(Y.value);X.classList.toggle("filter-text--presence",P);X.querySelectorAll('input:not([type="hidden"])').forEach(ka=>{ka.disabled=P})}},f=()=>`<span class="clear-all"><span style="font-style:italic;">${la._54} <i data-id="-1">\u00d7</i></span></span>`,k=(Y,X)=>{var P=Y.getAttribute("name").replace("autocomplete-","");P==="unitCount.unitType"&&(P="unitType"); 521var ka=Y.parentElement?.parentElement,D=ka?.querySelector(":scope > p"),W=ka?.querySelector('input[type="hidden"]'),N=[],ha=O=>
521{O=Array.from(new Set(O)).filter(Ba=>Ba.length);var wa=(W?.value??"").split("###").filter(Ba=>Ba),La=!1;for(let Ba of O)wa.indexOf(Ba)===-1&&(wa.length===0&&(D?.insertAdjacentHTML("beforeend",GlobalFilterAutocomplete.getClearAllItem()),t(D)),wa.length<GlobalFilterAutocomplete.maxValues?(O=Ba,D?.insertAdjacentHTML("beforeend",`<span><span>${O}</span> <i>\u00d7</i></span>`), 522t(D),wa.push(Ba)):La=!0);wa.length&&(wa.sort(),wa=wa.map(Ba=>Ba.replace(/"/g,""")),u(W,wa.join("###")));La&&da()},V=O=>({unmatched:!0,label:`${escapeHTML(O)} <span class="unmatched-hint">(${la._972})</span>`,value:O});new Autocomplete(Y,{source:(O,wa)=>{var La=O.term;La.includes("###")?wa([{data:La,label:"Multiple values: "+La,value:" "}]):network.request({path:"pro/autocomplete",content:La,domainId:Number(storage.domain),maxResults:25,type:P}).done(Ba=>{var fa=La.trim().toLowerCase();if(Ba.suggestions!= 523null&&Ba.suggestions.length){let ia=[],Aa=[];for(let Ia=0;Ia<Ba.suggestions.length;Ia++){let Ga=Ba.suggestions[Ia],Ya=Ga.value;X&&(Ya+=" ("+Ga.count+")");ia.push(Ga.value);Aa.push({label:Ya,value:Ga.value})}Aa.unshift({selectAll:!0,data:ia.join("###"),label:la._51,value:" "});N=ia;fa.length&&!ia.some(Ia=>Ia.toLowerCase()===fa)&&Aa.push(V(fa));wa(Aa)}else N=[],wa(fa.length?[V(fa)]:[])}).fail(Ba=>{wa([]);reportBug(Ba,"[autocomplete] suggestions failed")})},autoFocus:!0,delay:200,minLength:0,close:(O, 524wa)=>{O=Y.value;N.indexOf(O)>-1&&ha([O]);Y.value="";FilterField.updateHasValueState(Y)},select:(O,wa)=>{if(wa.item.value!=""||wa.item.data!="")return O=[],wa.item.data?O=wa.item.data.split("###"):O.push(wa.item.value),ha(O),Y.value="",FilterField.updateHasValueState(Y),!1},renderItem:n});Y.addEventListener("focus",()=>Autocomplete.get(Y).search(Y.value))},n=(Y,X)=>{var P=document.createElement("li"),ka=document.createElement("div"),D=X.label;X.disabled&&(P.classList.add("ui-state-disabled"),D='<i class="fa fa-ban"></i> '+ 525D);X.selectAll&&(P.classList.add("ui-item-select-all"),D='<i class="fa fa-check-circle-o"></i> '+D);X.unmatched&&(P.classList.add("ui-item-unmatched"),D='<i class="fa fa-question-circle-o"></i> '+D);ka.innerHTML=D;P.appendChild(ka);Y.appendChild(P);return P},q=(Y,X)=>{var P=document.createElement("li"),ka=document.createElement("div"),D=X.label;X.disabled&&(P.classList.add("ui-state-disabled"),D='<i class="fa fa-ban"></i> '+D);X.selectAll&&(P.classList.add("ui-item-select-all"),D='<i class="fa fa-check-circle-o"></i> '+ 526D);X.unmatched&&(P.classList.add("ui-item-unmatched"),D='<i class="fa fa-question-circle-o"></i> '+D);ka.classList.add("item--categories");D=X.prefix?`<span>${X.prefix?X.prefix:"-"}<br></span>${D}`:`${D}`;ka.innerHTML=D;P.appendChild(ka);Y.appendChild(P);return P},r=(Y,X)=>{var P=Y.getAttribute("name").replace("autocomplete-",""),ka=Y.parentElement?.parentElement,D=ka?.querySelector(":scope > p"),W=ka?.querySelector('input[type="hidden"]'),N=P==="rootCategory",ha=V=>{var O=[],wa=[];if(V?.categories){V= 527V.categories;let ia="?;Categories;Kategorien;Categor\u00edas;Categorie;Categorias;\u30ab\u30c6\u30b4\u30ea\u30fc\u5225;\u6a5f\u7a2e\u5225;\u30b8\u30e3\u30f3\u30eb\u5225;Products;Produkte;Departments;Special Feature Stores;Custom Stores".split(";");for(let [Aa,Ia]of Object.entries(V)){var La=Ia?.matched!==void 0,Ba=!!Ia?.productCount,fa=Ia?.name&&Ia.name!=="?";let Ga=Ia?.parent>0;if(N?La&&Ba&&fa&&!Ga:La&&Ba&&fa&&Ga){La={id:Aa,name:Ia.name,count:Ia.productCount};O.push(La);Ba=[];for(fa=Ia;fa&&fa?.parent!== 5280;)(fa=V[fa.parent])&&!ia.includes(fa.name)&&Ba.unshift(fa.name);wa.push({data:[La],prefix:Ba.length?`${Ba.join(" » ")} »`:null,label:X?`${Ia.name}
528 (${Ia.productCount})`:Ia.name,value:Aa,count:Ia.productCount})}}N?wa.sort((Aa,Ia)=>Aa.label.localeCompare(Ia.label)):wa.sort((Aa,Ia)=>Ia.count-Aa.count)}return wa.length?(wa.unshift({selectAll:!0,data:O,label:la._51,value:" "}),wa):[{disabled:!0,label:"No matches found",value:"No matches found"}]};P=(V,O)=>{var wa=V.term??"";V=-1;var La=document.querySelector('input[name="autocompleteReal-rootCategory"]'); 529La&&(V=La.value.split("###"),V=V.length===1&&V[0]?V[0]:-1);V={path:"service/search",type:"category",domainId:Number(storage.domain),rootCategory:isNaN(V)?-1:V,content:wa};isTest&&console.info("%cGrid: searchCategory \u27fc ","color:#6666bf;font-weight:bold;",V,[JSON.stringify(V)]);network.request(V).always(Ba=>{Ba=ha(Ba);var fa=wa.trim();/^\d+$/.test(fa)&&!Ba.some(ia=>ia.value===fa)&&(Ba[0]?.disabled&&(Ba.length=0),Ba.push({unmatched:!0,data:[{id:fa,name:fa,count:0}],label:`${fa} <span class="unmatched-hint">(${la._974})</span>`, 530value:fa}));O(Ba)})};ka=(V,O)=>{var wa=GridHelperCategory.getRootHashMap(Number(storage.domain))??{};V=V.term??"";for(let La of Object.values(wa))if(delete La.matched,V.length===0||La?.name?.toLowerCase().includes(V.toLowerCase())||La?.catId==V)La.matched=!0;O(ha({categories:wa}))};new Autocomplete(Y,{source:N?ka:P,autoFocus:!0,delay:200,minLength:N?0:[5,7].includes(Number(storage.domain))?1:2,close:(V,O)=>{Y.value="";FilterField.updateHasValueState(Y)},select:(V,O)=>{if(O.item.value!=="No matches found"&& 531(O.item.value!=""||O.item.data)){V=O.item.data||[{id:O.item.value,name:O.item.label}];V.sort((La,Ba)=>La.count<Ba.count?1:La.count>Ba.count?-1:0);O=(W?.value??"").split("###").filter(La=>La);var wa=!1;for(let La of V)O.indexOf(La.id)===-1&&(O.length===0&&(D?.insertAdjacentHTML("beforeend",GlobalFilterAutocomplete.getClearAllItem()),t(D)),O.length<GlobalFilterAutocomplete.maxValues?(D?.insertAdjacentHTML("beforeend",`<span><span>${La.name}</span> <i data-id="${La.id}">\u00d7</i></span>`),t(D),O.push(La.id)): 532wa=!0);O.length&&u(W,O.join("###"));Y.value="";FilterField.updateHasValueState(Y);wa&&da();return!1}},renderItem:N?n:q});Y.addEventListener("focus",()=>{N&&Autocomplete.get(Y).search(Y.value)})},u=(Y,X)=>{Y&&(Y.value=X,Y.dispatchEvent(new Event("change",{bubbles:!0})))},B=function(){G(this)},t=Y=>{Y?.querySelectorAll("i").forEach(X=>X.addEventListener("click",B))},G=Y=>{var X=Y.closest("div"),P=X?.querySelector('input[type="hidden"]');X=X?.querySelector(".filter-values");if(P)if(DomUtil.data(Y,"id")=== 533-1)u(P,""),X&&(X.innerHTML="");else{var ka=Y.previousElementSibling?.textContent??"";DomUtil.data(Y,"id")&&(ka=DomUtil.data(Y,"id")+"");var D=P.value.split("###").filter(W=>W);D=D.filter(W=>W!==ka);D.sort();D=D.map(W=>W.replace(/"/g,"""));u(P,D.join("###"));Y.parentElement?.remove();D.length===0&&X&&(X.innerHTML="")}},da=Y=>{var X="";Y&&Y.length&&(X+=`<br><p class="mdc-typography--body2">The following filter fields have been limited to ${GlobalFilterAutocomplete.maxValues} entries:</p> 534 <ul class="mdc-typography--body2"> 535 <li>• ${Y.join("</li><li>• ")}</li> 536 </ul>`);showPopup("Filter value restriction",`<p class="mdc-typography--body2">Fields where multiple entries are possible (e.g. Manufacturer) a maximum of ${GlobalFilterAutocomplete.maxValues} entries are supported.</p>${X}`,!0)};return{getHtml:(Y,X,P,ka="isOneOf",D,W=!0)=>{var N="",ha="",V=["categories","categories_exclude","classificationCategories"].includes(Y),O=Y==="rootCategory";P.length&&(ha+=f(),P=[...(new Set(P))].sort(),P.forEach(wa=>{ha+=`<span><span>${wa}</span> <i${V|| 537O?` data-id="${wa}"`:""}>\u00d7</i></span>`}),N=P.map(wa=>wa.replace(/"/g,""")).join("###"));P=(P=encodeHTML(D))?`<i class="fa fa-question" title="${P}"></i>`:"";D=[{label:la._1259,value:"isOneOf"},{label:la._1260,value:"isNoneOf"}];W&&a.includes(b(Y))&&(D.push({label:la._1872,value:"isEmpty"}),D.push({label:la._1874,value:"isNotEmpty"}));return`<div class="filter-text filter-text--autocomplete -compact ui-front${c(ka)?" filter-text--presence":""}"> 538 ${FilterField.caption(X,P)} 539 ${V?"":FilterField.select(`autocompleteType-${Y}`,ka,D,X)} 540 ${FilterField.input(`autocomplete-${Y}`,"",null,X)} 541 <p class="filter-values">${ha}</p> 542 <input type="hidden" name="autocompleteReal-${Y}" value="${N}"/> 543 </div>`},getClearAllItem:f,initAutocompleterInputs:(Y,X=!0)=>{document.querySelectorAll(".filter-values i").forEach(P=>P.addEventListener("click",B));(document.getElementById(Y)?.querySelectorAll('input:not([type="hidden"])[name^="autocomplete-"]')??[]).forEac
543h(function(P){["autocomplete-rootCategory","autocomplete-categories","autocomplete-categories_exclude","autocomplete-classificationCategories"].includes(P.name)?r(P,X):k(P,X)});(document.getElementById(Y)?.querySelectorAll('select[name^="autocompleteType-"]')?? 544[]).forEach(function(P){d(P);P.addEventListener("change",()=>d(P))})},autocompleterAdd:k,autocompleterAddCategories:r,autocompleterRemoveItem:G,maxValues:50,showPopupMaxValues:da,presenceQueryField:b,supportsPresence:Y=>a.includes(b(Y)),isPresenceType:c,applyPresenceState:d}})(),TrackingUtil=(()=>({maxTrackingReachedPopup:(a=la._1643)=>{var b=hasDataAccessSubscription?"":`${enableTrackingLimits?`<br><br><b>${la._689}</b>`:""} 545 <br><br><span class="text-xs font-bold text-red-500">${la._921}</span>`;showPopup(la._1642,`<p class="mdc-typography--body2"> 546 ${LangUtil.fill(la._920,{max:a})} 547 ${b} 548 </p>`,!0)}}))();function isAmazonOrAWS(){return isAWS}function getRawValueByPath(a,b){if(a&&b){var c=[];b.replace(/\[(?:'([^']+)'|"([^"]+)"|([^\]]+))\]|([^.[\]]+)/g,(d,f,k,n,q)=>c.push(f??k??n??q));return c.reduce((d,f)=>d==null?void 0:d[f],a)}} 549class UrlStore{constructor(){this._dbName="keepaVisited";this._storeName="urls";this._ssKey="keepaVisited";this._dbPromise=void 0;this._useSessionStorage=!1;window.indexedDB?this._dbPromise=(new Promise((a,b)=>{b=indexedDB.open(this._dbName,1);b.onupgradeneeded=c=>{try{let d=c.target.result;d.objectStoreNames.contains(this._storeName)||d.createObjectStore(this._storeName,{keyPath:"url"}).createIndex("lastVisited","lastVisited",{unique:!1})}catch(d){console.error("Error during DB upgrade:",d),this._useSessionStorage= 550!0,a(null)}};b.onsuccess=c=>{this._useSessionStorage||a(c.target.result)};b.onerror=c=>{console.warn(`IndexedDB error: ${c.target.errorCode}. Falling back to sessionStorage.`);this._useSessionStorage=!0;a(null)}})).catch(a=>{console.warn("Unexpected error during IndexedDB setup, falling back to sessionStorage.",a);this._useSessionStorage=!0;return null}):(console.warn("IndexedDB not supported, falling back to sessionStorage."),this._useSessionStorage=!0,this._dbPromise=Promise.resolve(null))}async _idbTransaction(a, 551b,c){return new Promise((d,f)=>{if(a&&a.transaction)try{let k=a.transaction(this._storeName,b);k.oncomplete=()=>d();k.onerror=n=>f(`IDB Transaction error: ${n.target.error}`);c(k.objectStore(this._storeName))}catch(k){console.error("Error starting IDB transaction:",k),this._handleRuntimeIDBFailure(),f(k)}else f(Error("IndexedDB is not available for transaction."))})}async _idbSet(a,b){var c={url:b,lastVisited:Date.now()};return this._idbTransaction(a,"readwrite",d=>d.put(c))}async _idbGet(a){return new Promise((b, 552c)=>{if(a&&a.transaction)try{let d=a.transaction(this._storeName,"readonly").objectStore(this._storeName).getAll();d.onsuccess=()=>b(d.result);d.onerror=f=>c(`IDB Get error: ${f.target.error}`)}catch(d){console.error("Error during IDB get:",d),this._handleRuntimeIDBFailure(),c(d)}else c(Error("IndexedDB is not available for get."))})}async _idbGetBatch(a,b){return new Promise((c,d)=>{if(a&&a.transaction)try{let f=a.transaction(this._storeName,"readonly"),k=f.objectStore(this._storeName),n=[],q=0; 553b.length===0?c([]):(b.forEach((r,u)=>{var B=k.get(r);B.onsuccess=()=>{q!==-1&&(n[u]=B.result,q++,q===b.length&&c(n))};B.onerror=t=>{q!==-1&&(q=-1,d(`IDB Get batch error for ${r}: ${t.target.error}`))}}),f.onerror=r=>{q!==-1&&(q=-1,d(`IDB Transaction error during getBatch: ${r.target.error}`))})}catch(f){console.error("Error during IDB getBatch:",f),this._handleRuntimeIDBFailure(),d(f)}else d(Error("IndexedDB is not available for getBatch."))})}async _idbContains(a,b){return new Promise((c,d)=>{if(a&& 554a.transaction)try{let f=a.transaction(this._storeName,"readonly"),k=f.objectStore(this._storeName).getKey(b);k.onsuccess=()=>{c(k.result!==void 0)};k.onerror=n=>{d(`IDB Contains check error for ${b}: ${n.target.error}`)};f.onerror=n=>d(`IDB Transaction error during contains: ${n.target.error}`)}catch(f){console.error("Error during IDB contains check:",f),this._handleRuntimeIDBFailure(),d(f)}else d(Error("IDB not available for contains."))})}async _idbClear(a){return this._idbTransaction(a,"readwrite", 555b=>b.clear())}async _idbClearOld(a){var b=Date.now()-2592E6;return this._idbTransaction(a,"readwrite",c=>{try{let f=c.index("lastVisited");if(typeof IDBKeyRange==="undefined")console.warn("IDBKeyRange not available, cannot clear old entries by date.");else{var d=IDBKeyRange.upperBound(b);f.openKeyCursor(d).onsuccess=k=>{if(k=k.target.result)c.delete(k.primaryKey),k.continue()}}}catch(f){throw console.error("Error accessing index or using cursor in _idbClearOld:",f),f;}})}_ssGetStorage(){try{let a= 556sessionStorage.getItem(this._ssKey);return a?JSON.parse(a):{}}catch(a){return console.error("Error reading or parsing sessionStorage:",a),{}}}_ssSaveStorage(a){try{return sessionStorage.setItem(this._ssKey,JSON.stringify(a)),!0}catch(b){return console.error("Error writing to sessionStorage:",b),!1}}async _ssSet(a){var b=this._ssGetStorage();b[a]=Date.now();this._ssSaveStorage(b);return Promise.resolve()}async _ssGet(){var a=this._ssGetStorage();return Promise.resolve(Object.entries(a).map(([b,c])=> 557({url:b,lastVisited:c})))}async _ssGetBatch(a){var b=this._ssGetStorage();return Promise.resolve(a.map(c=>{var d=b[c];return d!==void 0?{url:c,lastVisited:d}:void 0}))}async _ssClear(){try{sessionStorage.removeItem(this._ssKey)}catch(a){console.error("Error clearing sessionStorage:",a)}return Promise.resolve()}async _ssContains(a){var b=this._ssGetStorage();return Promise.resolve(b.hasOwnProperty(a))}async _ssClearOld(){var a=this._ssGetStorage(),b=Date.now()-2592E6,c=!1;for(let d in a)Object.prototype.hasOwnProperty.call(a, 558d)&&a[d]<b&&(delete a[d],c=!0);c&&this._ssSaveStorage(a);return Promise.resolve()}_handleRuntimeIDBFailure(){this._useSessionStorage||(console.warn("IndexedDB failed during runtime operation. Switching to sessionStorage for future operations."),this._useSessionStorage=!0)}
558async set(a){if(this._useSessionStorage)return this._ssSet(a);try{let b=await this._dbPromise;return b?await this._idbSet(b,a):(this._useSessionStorage=!0,console.warn("IndexedDB was not available, using sessionStorage for set."), 559this._ssSet(a))}catch(b){throw console.error("Error during set operation:",b),this._handleRuntimeIDBFailure(),b;}}async get(){if(this._useSessionStorage)return this._ssGet();try{let a=await this._dbPromise;return a?await this._idbGet(a):(this._useSessionStorage=!0,console.warn("IndexedDB was not available, using sessionStorage for get."),this._ssGet())}catch(a){throw console.error("Error during get operation:",a),this._handleRuntimeIDBFailure(),a;}}async getBatch(a){if(!Array.isArray(a))return console.warn("getBatch expects an array of URLs."), 560[];if(a.length===0)return[];if(this._useSessionStorage)return this._ssGetBatch(a);try{let b=await this._dbPromise;return b?await this._idbGetBatch(b,a):(this._useSessionStorage=!0,console.warn("IndexedDB was not available, using sessionStorage for getBatch."),this._ssGetBatch(a))}catch(b){throw console.error("Error during getBatch operation:",b),this._handleRuntimeIDBFailure(),b;}}async contains(a){if(typeof a!=="string"||!a)return console.warn("Invalid URL passed to contains method."),!1;if(this._useSessionStorage)return this._ssContains(a); 561try{let b=await this._dbPromise;return b?await this._idbContains(b,a):(this._useSessionStorage=!0,console.warn("IndexedDB was not available, using sessionStorage for contains."),this._ssContains(a))}catch(b){throw console.error("Error during contains check:",b),this._handleRuntimeIDBFailure(),b;}}async clear(){if(this._useSessionStorage)return this._ssClear();try{let a=await this._dbPromise;return a?await this._idbClear(a):(this._useSessionStorage=!0,console.warn("IndexedDB was not available, using sessionStorage for clear."), 562this._ssClear())}catch(a){throw console.error("Error during clear operation:",a),this._handleRuntimeIDBFailure(),a;}}async clearOld(){if(this._useSessionStorage)return this._ssClearOld();try{let a=await this._dbPromise;return a?await this._idbClearOld(a):(this._useSessionStorage=!0,console.warn("IndexedDB was not available, using sessionStorage for clearOld."),this._ssClearOld())}catch(a){throw console.error("Error during clearOld operation:",a),this._handleRuntimeIDBFailure(),a;}}} 563const urlStore=new UrlStore;setTimeout(()=>{urlStore.clearOld().catch(()=>{})},1E4);const QuotaUI=(()=>{var a=()=>`<p>${hasDataAccessSubscription?la._1691:la._1692}</p> 564 <ul class="list--disc"> 565 <li>${la._1693}</li> 566 <li>${la._1694}</li> 567 <li>${la._1695}</li> 568 <li>${la._1696}</li> 569 <li>${la._1697}</li> 570 <li>${la._1698}</li> 571 <li>${la._1699}</li> 572 </ul>`;return{getInfo:a,getTitle:()=>la._1690,handleExceeded:()=>{SettingsSubscription.initUpdateData(!1)},handleExceededWithProducts:(b=0)=>{showPopup("Data quota reached",`<p class="mdc-typography--subtitle2 m-y-10">You\u2019ve reached your data limit.</p> 573 <p>Your remaining quota lasted for ~ ${b>10?Math.round(b/10)*10:b} products which will be displayed.</p>`,!0)},setupWidget:b=>{var c="#!bestseller #!categorytree #!data #!finder #!seller #!topseller #!viewer".split(" "),d=window.location.hash.split("/")[0];d=hasDataAccessSubscription&&(b||c.includes(d));c=document.getElementById("widget__bucket_quota");if(d)if(b=document.querySelector(b?"#more":".knav-sub__aside"),c)b?.prepend(c),getBucketInformation();else{c=` 574 <div id="widget__bucket_quota" class="widget__bucket-quota${isTest?" wide":""}"> 575 <span class="bucket-quota__caption mdc-typography--caption">Quota: <span class="quota-val">${isTest?"---/--- (---%)":"---%"}</span></span> 576 <div class="bucket-quota__wrapper mdc-elevation--z1"> 577 <div class="bucket-quota__tracker" style="width:0%; transition: width 0.5s;"></div> 578 </div> 579 </div>`;b?.insertAdjacentHTML("afterbegin",c);c=document.getElementById("widget__bucket_quota");let f=getBucketInformation();c?.addEventListener("click",()=>{f.done(k=>{showPopup(la._1690,((k?.tokenBucketSize||0)>5E3||hasDataAccessSubscription?la._1700:la._1701)+"<br><br>"+a(),!0)})})}else c?.remove()},updateWidget:b=>{if(storage.accountType!=0){var c=document.getElementById("widget__bucket_quota");if(c){isTest&&console.log(b);var d=b.tokenBucketSize/b.dataQuantity,f=b.tokenBucketSize, 580k=d>0&&b.tokens>0?b.tokens*100/d:0,n=NumberUtil.format(b.tokens),q=NumberUtil.format(f),r=NumberUtil.format(k);b=c.querySelector(".bucket-quota__caption");var u=c.querySelector(".bucket-quota__tracker");c.classList.add("updating");n=isTest?`${n}/${q} (${r}%)`:`${r}%`;b&&(b.textContent=`Quota: ${n}`);DomUtil.setStyles(u,{width:`${Math.min(k,100)}%`});setTimeout(()=>c.classList.remove("updating"),2E3);f>5E3&&(d=f/d,b&&b.setAttribute("title",d<=1?"1 active Keepa Pro subscription":`${d} active Keepa Pro subscriptions\nTotal daily limit: ${d* 581100}% of base quota`))}}}}})(),prependProductInfo=a=>{var b=document.getElementById("detailProductPage");b&&b.insertAdjacentHTML("afterbegin",`<div class="text-pro-400 text-center italic mt-2"><i class="fa fa-info-circle"></i> ${isIframe?"\u271c <b>Keepa: </b> ":""}${a}
581 <i class="fa fa-info-circle"></i></div>`)}; 582window.keepaAnim={_run:function(a,b,c,d){var f=0;[a].forEach(k=>{k&&(f++,b(k,()=>{f--;f===0&&(c&&c.complete&&c.complete(),d&&typeof d==="function"&&d())}))});f===0&&(c&&c.complete&&c.complete(),d&&typeof d==="function"&&d());return a},_start:function(a,b,c,d,f,k){a._kaAnim&&a._kaAnim.cancel();c=a.animate(c,d);a._kaAnim=c;a._kaDir=b;c.onfinish=()=>{a._kaAnim=null;a._kaDir=null;f();k()}},fadeIn:function(a,b={}){var c=b.duration||400,d=b.display||"block";return this._run(a,(f,k)=>{if(f.style.display=== 583"none"||window.getComputedStyle(f).display==="none")f.style.display=d;this._start(f,"in",[{opacity:0},{opacity:1}],{duration:c,easing:"ease"},()=>{f.style.opacity="1"},k)},b)},fadeOut:function(a,b={}){var c=b.duration||400,d=b.display||"none";return this._run(a,(f,k)=>{this._start(f,"out",[{opacity:1},{opacity:0}],{duration:c,easing:"ease"},()=>{f.style.opacity="0";f.style.display=d},k)},b)},slideDown:function(a,b={}){var c=b.duration||400,d=b.display||"block";return this._run(a,(f,k)=>{f.style.display= 584d;f.style.overflow="hidden";this._start(f,"in",[{height:"0px"},{height:f.scrollHeight+"px"}],{duration:c,easing:"ease-out"},()=>{f.style.height="";f.style.overflow=""},k)},b)},slideUp:function(a,b={}){var c=b.duration||400;return this._run(a,(d,f)=>{d.style.overflow="hidden";this._start(d,"out",[{height:d.scrollHeight+"px"},{height:"0px"}],{duration:c,easing:"ease-out"},()=>{d.style.display="none";d.style.height="";d.style.overflow=""},f)},b)},shrinkIn:function(a,b=250,c){return this._run(a,(d,f)=> 585{d.style.display="block";d.animate([{opacity:0,transform:"scale(0.8)"},{opacity:1,transform:"scale(1)"}],{duration:b,easing:"ease-out"}).onfinish=()=>{d.style.opacity="1";d.style.transform="";f()}},null,c)},shrinkOut:function(a,b=150,c){return this._run(a,(d,f)=>{d.animate([{opacity:1,transform:"scale(1)"},{opacity:0,transform:"scale(0.8)"}],{duration:b,easing:"ease-in"}).onfinish=()=>{d.style.display="none";d.style.opacity="0";d.style.transform="";f()}},null,c)},slideUpOut:function(a,b=250,c){return this._run(a, 586(d,f)=>{d.animate([{opacity:1,transform:"translateY(0)"},{opacity:0,transform:"translateY(-20px)"}],{duration:b,easing:"ease-in"}).onfinish=()=>{d.style.display="none";d.style.opacity="0";d.style.transform="";f()}},null,c)},highlight:function(a,b={}){var c=b.duration||400,d=b.color||"#ffff99";return this._run(a,(f,k)=>{var n=window.getComputedStyle(f).backgroundColor;f.animate([{backgroundColor:d},{backgroundColor:n}],{duration:c,easing:"ease-out"}).onfinish=k},b)},fadeToggle:function(a,b={}){return a? 587(a._kaDir?a._kaDir==="out":a.style.display==="none"||window.getComputedStyle(a).display==="none")?this.fadeIn(a,b):this.fadeOut(a,b):a},slideToggle:function(a,b={}){return a?(a._kaDir?a._kaDir==="out":a.style.display==="none"||window.getComputedStyle(a).display==="none")?this.slideDown(a,b):this.slideUp(a,b):a},stop:function(a){[a].forEach(b=>{b&&b.getAnimations&&b.getAnimations().forEach(c=>c.cancel())});return a}}; 588(function(a,b){function c(ka){return!!(""===ka||ka&&ka.charCodeAt&&ka.substr)}function d(ka){return t?t(ka):"[object Array]"===G.call(ka)}function f(ka){return"[object Object]"===G.call(ka)}function k(ka,D){var W;ka=ka||{};D=D||{};for(W in D)D.hasOwnProperty(W)&&null==ka[W]&&(ka[W]=D[W]);return ka}function n(ka,D,W){var N=[],ha;if(!ka)return N;if(B&&ka.map===B)return ka.map(D,W);var V=0;for(ha=ka.length;V<ha;V++)N[V]=D.call(W,ka[V],V,ka);return N}function q(ka,D){ka=Math.round(Math.abs(ka));return isNaN(ka)? 589D:ka}function r(ka){var D=u.settings.currency.format;"function"===typeof ka&&(ka=ka());return c(ka)&&ka.match("%v")?{pos:ka,neg:ka.replace("-","").replace("%v","-%v"),zero:ka}:ka&&ka.pos&&ka.pos.match("%v")?ka:c(D)?u.settings.currency.format={pos:D,neg:D.replace("%v","-%v"),zero:D}:D}var u={version:"0.4.1",settings:{currency:{symbol:"$",format:"%s%v",decimal:".",thousand:",",precision:2,grouping:3},number:{precision:0,grouping:3,thousand:",",decimal:"."}}},B=Array.prototype.map,t=Array.isArray,G= 590Object.prototype.toString,da=u.unformat=u.parse=function(ka,D){if(d(ka))return n(ka,function(N){return da(N,D)});ka=ka||0;if("number"===typeof ka)return ka;D=D||".";var W=RegExp("[^0-9-"+D+"]",["g"]);W=parseFloat((""+ka).replace(/\((.*)\)/,"-$1").replace(W,"").replace(D,"."));return isNaN(W)?0:W},Y=u.toFixed=function(ka,D){D=q(D,u.settings.number.precision);var W=Math.pow(10,D);return(Math.round(u.unformat(ka)*W)/W).toFixed(D)},X=u.formatNumber=u.format=function(ka,D,W,N){if(d(ka))return n(ka,function(Ba){return X(Ba, 591D,W,N)});ka=da(ka);var ha=k(f(D)?D:{precision:D,thousand:W,decimal:N},u.settings.number),V=q(ha.precision),O=0>
591ka?"-":"",wa=parseInt(Y(Math.abs(ka||0),V),10)+"",La=3<wa.length?wa.length%3:0;return O+(La?wa.substr(0,La)+ha.thousand:"")+wa.substr(La).replace(/(\d{3})(?=\d)/g,"$1"+ha.thousand)+(V?ha.decimal+Y(Math.abs(ka),V).split(".")[1]:"")},P=u.formatMoney=function(ka,D,W,N,ha,V){if(d(ka))return n(ka,function(La){return P(La,D,W,N,ha,V)});ka=da(ka);var O=k(f(D)?D:{symbol:D,precision:W,thousand:N, 592decimal:ha,format:V},u.settings.currency),wa=r(O.format);return(0<ka?wa.pos:0>ka?wa.neg:wa.zero).replace("%s",O.symbol).replace("%v",X(Math.abs(ka),q(O.precision),O.thousand,O.decimal))};u.formatColumn=function(ka,D,W,N,ha,V){if(!ka)return[];var O=k(f(D)?D:{symbol:D,precision:W,thousand:N,decimal:ha,format:V},u.settings.currency),wa=r(O.format),La=wa.pos.indexOf("%s")<wa.pos.indexOf("%v")?!0:!1,Ba=0;ka=n(ka,function(fa){if(d(fa))return u.formatColumn(fa,O);fa=da(fa);fa=(0<fa?wa.pos:0>fa?wa.neg:wa.zero).replace("%s", 593O.symbol).replace("%v",X(Math.abs(fa),q(O.precision),O.thousand,O.decimal));fa.length>Ba&&(Ba=fa.length);return fa});return n(ka,function(fa){return c(fa)&&fa.length<Ba?La?fa.replace(O.symbol,O.symbol+Array(Ba-fa.length+1).join(" ")):Array(Ba-fa.length+1).join(" ")+fa:fa})};"undefined"!==typeof exports?("undefined"!==typeof module&&module.exports&&(exports=module.exports=u),exports.accounting=u):"function"===typeof define&&define.amd?define([],function(){return u}):(u.noConflict=function(ka){return function(){a.accounting= 594ka;u.noConflict=b;return u}}(a.accounting),a.accounting=u)})(this);(function(){function a(g){try{return g()}catch(m){}}function b(g,m){typeof ea.reportBug==="function"?ea.reportBug(g,m):console.error(g,m)}function c(g){if(!g||typeof g!=="object")return!1;g=Object.getPrototypeOf(g);return g===null||g===Object.prototype}function d(g,m){for(let I in m){let S=m[I];if(I==="__proto__"||g===S)continue;let ma;if(S&&(c(S)||(ma=Array.isArray(S)))){var w=g[I];w=ma?Array.isArray(w)?w:[]:c(w)?w:{};g[I]=d(w,S)}else S!==void 0&&(g[I]=S)}return g}function f(g,...m){for(let w of m)w!= 595null&&d(g,w);return g}function k(g,m){m=m||ta.getComputedStyle(g);return m.width&&m.width.endsWith("px")?parseFloat(m.width):g.getBoundingClientRect().width-(parseFloat(m.borderLeftWidth)||0)-(parseFloat(m.borderRightWidth)||0)-(parseFloat(m.paddingLeft)||0)-(parseFloat(m.paddingRight)||0)}function n(g,m){m=m||ta.getComputedStyle(g);return m.height&&m.height.endsWith("px")?parseFloat(m.height):g.getBoundingClientRect().height-(parseFloat(m.borderTopWidth)||0)-(parseFloat(m.borderBottomWidth)||0)- 596(parseFloat(m.paddingTop)||0)-(parseFloat(m.paddingBottom)||0)}function q(g){g=g.getBoundingClientRect();return{top:g.top+ta.pageYOffset,left:g.left+ta.pageXOffset}}function r(g){return g&&g.nodeType!==1?typeof g==="string"?document.querySelector(g):g[0]&&g[0].nodeType===1?g[0]:g:g}function u(g,m,w,I){function S(Q){Q=parseInt(Q,10);return Q<0?0:Q>255?255:Q}var ma={r:g||0,g:m||0,b:w||0,a:I!=null?I:1,add(Q,l){for(let M=0;M<Q.length;++M)ma[Q.charAt(M)]+=l;return ma.normalize()},scale(Q,l){for(let M= 5970;M<Q.length;++M)ma[Q.charAt(M)]*=l;return ma.normalize()},toString(){return ma.a>=1?"rgb("+[ma.r,ma.g,ma.b].join()+")":"rgba("+[ma.r,ma.g,ma.b,ma.a].join()+")"},normalize(){ma.r=S(ma.r);ma.g=S(ma.g);ma.b=S(ma.b);ma.a=ma.a<0?0:ma.a>1?1:ma.a;return ma}};return ma.normalize()}function B(g){var m;if(m=Ra.exec(g))return u(parseInt(m[1],10),parseInt(m[2],10),parseInt(m[3],10));if(m=Sa.exec(g))return u(parseInt(m[1],10),parseInt(m[2],10),parseInt(m[3],10),parseFloat(m[4]));if(m=db.exec(g))return u(parseFloat(m[1])* 5982.55,parseFloat(m[2])*2.55,parseFloat(m[3])*2.55);if(m=eb.exec(g))return u(parseFloat(m[1])*2.55,parseFloat(m[2])*2.55,parseFloat(m[3])*2.55,parseFloat(m[4]));if(m=sa.exec(g))return u(parseInt(m[1],16),parseInt(m[2],16),parseInt(m[3],16));if(m=Qa.exec(g))return u(parseInt(m[1]+m[1],16),parseInt(m[2]+m[2],16),parseInt(m[3]+m[3],16));g=String(g==null?"":g).trim().toLowerCase();if(g==="transparent")return u(255,255,255,0);m=bb[g]||[0,0,0];return u(m[0],m[1],m[2])}function t(g){g=""+g;return g.length== 5991?"0"+g:g}function G(g,m,w){var I=[],S=!1;w==null&&(w=ea.la&&ea.la._79||Fa);var ma=ea.storage&&ea.storage.language==5?"\u65e5":"";for(let Q=0;Q<m.length;++Q){let l=m.charAt(Q);if(S){switch(l){case "h":l=""+g.getUTCHours();break;case "H":l=t(g.getUTCHours());break;case "M":l=t(g.getUTCMinutes());break;case "S":l=t(g.getUTCSeconds());break;case "d":l=""+g.getUTCDate()+ma;break;case "m":l=""+(g.getUTCMonth()+1);break;case "y":l=""+g.getUTCFullYear();break;case "b":l=""+w[g.getUTCMonth()]}I.push(l);S= 600!1}else l=="%"?S=!0:I.push(l)}return I.join("")}function da(g,m){return m*Math.floor(g/m)}function Y(g,m){var w=!1;for(let S=0;S<g.length;S++){var I=g[S];I!=m&&m.relativeY<I.relativeY+I.h+8&&m.relativeY+m.h+8>I.relativeY&&(m.relativeY<I.relativeY?(w=m.relativeY+m.h-I.relativeY+8,I.y+=w,I.relativeY+=w,I.angularDisplay="none"):(I=I.relativeY+I.h-m.relativeY+8,m.y+=I,m.relativeY+=I,m.angularDisplay="none"),w=!0)}return w}function X(){var g=[],m=!1,w,I={done(S){m?S(w):g.push(S);return I},resolve(S){if(!m){m= 601!0;w=S;for(let ma of g)ma(S)}}};return I}function P(g){return!!g&&typeof g.getClientRects==="function"&&!!(g.offsetWidth||g.offsetHeight||g.getClientRects().length)}function ka(g){if(g.getClientRects().length){var m=ta.getComputedStyle(g);return{w:k(g,m),h:n(g,m)}}m=g.style;var w=m.position,I=m.visibility,S=m.display;m.position="absolute";m.visibility="hidden";m.display="block";var ma=ta.getComputedStyle(g);g={w:k(g,ma),h:n(g,ma)};m.position=w;m.visibility=I;m.display=S;return g}function D(g,m){g&&
602g.querySelectorAll(m).forEach(function(w){w.style.display="none"})}function W(g,m){var w=document.createElement("div");g&&(w.className=g);m&&(w.id=m);return w}function N(g,m){if(g.length!==m.length)return!1;for(let w=0;w<g.length;++w)if(g[w]!==m[w])return!1;return!0}function ha(g){return g.hoverable!=0}function V(g){return!1}function O(g){return g.clickable!=0}function wa(g){var m=[],w=da(g.min,g.tickSize),I=0,S=Number.NaN;do{var ma=S;S=w+I*g.tickSize;m.push(S);++I}while(S<g.max&&S!=ma);return m} 603function La(g,m){return g.toFixed(m.tickDecimals)}function Ba(g){var m=g.tickSize[0]*ca[g.tickSize[1]];g=g.max-g.min;return m<ca.minute?"%h:%M:%S":m<ca.day?g<2*ca.day?"%h:%M":"%b %d %h:%M":m<ca.month?"%b %d":m<ca.year?g<ca.year?"%b":"%b %y":"%y"}function fa(g,m){return G(new Date(g),Ba(m),m.options.monthNames)}function ia(g){var m=[],w=g.tickSize[0],I=g.tickSize[1],S=new Date(g.min),ma=w*ca[I];I=="second"&&S.setUTCSeconds(da(S.getUTCSeconds(),w));I=="minute"&&S.setUTCMinutes(da(S.getUTCMinutes(), 604w));I=="hour"&&S.setUTCHours(da(S.getUTCHours(),w));I=="month"&&S.setUTCMonth(da(S.getUTCMonth(),w));I=="year"&&S.setUTCFullYear(da(S.getUTCFullYear(),w));S.setUTCMilliseconds(0);ma>=ca.minute&&S.setUTCSeconds(0);ma>=ca.hour&&S.setUTCMinutes(0);ma>=ca.day&&S.setUTCHours(0);ma>=ca.day*4&&S.setUTCDate(1);ma>=ca.year&&S.setUTCMonth(0);var Q=0,l=Number.NaN;do{var M=l;l=S.getTime();m.push(l);if(I=="month")if(w<1){S.setUTCDate(1);let na=S.getTime();S.setUTCMonth(S.getUTCMonth()+1);let U=S.getTime();S.setTime(l+ 605Q*ca.hour+(U-na)*w);Q=S.getUTCHours();S.setUTCHours(0)}else S.setUTCMonth(S.getUTCMonth()+w);else I=="year"?S.setUTCFullYear(S.getUTCFullYear()+w):S.setTime(l+ma)}while(l<g.max&&l!=M);return m}function Aa(g,m,w){for(var I=0,S=(g.length/m|0)-1,ma=-1;I<=S;){let Q=I+S>>1,l=Q;for(;l>=I&&g[l*m]==null;)l--;l<I?I=Q+1:g[l*m]<w?(ma=l,I=Q+1):S=l-1}return(ma+1)*m}function Ia(g,m,w){g=Aa(g,m,w);return g<m?m:g}function Ga(g,m){for(var w=0,I=g.length-1,S=-1;w<=I;){let ma=w+I>>1,Q=ma;for(;Q>=w&&g[Q]==null;)Q--; 606Q<w?w=ma+1:g[Q][0]>m?I=Q-1:(S=Q,w=ma+1)}for(m=S+1;m<g.length;m++)if(g[m]!=null)return m;return g.length}function Ya(g,m){if(g._ttSortedFor!==m){g._ttSortedFor=m;let I=!0,S=-Infinity;for(let ma=0;ma<m.length;ma++){var w=m[ma];if(w==null)continue;w=w[0];if(typeof w!=="number"||w!==w||w<S){I=!1;break}S=w}g._ttSorted=I}return g._ttSorted}function Pa(g,m,w,I){function S(pa,ua){ua=[Ob].concat(ua);for(let Oa=0;Oa<pa.length;++Oa)pa[Oa].apply(Ob,ua)}function ma(pa){var ua=[];for(var Oa=0;Oa<pa.length;++Oa){var Ua= 607f({},ja.series);if(pa[Oa].data!=null){Ua.data=pa[Oa].data;pa[Oa].data=void 0;var Ka=null;for(var aa of Z){let Ca=pa[Oa][aa];Ca!==void 0&&((Ka||={})[aa]=Ca,pa[Oa][aa]=void 0)}try{f(Ua,pa[Oa])}finally{if(pa[Oa].data=Ua.data,Ka)for(let Ca in Ka)pa[Oa][Ca]=Ka[Ca],Ua[Ca]=Ka[Ca]}}else Ua.data=pa[Oa];ua.push(Ua)}xa=ua;pa=ja.colors;ua=pa.length;Oa=0;for(Ua=0;Ua<xa.length;++Ua){Ka=xa[Ua];Ka.color==null?(Ka.color=String(pa[Oa%ua]||"#666"),++Oa):typeof Ka.color=="number"&&(Ka.color=String(pa[Ka.color%ua]||"#666")); 608if(Ka.lines.show==null){aa=!0;for(let Ca in Ka)if(Ka[Ca]&&Ka[Ca].show){aa=!1;break}aa&&(Ka.lines.show=!0)}Ka.lines.zero==null&&(Ka.lines.zero=!!Ka.lines.fill);Ka.xaxis=na(tc,Q(Ka,"x"));Ka.yaxis=na(Dc,Q(Ka,"y"))}U()}function Q(pa,ua){pa=pa[ua+"axis"];typeof pa=="object"&&(pa=pa.n);typeof pa!="number"&&(pa=1);return pa}function l(){var pa=[];for(let ua of tc)ua&&pa.push(ua);for(let ua of Dc)ua&&pa.push(ua);return pa}function M(pa){var ua={},Oa;for(var Ua=0;Ua<tc.length;++Ua)(Oa=tc[Ua])&&Oa.used&&(ua["x"+ 609Oa.n]=Oa.c2p(pa.left));for(Ua=0;Ua<Dc.length;++Ua)(Oa=Dc[Ua])&&Oa.used&&(ua["y"+Oa.n]=Oa.c2p(pa.top));ua.x1!==void 0&&(ua.x=ua.x1);ua.y1!==void 0&&(ua.y=ua.y1);return ua}function na(pa,ua){pa[ua-1]||(pa[ua-1]={n:ua,direction:pa==tc?"x":"y",options:f({},pa==tc?ja.xaxis:ja.yaxis)});return pa[ua-1]}function U(){function pa(rb,vb,Cb){vb<rb.datamin&&vb!=-Ua&&(rb.datamin=vb);Cb>rb.datamax&&Cb!=Ua&&(rb.datamax=Cb)}var ua=Number.POSITIVE_INFINITY,Oa=Number.NEGATIVE_INFINITY,Ua=Number.MAX_VALUE,Ka,aa,Ca,Wa, 610Va;for(Ka of l())Ka.datamin=ua,Ka.datamax=Oa,Ka.used=!1;for(Ka=0;Ka<xa.length;++Ka){var Xa=xa[Ka];Xa.datapoints={points:[]};
610S(jc.processRawData,[Xa,Xa.data,Xa.datapoints])}for(Ka=0;Ka<xa.length;++Ka){Xa=xa[Ka];var tb=Xa.data;var Za=Xa.datapoints.format;Za||(Za=[],Za.push({x:!0,number:!0,required:!0}),Za.push({y:!0,number:!0,required:!0}),Xa.lines.show&&Xa.lines.fill&&Za.push({y:!0,number:!0,required:!1,defaultValue:0,autoscale:!(!Xa.lines.show||!Xa.lines.zero)}),Xa.datapoints.format=Za);if(Xa.datapoints.pointsize!= 611null)continue;Xa.datapoints.pointsize=Za.length;var $a=Xa.datapoints.pointsize;var nb=Xa.datapoints.points;var jb=Xa.lines.show&&Xa.lines.steps||Xa.dashes.show&&Xa.dashes.steps;Xa.xaxis.used=Xa.yaxis.used=!0;for(aa=Ca=0;aa<tb.length;++aa,Ca+=$a){var sb=tb[aa];var xb=sb==null;if(!xb)for(Wa=0;Wa<$a;++Wa){var mb=sb[Wa];if(Va=Za[Wa])Va.number&&mb!=null&&(mb=+mb,isNaN(mb)?mb=null:mb==Infinity?mb=Ua:mb==-Infinity&&(mb=-Ua)),mb==null&&(Va.required&&(xb=!0),Va.defaultValue!=null&&(mb=Va.defaultValue));nb[Ca+ 612Wa]=mb}if(xb)for(Wa=0;Wa<$a;++Wa)mb=nb[Ca+Wa],mb==null||Xa.Yignore||(Va=Za[Wa],Va.autoscale!==!1&&(Va.x&&pa(Xa.xaxis,mb,mb),Va.y&&pa(Xa.yaxis,mb,mb))),nb[Ca+Wa]=null;else if(jb&&Ca>0&&nb[Ca-$a]!=null&&nb[Ca-$a]!=nb[Ca]&&nb[Ca-$a+1]!=nb[Ca+1]){for(Wa=0;Wa<$a;++Wa)nb[Ca+$a+Wa]=nb[Ca+Wa];nb[Ca+1]=nb[Ca-$a+1];Ca+=$a}}}for(Ka=0;Ka<xa.length;++Ka)Xa=xa[Ka],S(jc.processDatapoints,[Xa,Xa.datapoints]);for(Ka=0;Ka<xa.length;++Ka){Xa=xa[Ka];nb=Xa.datapoints.points;$a=Xa.datapoints.pointsize;Za=Xa.datapoints.format; 613if(Xa.Yignore)continue;sb=Ca=ua;jb=tb=Oa;xb=!0;let rb=-Infinity,vb=Xa.xaxis.options.min,Cb=Xa.xaxis.options.max;for(aa=0;aa<nb.length;aa+=$a)if(nb[aa]!=null)for(nb[aa]<rb?xb=!1:rb=nb[aa],Wa=0;Wa<$a;++Wa)mb=nb[aa+Wa],(Va=Za[Wa])&&Va.autoscale!==!1&&mb!=Ua&&mb!=-Ua&&(Va.x&&(mb<Ca&&(Ca=mb),mb>tb&&(tb=mb)),!Va.y||vb!=null&&nb[aa]<vb||Cb!=null&&nb[aa]>Cb||(mb<sb&&(sb=mb),mb>jb&&(jb=mb)));Xa.datapoints.xSorted=xb;pa(Xa.xaxis,Ca,tb);pa(Xa.yaxis,sb,jb)}for(let rb of l())rb.datamin==ua&&(rb.datamin=null), 614rb.datamax==Oa&&(rb.datamax=null)}function L(pa,ua){g.dispatchEvent(new CustomEvent(pa,{bubbles:!0,detail:ua}))}function ra(){Na.resetContextState();hb.resetContextState();hb.clear();kc=!0;pb()}function Da(pa){function ua(Ca){return Ca}var Oa=pa.options.transform||ua,Ua=pa.options.inverseTransform;if(pa.direction=="x"){var Ka=pa.scale=ic/Math.abs(Oa(pa.max)-Oa(pa.min));var aa=Math.min(Oa(pa.max),Oa(pa.min))}else Ka=pa.scale=Yb/Math.abs(Oa(pa.max)-Oa(pa.min)),Ka=-Ka,aa=Math.max(Oa(pa.max),Oa(pa.min)); 615pa._ident=Oa==ua;pa._m=aa;pa._s=Ka;pa.p2c=Oa==ua?function(Ca){return(Ca-aa)*Ka}:function(Ca){return(Oa(Ca)-aa)*Ka};pa.c2p=Ua?function(Ca){return Ua(aa+Ca/Ka)}:function(Ca){return aa+Ca/Ka}}function Ea(pa,ua,Oa){if(!Oa)return{};var Ua=Oa*Math.PI/180,Ka=Math.sin(Ua);Ua=Math.cos(Ua);var aa=Ua*pa,Ca=Ka*pa,Wa=-Ka*ua,Va=Ua*ua,Xa=Ua*pa-Ka*ua,tb=Ka*pa+Ua*ua,Za=Math.min(0,aa,Wa,Xa);Wa=Math.max(0,aa,Wa,Xa);Xa=Math.min(0,Ca,Va,tb);Va=Math.max(0,Ca,Va,tb);tb={x:ua/2*Ka,y:ua/2*Ua};var $a={x:pa*Ua+ua/2*Ka,y:pa* 616Ka-ua/2*Ua};if(Oa<0){pa={x:pa*Ua+ua*Ka,y:pa*Ka-ua*Ua};var nb={x:ua*Ka,y:ua*Ua}}else{var jb={x:aa,y:Ca};pa={x:ua*Ka,y:-ua*Ua}}return{width:Wa-Za,height:Va-Xa,a_left:tb,a_right:$a,topmost:jb,bottommost:pa,leftmost:nb}}function oa(pa){if(g.getClientRects().length>0)return pa(),!0;var ua=g.style,Oa=ua.position,Ua=ua.visibility,Ka=ua.display;ua.position="absolute";ua.visibility="hidden";ua.display="block";try{let aa=g.getClientRects().length>0;pa();return aa}finally{ua.position=Oa,ua.visibility=Ua,ua.display= 617Ka}}function Ja(pa,ua,Oa){var Ua=pa.direction+pa.n+"|"+Oa+"|",Ka=new Map,aa=null;for(var Ca of ua){if(Ka.has(Ca))continue;ua=Vc?Sc.get(Ua+Ca):void 0;ua!==void 0?Ka.set(Ca,ua):(aa||=[],aa.push(Ca),Ka.set(Ca,null))}if(aa){Lc&&Lc.isConnected||(Lc=document.createElement("div"),Lc.style.cssText="position:absolute;top:-10000px;left:-10000px;width:10000px;font-size:smaller",g.appendChild(Lc));var Wa=Lc;pa=pa.direction+"Axis "+pa.direction+pa.n+"Axis";Ca=[];if(Oa!=null){Ca.push('<div class="'+pa+'">');for(var Va of aa)Ca.push('<div class="tickLabel" style="float:left;width:'+ 618Oa+'px">'+Va+"</div>");Ca.push('<div style="clear:left"></div></div>')}else for(let Za of aa)Ca.push('<div style="position:absolute"><div class="'+pa+'"><div class="tickLabel">'+Za+"</div></div></div>");Wa.innerHTML=Ca.join("");Vc&&Sc.size>2E3&&Sc.clear();let Xa=Oa!=null?Wa.firstElementChild.children:null,tb=[];Oa=oa(function(){for(let Za=0;Za<aa.length;++Za){let $a=(Xa!=null?Xa[Za]:Wa.children[Za].firstElementChild.firstElementChild).getBoundingClientRect();tb.push({w:$a.width,h:$a.height})}});for(Va= 6190;Va<aa.length;++Va)Ka.set(aa[Va],tb[Va]),Vc&&Oa&&Sc.set(Ua+aa[Va],tb[Va]);Wa.innerHTML=""}return Ka}function Ha(pa){var ua,Oa=l(),Ua=ja.grid.show;for(var Ka of Oa)Ka.show=Ka.options.show,Ka.show==null&&(Ka.show=Ka.used),Ka.reserveSpace=Ka.show||Ka.options.reserveSpace,ya(Ka);
619Ka=[];for(var aa of Oa)aa.reserveSpace&&Ka.push(aa);ib.left=ib.right=ib.top=ib.bottom=0;if(Ua){for(ua of Ka){za(ua);cb(ua);fb(ua,ua.ticks);var Ca=ua.options,Wa=ua.ticks||[];aa=Ca.labelWidth;var Va=Ca.labelHeight,Xa=[];for(var tb= 6200;tb<Wa.length;++tb)Wa[tb].label&&Xa.push(Wa[tb].label);if(ua.direction=="x"&&Ca.labelAngle==0){if(aa==null&&(aa=Math.floor(Na.width/(Wa.length>0?Wa.length:1))),Va==null&&Xa.length>0){Ca=Ja(ua,Xa,aa);Wa=null;for(var Za of Xa)if(Xa=Ca.get(Za),Wa==null||Xa.h>Wa)Wa=Xa.h;Wa!=null&&(Va=Wa|0)}}else if(aa==null||Va==null){var $a=Ca.labelAngle==0&&aa!=null&&Xa.length>1?[Xa[0]]:Xa;Wa=Xa=null;tb=$a.length>0?Ja(ua,$a,null):null;for(var nb of $a){$a=tb.get(nb);if(Xa==null||$a.w>Xa)Xa=$a.w;Wa==null&&(Wa=$a.h)}Xa!= 621null&&(Ca.labelAngle!=0?(tb=Ea(Xa|0,Wa|0,Ca.labelAngle),Ca.origHeight=Wa|0,Ca.origWidth=Xa|0,Va==null&&(Va=tb.height),aa==null&&(aa=tb.width)):(aa==null&&(aa=Xa|0),Va==null&&(Va=Wa|0)))}aa==null&&(aa=0);Va==null&&(Va=0);ua.labelWidth=aa;ja.graphIndex==5&&ua.n==3&&(ua.labelWidth=13);ua.labelHeight=Va}for(ua=Ka.length-1;ua>=0;--ua){Za=Ka[ua];nb=Za.labelWidth;aa=Za.labelHeight;Va=Za.options.position;Ca=Za.direction==="x";Xa=ja.grid.labelMargin;Wa=Za.options.tickLength;tb=ja.grid.axisMargin;let Ib=$a= 622!0,wb=!0,Pb=!1;for(var jb of Ca?tc:Dc)jb&&(jb.show||jb.reserveSpace)&&(jb===Za?Pb=!0:jb.options.position===Va&&(Pb?Ib=!1:$a=!1),Pb||(wb=!1));Ib&&(tb=0);Wa==null&&(Wa=wb?"full":5);Ca?(aa+=Xa,Va=="bottom"?(ib.bottom+=aa+tb,Za.box={top:Na.height-ib.bottom,height:aa}):(Za.box={top:ib.top+tb,height:aa},ib.top+=aa+tb)):(nb+=Xa,Va=="left"?(Za.box={left:ib.left+tb,width:nb},ib.left+=nb+tb):(ib.right+=nb+tb,Za.box={left:Na.width-ib.right,width:nb}));Za.position=Va;Za.tickLength=Wa;Za.box.padding=Xa;Za.innermost= 623$a}jb=ja.grid.minBorderMargin;if(jb==null)for(ua=jb=0;ua<xa.length;++ua)jb=Math.max(jb,xa[ua].points.radius+xa[ua].points.lineWidth/2);ua=ja.grid.borderWidth;ib.left=Math.max(jb,ib.left+ua);ib.right=Math.max(jb,ib.right+ua);ib.top=Math.max(jb,ib.top+ua);ib.bottom=Math.max(jb,ib.bottom+ua)}Wb.left=ib.left;Wb.right=ib.right;Wb.top=ib.top;Wb.bottom=ib.bottom;if(lc){if(lc.left>ib.left&&(jb=lc.left-ib.left,ib.left=lc.left,Ua))for(var sb of Ka)sb.direction!=="x"&&sb.options.position=="left"&&(sb.box.left+= 624jb);if(lc.right>ib.right&&(sb=lc.right-ib.right,ib.right=lc.right,Ua))for(var xb of Ka)xb.direction!=="x"&&xb.options.position!="left"&&(xb.box.left-=sb)}ic=Na.width-ib.left-ib.right;Yb=Na.height-ib.bottom-ib.top;for(var mb of Oa)Da(mb);if(Ua){for(var rb of Ka)rb.direction=="x"?(rb.box.left=ib.left-rb.labelWidth/2,rb.box.width=Na.width-ib.left-ib.right+rb.labelWidth):(rb.box.top=ib.top-rb.labelHeight/2,rb.box.height=Na.height-ib.bottom-ib.top+rb.labelHeight);xc&&xc.isConnected?g.lastElementChild!== 625xc&&g.appendChild(xc):(xc=document.createElement("div"),xc.className="tickLabels",xc.style.fontSize="smaller",g.appendChild(xc),bd=null);Ua=[];xb=[];Oa=[];mb=[];for(Cb of tc)Cb&&Cb.used&&mb.push(Cb);for(var vb of Dc)vb&&vb.used&&mb.push(vb);var Cb=mb;for(vb=0;vb<Cb.length;++vb){mb=Cb[vb];rb=mb.box;if(!mb.show||!rb)continue;b:{Ka=void 0;sb=mb.options.labelAngle;if(sb==void 0||sb==0){Ka={};break b}jb=mb.box;ua=Ea(mb.options.origWidth,mb.options.origHeight,sb);Za="left";nb=0;mb.position=="bottom"&&(Ka= 626jb.top+jb.padding,sb<0?nb=-ua.a_left.x:(Za="right",nb=-ua.a_right.x,Ka+=ua.topmost.y));Ka={top:Ka,left:void 0,oTop:0,oLeft:nb,align:Za}}Ua.push('<div class="'+mb.direction+"Axis "+mb.direction+mb.n+'Axis" style="color:'+mb.options.color+'">');for(sb=0;sb<mb.ticks.length;++sb){jb=mb.ticks[sb];if(!jb.label||jb.v<mb.min||jb.v>mb.max)continue;ua={};mb.direction=="x"?mb.options.labelAngle!=0?(Za=Ka.align,ua.left=Math.round(ib.left+mb.p2c(jb.v)),ua.left+=Ka.oLeft,ua.top=Ka.top):(Za="center",ua.left=Math.round(ib.left+ 627mb.p2c(jb.v)-mb.labelWidth/2),mb.position=="bottom"?ua.top=rb.top+rb.padding:ua.bottom=Na.height-(rb.top+rb.height-rb.padding)):mb.options.labelAngle!=0?(Za=Ka.align,ua.top=Math.round(ib.top+mb.p2c(jb.v)),ua.top+=Ka.oTop,ua.left=Ka.left):(ua.top=Math.round(ib.top+mb.p2c(jb.v)-mb.labelHeight/2),mb.position=="left"?
627(ua.right=Na.width-(rb.left+rb.width-rb.padding),Za="right"):(ua.left=rb.left+rb.padding,Za="left"));ua.width=mb.options.labelAngle!=0?mb.options.origWidth:mb.labelWidth;Za="position:absolute;text-align:"+ 628Za;for(var zb in ua)Za+=";"+zb+":"+ua[zb]+"px";mb.options.labelAngle!=0&&(Za+=";transform:rotate("+-mb.options.labelAngle+"deg);transform-origin:top left");xb.push(jb.label);Oa.push(Za);Ua.push(null)}Ua.push("</div>")}if((zb=bd)&&N(zb.headers,Ua)&&N(zb.texts,xb))for(Cb=zb.nodes,zb=zb.styles,vb=0;vb<Oa.length;++vb)zb[vb]!==Oa[vb]&&(Cb[vb].setAttribute("style",Oa[vb]),zb[vb]=Oa[vb]);else{zb=[];Cb=0;for(vb=0;vb<Ua.length;++vb)Ua[vb]===null?(zb.push('<div class="tickLabel" style="'+Oa[Cb]+'">'+xb[Cb]+ 629"</div>"),Cb++):zb.push(Ua[vb]);xc.innerHTML=zb.join("");bd={headers:Ua,texts:xb,styles:Oa.slice(),nodes:Array.prototype.slice.call(xc.querySelectorAll(".tickLabel"))}}}if(!pa)a:{for(let Ib=g.firstElementChild,wb;Ib;Ib=wb)wb=Ib.nextElementSibling,Ib.classList.contains("legend")&&Ib.remove();if(ja.legend.show){pa=[];zb=[];Cb=!1;vb=ja.graphIndex;xb=ea.la||{};mb=vb==0||vb==1;if(!ja.legend.noLegend){for(rb=0;rb<xa.length;++rb){Oa=xa[rb];Ua=Oa.label;if(!Ua)continue;Ka="";Cb&&(Ka+="</tr>");Ka+="<tr>";Cb= 630!0;sb=Oa.index;Ka+='<td class="legendColorBox"><div><div class="legendColorBoxCircle" style="background:'+Oa.color+"; border:"+(Oa.lines.show?6:1)+"px solid "+(Oa.lines.show?Oa.color:"#ccc")+';"></div></div></td><td class="legendLabel" data-type="'+sb+'">'+Ua+'<span class="flotLegendHover" style="color:'+Oa.color+'"></span></td>';Ua==xb._1032&&(Ka='<tr><td></td><td style="margin-top: 5px;display: block;"></td></tr>'+Ka);mb?pa[sb]=Ka:zb.push(Ka)}if(mb)if((Oa=ea.CsvType)&&typeof Oa.getObjectsSorted=== 631"function"){var Hb=Oa.getObjectsSorted();for(Oa=0;Oa<Hb.length;Oa++)Hb[Oa]==vb?zb.push('<tr><td></td><td style="margin-top: 5px;display: block;"></td></tr>'):!Number.isInteger(Hb[Oa])&&pa[Hb[Oa].index]&&zb.push(pa[Hb[Oa].index])}else for(Hb in pa)pa[Hb]&&zb.push(pa[Hb]);Cb&&zb.push("</tr>");if(zb.length==0)break a}Hb='<table class="legendTable" style="position:absolute;font-size:smaller;color:'+ja.grid.color+'">'+zb.join("")+"</table>";pa=document.createElement("div");pa.className="legend";pa.innerHTML= 632Hb;g.appendChild(pa)}}}function ya(pa){var ua=pa.options,Oa=+(ua.min!=null?ua.min:pa.datamin),Ua=+(ua.max!=null?ua.max:pa.datamax),Ka=Ua-Oa;if(Ka==0){if(Ka=Ua==0?1:.01,ua.min==null&&(Oa-=Ka),ua.max==null||ua.min!=null)Ua+=Ka}else{let aa=ua.autoscaleMargin;aa!=null&&(ua.min==null&&(Oa-=Ka*aa,Oa<0&&pa.datamin!=null&&pa.datamin>=0&&(Oa=0)),ua.max==null&&(Ua+=Ka*aa,Ua>0&&pa.datamax!=null&&pa.datamax<=0&&(Ua=0)))}pa.n==3&&ua.max==null&&Ua<2.5&&(Ua=3);pa.min=Oa;pa.max=Ua}function za(pa){var ua=pa.options, 633Oa=(pa.max-pa.min)/(.3*Math.sqrt(pa.direction=="x"?Na.width:Na.height)),Ua;if(ua.mode=="time"){for(Ua=0;Ua<K.length-1&&!(Oa<(K[Ua][0]*ca[K[Ua][1]]+K[Ua+1][0]*ca[K[Ua+1][1]])/2);++Ua);var Ka=K[Ua][0];var aa=K[Ua][1];if(aa=="year"){Ua=Math.pow(10,Math.floor(Math.log(Oa/ca.year)/Math.LN10));var Ca=Oa/ca.year/Ua;Ka=(Ca<1.5?1:Ca<3?2:Ca<7.5?5:10)*Ua}pa.tickSize=[Ka,aa];Oa=ia;Ka=fa}else{aa=ua.tickDecimals;let Wa=-Math.floor(Math.log(Oa)/Math.LN10);aa!=null&&Wa>aa&&(Wa=aa);Ua=Math.pow(10,-Wa);Ca=Oa/Ua;Ca< 6341.5?Ka=1:Ca<3?(Ka=2,Ca>2.25&&(aa==null||Wa+1<=aa)&&(Ka=2.5,++Wa)):Ka=Ca<7.5?5:10;pa.delta=Oa;pa.tickDecimals=Math.max(0,aa!=null?aa:Wa);pa.tickSize=Ka*Ua;Oa=wa;Ka=La}pa.tickGenerator=typeof ua.tickGenerator=="function"?ua.tickGenerator:Oa;if(typeof ua.tickFormatter=="function"){if(pa._rawFormatter!==ua.tickFormatter){let Wa=pa._rawFormatter=ua.tickFormatter;pa._wrappedFormatter=function(Va,Xa){return""+Wa(Va,Xa)}}pa.tickFormatter=pa._wrappedFormatter}else pa.tickFormatter=Ka}function cb(pa){var ua= 635pa.tickGenerator(pa),Oa=pa.options.mode=="time"?"t|"+pa.tickSize[0]+"|"+pa.tickSize[1]+"|"+Ba(pa):"n|"+pa.tickDecimals,Ua=pa._labelCache;Ua&&pa._labelCacheSig===Oa&&pa._labelCacheFmt===pa.tickFormatter&&pa._labelCacheMonths===pa.options.monthNames||(Ua=pa._labelCache=new Map,pa._labelCacheSig=Oa,pa._labelCacheFmt=pa.tickFormatter,pa._labelCacheMonths=pa.options.monthNames);pa.ticks=[];for(Oa=0;Oa<ua.length;++Oa){let Ka=+ua[Oa];if(isNaN(Ka))continue;let aa=Ua.get(Ka);aa===void 0&&(aa=pa.tickFormatter(Ka, 636pa),Ua.size>500&&Ua.clear(),Ua.set(Ka,aa));pa.ticks.push({v:Ka,label:aa})}}function fb(pa,ua){pa.options.autoscaleMargin&&ua.length>0&&(pa.options.min==null&&(pa.min=Math.min(pa.min,ua[0].v)),pa.options.max==null&&ua.length>1&&(pa.max=Math.max(pa.max,ua[ua.length-1].v)))}function pb(){Na.clear();
636S(jc.drawBackground,[ab]);if(ja.grid.show){let rb,vb,Cb=l();ab.save();ab.translate(ib.left,ib.top);let zb=0,Hb=ja.grid.markings;if(Hb){let wb=ea.changeV5Epoch,Pb=null,Ab=null;for(rb=0;rb<Hb.length;++rb){let Gb= 637Hb[rb],gb=ob(Gb,"x",Cb,A),lb=ob(Gb,"y",Cb,H);gb.from==null&&(gb.from=gb.axis.min);gb.to==null&&(gb.to=gb.axis.max);lb.from==null&&(lb.from=lb.axis.min);lb.to==null&&(lb.to=lb.axis.max);if(gb.to<gb.axis.min||gb.from>gb.axis.max||lb.to<lb.axis.min||lb.from>lb.axis.max)continue;gb.from=Math.max(gb.from,gb.axis.min);gb.to=Math.min(gb.to,gb.axis.max);lb.from=Math.max(lb.from,lb.axis.min);lb.to=Math.min(lb.to,lb.axis.max);let Bb=gb.from===gb.to,Fb=lb.from===lb.to;if(!Bb||!Fb){gb.from=Math.floor(gb.axis.p2c(gb.from)); 638gb.to=Math.floor(gb.axis.p2c(gb.to));lb.from=Math.floor(lb.axis.p2c(lb.from));lb.to=Math.floor(lb.axis.p2c(lb.to));Gb.isUpdateMarker&&(lb.to-=5,lb.from=0);if(Gb.isBuyBoxMarker){if(zb===0)try{let Nb=ea.CsvType;zb=2;for(vb=0;vb<xa.length;vb++){let pc=xa[vb];if(pc.color==Nb.BUY_BOX_SHIPPING.color){pc.lines.show&&(zb=1);break}}}catch(Nb){b(Nb),zb=3}if(zb===2)continue;if(zb===1)try{lb.from=Gb.xaxis.from>=wb?8:20}catch(Nb){b(Nb)}}if(Bb||Fb){let Nb=Gb.lineWidth||ja.grid.markingsLineWidth,pc=Nb%2?.5:0,rc= 639Gb.color||ja.grid.markingsColor;ab.beginPath();
639rc!==Pb&&(Pb=ab.strokeStyle=rc);ab.lineWidth=Nb;Bb?(ab.moveTo(gb.to+pc,lb.from),ab.lineTo(gb.to+pc,lb.to)):(ab.moveTo(gb.from,lb.to+pc),ab.lineTo(gb.to,lb.to+pc));ab.stroke()}else{let Nb=Gb.color||ja.grid.markingsColor;Nb!==Ab&&(Ab=ab.fillStyle=Nb);ab.fillRect(gb.from,lb.to,gb.to-gb.from,lb.from-lb.to)}}}}let Ib=ja.grid.borderWidth;for(vb=0;vb<Cb.length;++vb){let wb=Cb[vb],Pb=wb.tickLength,Ab=wb.box,Gb,gb,lb,Bb;if(wb.show&&Ab&&wb.ticks.length!=0){ab.strokeStyle= 640wb.options.tickColor||B(wb.options.color).scale("a",.22).toString();ab.lineWidth=1;wb.direction=="x"?(Gb=0,gb=Pb=="full"?wb.position=="top"?0:Yb:Ab.top-ib.top+(wb.position=="top"?Ab.height:0)):(gb=0,Gb=Pb=="full"?wb.position=="left"?0:ic:Ab.left-ib.left+(wb.position=="left"?Ab.width:0));ab.beginPath();for(rb=0;rb<wb.ticks.length;++rb){let Fb=wb.ticks[rb].v;lb=Bb=0;Fb<wb.min||Fb>wb.max||Pb=="full"&&Ib>0&&(Fb==wb.min||Fb==wb.max)||(wb.direction=="x"?(Gb=wb.p2c(Fb),Bb=Pb=="full"?-Yb:Pb,wb.position== 641"top"&&(Bb=-Bb)):(gb=wb.p2c(Fb),lb=Pb=="full"?-ic:Pb,wb.position=="left"&&(lb=-lb)),wb.direction=="x"?Gb=Math.floor(Gb)+.5:gb=Math.floor(gb)+.5,ab.moveTo(Gb,gb),ab.lineTo(Gb+lb,gb+Bb))}ab.stroke()}}Ib&&(ab.lineWidth=Ib,ab.strokeStyle=ja.grid.borderColor,ab.strokeRect(-Ib/2,-Ib/2,ic+Ib,Yb+Ib));ab.restore()}for(let rb=0;rb<xa.length;++rb){S(jc.drawSeries,[ab,xa[rb]]);var pa=xa[rb];pa.lines.show&&ub(pa);if(pa.points.show){var ua=pa;ab.save();ab.translate(ib.left,ib.top);let vb=ua.points.radius,Cb=ua.points.symbol; 642ab.lineWidth=ua.points.lineWidth;ab.strokeStyle=ua.color;{var Oa=ua.datapoints,Ua=Rb(ua.points,ua.color),Ka=ua.xaxis,aa=ua.yaxis;let zb=Oa.points,Hb=Oa.pointsize,Ib=ea.changeV5Epoch!==void 0?ea.changeV5Epoch:Infinity,wb=ua.index==18,Pb=null,Ab=null,Gb=ua.points.symbolSpacing||3,gb=Ka.max-Ka.min,lb=gb>1E10,Bb=Gb*gb/ab.canvas.width,Fb=Gb*(aa.max-aa.min)/ab.canvas.height,Nb=null,pc=null;if(Cb.name=="lastPoint"){ab.beginPath();let rc=zb[zb.length-Hb],Ub=zb[zb.length-Hb+1];if(!(rc==null||rc<Ka.min||rc> 643Ka.max||Ub<aa.min||Ub>aa.max)){var Ca=Ka.p2c(rc),Wa=aa.p2c(Ub)+0;Cb(ab,Ca,Wa,vb,!1,!0);ab.closePath();ab.stroke()}}else{let rc=Ka._ident,Ub=Ka._m,Zb=Ka._s,fc=aa._ident,Tc=aa._m,Qc=aa._s,Wc=Ka.min,Mc=Ka.max,Ac=aa.min,nc=aa.max,Eb=ua.points.symbolSpacing,Tb=Cb=="circle",Xb=zb.length-2,ac=zb.length-3,zc=Oa.xSorted;b:{var Va=Oa;let bc=Va.points;if(Va._symCandFor===bc){var Xa=Va._symCand;break b}let sc=Va.pointsize,oc=[];for(let ec=0;ec<bc.length;ec+=sc)bc[ec]!=null&&(ec>=sc&&bc[ec-sc]!=null&&bc[ec-sc+ 6441]===bc[ec+1]||oc.push(ec));Va._symCandFor=bc;Xa=Va._symCand=oc}let Bc=Xa,$c=zc&&!wb?Ia(zb,Hb,Wc)-Hb:0;if($c>0){let bc=0,sc=Bc.length-1,oc=Bc.length;for(;bc<=sc;){let ec=bc+sc>>1;Bc[ec]>=$c?(oc=ec,sc=ec-1):bc=ec+1}var tb=oc}else tb=0;let Ec=tb;Ua&&(ab.fillStyle=Ua);for(let bc=Ec;bc<Bc.length;bc++){let sc=Bc[bc],oc=zb[sc],ec=zb[sc+1];if(oc>Mc){if(zc&&!wb)break;continue}if(oc<Wc||ec<Ac||ec>nc)continue;if(wb&&oc>Ib)break;let Nc=!0,kb=rc?(oc-Ub)*Zb:Ka.p2c(oc),Mb=(fc?(ec-Tc)*Qc:aa.p2c(ec))+0;if(Nc&&Eb&& 645Nb!==null&&pc!==null){let Sb=kb-Nb,yb=Mb-pc;Math.sqrt(Sb*Sb+yb*yb)<Eb&&(Nc=!1)}if(Nc&&lb&&Pb!=null&&Ab!=null){let Sb=Math.abs(ec-Ab)>=Fb;Math.abs(oc-Pb)<Bb&&!Sb&&(Nc=!1)}Nc&&(ab.beginPath(),Tb?ab.arc(kb,Mb,vb,0,Math.PI*2,!1):Cb(ab,kb,Mb,vb,!1,sc==Xb||sc==ac),ab.closePath(),Ua&&ab.fill(),ab.stroke(),Pb=oc,Ab=ec,Nb=kb,pc=Mb)}}}ab.restore()}}for(let rb=0;rb<xa.length;++rb)if(xa[rb].dashes.show){let vb,Cb;var Za=xa[rb];let zb=Za.datapoints,Hb=Za.xaxis,Ib=Za.yaxis;ab.save();ab.translate(ib.left,ib.top); 646ab.lineJoin="round";let wb=Za.dashes.lineWidth;ab.lineWidth=wb;ab.strokeStyle=Za.color;if(wb>0){let Pb=zb.points,Ab=zb.pointsize,Gb=zb.xSorted,gb=Hb.min,lb=Hb.max,Bb=Ib.min,Fb=Ib.max,Nb=Hb._ident,pc=Hb._m,rc=Hb._s,Ub=Ib._ident,Zb=Ib._m,fc=Ib._s,Tc=null,Qc=null,Wc=0,Mc=!0;Za.dashes.dashLength[0]?(Cb=Za.dashes.dashLength[0],vb=Za.dashes.dashLength[1]?Za.dashes.dashLength[1]:Cb):vb=Cb=Za.dashes.dashLength;ab.beginPath();let Ac=Gb?Ia(Pb,Ab,gb):Ab;for(let nc=Ac;nc<Pb.length;nc+=Ab){let Eb=Pb[nc-Ab],Tb= 647Pb[nc-Ab+1],Xb=Pb[nc],ac=Pb[nc+1];if(Eb==null||Xb==null)continue;if(Gb&&Eb>lb)break;if(Tb<=ac&&Tb<Bb){if(ac<Bb)continue;Eb=(Bb-Tb)/(ac-Tb)*(Xb-Eb)+Eb;Tb=Bb}else if(ac<=Tb&&ac<Bb){if(Tb<Bb)continue;Xb=(Bb-Tb)/(ac-Tb)*(Xb-Eb)+Eb;ac=Bb}if(Tb>=ac&&Tb>Fb){if(ac>Fb)continue;Eb=(Fb-Tb)/(ac-Tb)*(Xb-Eb)+Eb;Tb=Fb}else if(ac>=Tb&&ac>Fb){if(Tb>Fb)continue;Xb=(Fb-Tb)/(ac-Tb)*(Xb-Eb)+Eb;ac=Fb}if(Eb<=Xb&&Eb<gb){if(Xb<gb)continue;Tb=(gb-Eb)/(Xb-Eb)*(ac-Tb)+Tb;Eb=gb}else if(Xb<=Eb&&Xb<gb){if(Eb<gb)continue;ac=(gb- 648Eb)/(Xb-Eb)*(ac-Tb)+Tb;Xb=gb}if(Eb>=Xb&&Eb>lb){if(Xb>lb)continue;Tb=(lb-Eb)/(Xb-Eb)*(ac-Tb)+Tb;Eb=lb}else if(Xb>=Eb&&Xb>lb){if(Eb>lb)continue;ac=(lb-Eb)/(Xb-Eb)*(ac-Tb)+Tb;Xb=lb}let zc=(Nb?(Eb-pc)*rc:Hb.p2c(Eb))+0,Bc=(Ub?(Tb-Zb)*fc:Ib.p2c(Tb))+0,$c=(Nb?(Xb-pc)*rc:Hb.p2c(Xb))+0,Ec=(Ub?(ac-Zb)*fc:Ib.p2c(ac))+0;Eb==Tc&&Tb==Qc||ab.moveTo(zc,Bc);let bc=C,sc=500;do{sc--;var $a=zc,nb=Bc,jb=$c,sb=Ec,xb=Wc>0?Wc:Mc?Cb:vb,mb=bc;let oc=jb-$a,ec=sb-nb,Nc=Math.sqrt(oc*oc+ec*ec);if(Nc<=xb)mb.deltaX=oc,mb.deltaY= 649ec,mb.distance=Nc,mb.remainder=xb-Nc;else{let kb=ec/oc,Mb=xb*xb,Sb=Mb/(1+kb*kb);mb.deltaX=(jb>$a?1:-1)*Math.sqrt(Sb);mb.deltaY=(sb>nb?1:-1)*Math.sqrt(Mb-Sb);mb.distance=xb;mb.remainder=0}if(bc.deltaX!=0||bc.deltaY!=0)Mc?ab.lineTo(zc+bc.deltaX,Bc+bc.deltaY):ab.moveTo(zc+bc.deltaX,Bc+bc.deltaY);Mc=!Mc;Wc=bc.remainder;zc+=bc.deltaX;Bc+=bc.deltaY}while(bc.distance>0&&sc>0);Tc=Xb;Qc=ac}ab.stroke()}
649ab.restore()}S(jc.draw,[ab]);R()}function ob(pa,ua,Oa,Ua){Oa||=l();for(let Va=0;Va<Oa.length;++Va){var Ka= 650Oa[Va];if(Ka.direction==ua){var aa=ua+Ka.n+"axis";pa[aa]||Ka.n!=1||(aa=ua+"axis");if(pa[aa]){var Ca=pa[aa].from;var Wa=pa[aa].to;break}}}pa[aa]||(Ka=ua=="x"?tc[0]:Dc[0]);Ca!=null&&Wa!=null&&Ca>Wa&&(pa=Ca,Ca=Wa,Wa=pa);return Ua?(Ua.from=Ca,Ua.to=Wa,Ua.axis=Ka,Ua):{from:Ca,to:Wa,axis:Ka}}function ub(pa){function ua(aa,Ca,Wa,Va,Xa,tb){var Za=aa.points,$a=aa.pointsize;aa=aa.xSorted;var nb=Va.min,jb=Va.max,sb=Xa.min,xb=Xa.max,mb=Va._ident,rb=Va._m,vb=Va._s,Cb=Xa._ident,zb=Xa._m,Hb=Xa._s,Ib=null,wb=null, 651Pb=aa?Ia(Za,$a,nb):$a;for(ab.beginPath();Pb<Za.length;Pb+=$a){var Ab=Za[Pb-$a];let gb=Za[Pb-$a+1],lb=Za[Pb];var Gb=Za[Pb+1];if(Ab==null||lb==null)continue;if(aa&&Ab>jb)break;if(gb<=Gb&&gb<sb){if(Gb<sb)continue;Ab=(sb-gb)/(Gb-gb)*(lb-Ab)+Ab;gb=sb}else if(Gb<=gb&&Gb<sb){if(gb<sb)continue;lb=(sb-gb)/(Gb-gb)*(lb-Ab)+Ab;Gb=sb}if(gb>=Gb&&gb>xb){if(Gb>xb)continue;Ab=(xb-gb)/(Gb-gb)*(lb-Ab)+Ab;gb=xb}else if(Gb>=gb&&Gb>xb){if(gb>xb)continue;lb=(xb-gb)/(Gb-gb)*(lb-Ab)+Ab;Gb=xb}if(Ab<=lb&&Ab<nb){if(lb<nb)continue; 652gb=(nb-Ab)/(lb-Ab)*(Gb-gb)+gb;Ab=nb}else if(lb<=Ab&&lb<nb){if(Ab<nb)continue;Gb=(nb-Ab)/(lb-Ab)*(Gb-gb)+gb;lb=nb}if(Ab>=lb&&Ab>jb){if(lb>jb)continue;gb=(jb-Ab)/(lb-Ab)*(Gb-gb)+gb;Ab=jb}else if(lb>=Ab&&lb>jb){if(Ab>jb)continue;Gb=(jb-Ab)/(lb-Ab)*(Gb-gb)+gb;lb=jb}Ab==Ib&&gb==wb||ab.moveTo((mb?(Ab-rb)*vb:Va.p2c(Ab))+Ca,(Cb?(gb-zb)*Hb:Xa.p2c(gb))+Wa);Ib=lb;wb=Gb;Ab=(mb?(lb-rb)*vb:Va.p2c(lb))+Ca;Gb=(Cb?(Gb-zb)*Hb:Xa.p2c(Gb))+Wa;tb==1?ab.lineTo(Math.round(Ab)+.5,Math.round(Gb)+.5):ab.lineTo(Ab,Gb)}ab.stroke()} 653function Oa(aa,Ca,Wa){var Va=aa.points,Xa=aa.xSorted,tb=Ca.min,Za=Ca.max,$a=Wa.min,nb=Wa.max,jb=Ca._ident,sb=Ca._m,xb=Ca._s,mb=Wa._ident,rb=Wa._m,vb=Wa._s;aa=aa.pointsize;var Cb=Math.min(Math.max(0,$a),nb);Cb=mb?(Cb-rb)*vb:Wa.p2c(Cb);for(var zb=mb?(nb-rb)*vb:Wa.p2c(nb),Hb=mb?($a-rb)*vb:Wa.p2c($a),Ib=Xa?Ia(Va,aa,tb)-aa:0,wb=Ib,Pb=!1,Ab=1,Gb=0;!(aa>0&&wb>Va.length+aa);){wb+=aa;let Bb=Va[wb-aa];var gb=Va[wb-aa+Ab];let Fb=Va[wb];var lb=Va[wb+Ab];if(Pb){if(aa>0&&Bb!=null&&Fb==null){Gb=wb;aa=-aa;Ab=2;continue}if(aa< 6540&&wb==Ib+aa){ab.fill();Pb=!1;aa=-aa;Ab=1;wb=Ib=Gb+aa;continue}}if(Bb==null||Fb==null)continue;if(Xa&&aa>0&&Bb>Za){if(!Pb)break;Gb=wb;aa=-aa;Ab=2;continue}
654if(Bb<=Fb&&Bb<tb){if(Fb<tb)continue;gb=(tb-Bb)/(Fb-Bb)*(lb-gb)+gb;Bb=tb}else if(Fb<=Bb&&Fb<tb){if(Bb<tb)continue;lb=(tb-Bb)/(Fb-Bb)*(lb-gb)+gb;Fb=tb}if(Bb>=Fb&&Bb>Za){if(Fb>Za)continue;gb=(Za-Bb)/(Fb-Bb)*(lb-gb)+gb;Bb=Za}else if(Fb>=Bb&&Fb>Za){if(Bb>Za)continue;lb=(Za-Bb)/(Fb-Bb)*(lb-gb)+gb;Fb=Za}Pb||(ab.beginPath(),ab.moveTo(jb?(Bb-sb)*xb:Ca.p2c(Bb), 655Cb),Pb=!0);if(gb>=nb&&lb>=nb){ab.lineTo(jb?(Bb-sb)*xb:Ca.p2c(Bb),zb);ab.lineTo(jb?(Fb-sb)*xb:Ca.p2c(Fb),zb);continue}else if(gb<=$a&&lb<=$a){ab.lineTo(jb?(Bb-sb)*xb:Ca.p2c(Bb),Hb);ab.lineTo(jb?(Fb-sb)*xb:Ca.p2c(Fb),Hb);continue}let Nb=Bb,pc=Fb;gb<=lb&&gb<$a&&lb>=$a?(Bb=($a-gb)/(lb-gb)*(Fb-Bb)+Bb,gb=$a):lb<=gb&&lb<$a&&gb>=$a&&(Fb=($a-gb)/(lb-gb)*(Fb-Bb)+Bb,lb=$a);gb>=lb&&gb>nb&&lb<=nb?(Bb=(nb-gb)/(lb-gb)*(Fb-Bb)+Bb,gb=nb):lb>=gb&&lb>nb&&gb<=nb&&(Fb=(nb-gb)/(lb-gb)*(Fb-Bb)+Bb,lb=nb);gb=mb?(gb-rb)*vb: 656Wa.p2c(gb);lb=mb?(lb-rb)*vb:Wa.p2c(lb);let rc=jb?(Fb-sb)*xb:Ca.p2c(Fb);Bb!=Nb&&ab.lineTo(jb?(Nb-sb)*xb:Ca.p2c(Nb),gb);ab.lineTo(jb?(Bb-sb)*xb:Ca.p2c(Bb),gb);ab.lineTo(rc,lb);Fb!=pc&&(ab.lineTo(rc,lb),ab.lineTo(jb?(pc-sb)*xb:Ca.p2c(pc),lb))}}ab.save();ab.translate(ib.left,ib.top);ab.lineJoin="round";var Ua=pa.lines.lineWidth;ab.lineWidth=Ua;ab.strokeStyle=pa.color;var Ka=Rb(pa.lines,pa.color,0,Yb);Ka&&(ab.fillStyle=Ka,Oa(pa.datapoints,pa.xaxis,pa.yaxis));Ua>0&&ua(pa.datapoints,0,0,pa.xaxis,pa.yaxis, 657Ua);ab.restore()}function Rb(pa,ua,Oa,Ua){var Ka=pa.fill;if(!Ka)return null;if(pa.fillColor){Ka=pa.fillColor;if(typeof Ka=="string")ua=Ka;else{Oa=ab.createLinearGradient(0,Ua,0,Oa);for(let aa=0,Ca=Ka.colors.length;aa<Ca;++aa)Ua=Ka.colors[aa],typeof Ua!="string"&&(pa=B(ua),Ua.brightness!=null&&pa.scale("rgb",Ua.brightness),Ua.opacity!=null&&(pa.a*=Ua.opacity),Ua=pa.toString()),Oa.addColorStop(aa/(Ca-1),Ua);ua=Oa}return ua}ua=B(ua);ua.a=typeof Ka=="number"?Ka:.4;ua.normalize();return ua.toString()} 658function T(pa){ja.grid.hoverable&&y("plothover",pa,ha)}function va(pa){ja.grid.hoverable&&y("plothover",pa,V)}function Ma(pa){y("plotclick",pa,O)}function y(pa,ua,Oa){var Ua=q(qb),Ka=ua.pageX-Ua.left-ib.left,aa=ua.pageY-Ua.top-ib.top,Ca=M({left:Ka,top:aa});Ca.pageX=ua.pageX;Ca.pageY=ua.pageY;if(pa=="plotclick"){ua=ja.grid.mouseActiveRadius;var Wa=ua*ua+1,Va=[],Xa,tb=ea.changeV5Epoch!==void 0?ea.changeV5Epoch:Infinity;for(Xa=xa.length-1;Xa>=0;--Xa){var Za=null;if(!Oa(xa[Xa]))continue;var $a=xa[Xa]; 659var nb=$a.xaxis,jb=$a.yaxis,sb=$a.datapoints.points,xb=$a.datapoints.pointsize,mb=nb.c2p(Ka),rb=jb.c2p(aa),vb=ua/nb.scale,Cb=ua/jb.scale;nb.options.inverseTransform&&(vb=Number.MAX_VALUE);jb.options.inverseTransform&&(Cb=Number.MAX_VALUE);if($a.lines.show||$a.points.show)if($a.index==18&&mb>tb){vb=sb.length-2;var zb=!1;for($a=0;$a<vb;$a+=xb){var Hb=sb[$a],Ib=sb[$a+1];if(Hb==null)continue;var wb=$a+xb>=vb?1E14:sb[$a+xb]==null?Hb:sb[$a+xb];if(!zb&&wb<mb)continue;zb=!0;if(Ib-rb>Cb||Ib-rb<-Cb)break;wb= 660Math.abs(nb.p2c(Hb)-Ka);Ib=Math.abs(jb.p2c(Ib)-aa);Hb=Hb<mb&&mb<(sb[$a+xb]==null?Hb:sb[$a+xb]);if(wb*wb+Ib*Ib<Wa||Hb){Za=[Xa,$a/xb];break}}}else for($a=(zb=$a.datapoints.xSorted&&!nb.options.inverseTransform)?Aa(sb,xb,mb-vb):0;$a<sb.length;$a+=xb){wb=sb[$a];Hb=sb[$a+1];if(wb==null)continue;if(zb&&wb-mb>vb)break;if(wb-mb>vb||wb-mb<-vb||Hb-rb>Cb||Hb-rb<-Cb)continue;wb=Math.abs(nb.p2c(wb)-Ka);Hb=Math.abs(jb.p2c(Hb)-aa);if(wb*wb+Hb*Hb<Wa){Za=[Xa,$a/xb];break}}Za&&(Xa=Za[0],$a=Za[1],Za=xa[Xa].datapoints.pointsize, 661Va.push({datapoint:xa[Xa].datapoints.points.slice($a*Za,($a+1)*Za),dataIndex:$a,series:xa[Xa],seriesIndex:Xa}))}Oa=Va;for(Ka=0;Ka<Oa.length;Ka++)aa=Oa[Ka],aa.pageX=Math.trunc(aa.series.xaxis.p2c(aa.datapoint[0])+Ua.left+ib.left),aa.pageY=Math.trunc(aa.series.yaxis.p2c(aa.datapoint[1])+Ua.top+ib.top);L(pa,{pos:Ca,items:Oa})}else{Wa=ja.grid.mouseActiveRadius;Va=Wa*Wa+1;Xa=null;for(ua=xa.length-1;ua>=0;--ua){if(!Oa(xa[ua]))continue;tb=xa[ua];$a=tb.xaxis;Za=tb.yaxis;nb=tb.datapoints.points;jb=tb.datapoints.pointsize; 662sb=$a.c2p(Ka);xb=Za.c2p(aa);mb=Wa/$a.scale;rb=Wa/Za.scale;$a.options.inverseTransform&&(mb=Number.MAX_VALUE);Za.options.inverseTransform&&(rb=Number.MAX_VALUE);if(tb.lines.show||tb.points.show)for(tb=(Cb=tb.datapoints.xSorted&&!$a.options.inverseTransform)?Aa(nb,jb,sb-mb):0;tb<nb.length;tb+=jb){zb=nb[tb];vb=nb[tb+1];if(zb==null)continue;if(Cb&&zb-sb>mb)break;if(zb-sb>mb||zb-sb<-mb||vb-xb>rb||vb-xb<-rb)continue;zb=Math.abs($a.p2c(zb)-Ka);
662vb=Math.abs(Za.p2c(vb)-aa);vb=zb*zb+vb*vb;vb<Va&&(Va=vb,Xa=[ua, 663tb/jb])}}Xa?(ua=Xa[0],tb=Xa[1],Oa=xa[ua].datapoints.pointsize,Oa={datapoint:xa[ua].datapoints.points.slice(tb*Oa,(tb+1)*Oa),dataIndex:tb,series:xa[ua],seriesIndex:ua}):Oa=null;Oa&&(Oa.pageX=Math.trunc(Oa.series.xaxis.p2c(Oa.datapoint[0])+Ua.left+ib.left),Oa.pageY=Math.trunc(Oa.series.yaxis.p2c(Oa.datapoint[1])+Ua.top+ib.top));L(pa,{pos:Ca,item:Oa})}}function R(){cc==null&&(cc=ta.requestAnimationFrame(qa))}function qa(){cc!=null&&(ta.cancelAnimationFrame(cc),cc=null);var pa=yc==null?jc.drawOverlay.length> 6640:jc.drawOverlay.length!==1||jc.drawOverlay[0]!==yc;if((pa=Vb.length>0||pa||Gc!=null&&Gc())||!kc){Jb.save();hb.clear();Jb.translate(ib.left,ib.top);var ua=ea.changeV5Epoch!==void 0?ea.changeV5Epoch:Infinity;for(let tb=0;tb<Vb.length;++tb){var Oa=Vb[tb];if(Oa.series.points.show)a:{var Ua=Oa.series,Ka=Oa.point,aa=Ka[0],Ca=Ka[1],Wa=Ua.xaxis,Va=Ua.yaxis;if(aa<Wa.min||aa>Wa.max||Ca<Va.min||Ca>Va.max)break a;var Xa=Ua.points.radius+Ua.points.lineWidth/2;Jb.lineWidth=Xa;Ua._hlColorSrc!==Ua.color&&(Ua._hlColorSrc= 665Ua.color,Ua._hlColor=B(Ua.color).scale("a",.5).toString());Jb.strokeStyle=Ua._hlColor;Xa*=1.5;aa=Wa.p2c(aa);Ca=Va.p2c(Ca);Ua.index==18&&Ka[0]>ua||(Jb.beginPath(),Ua.points.symbol=="circle"?Jb.arc(aa,Ca,Xa,0,2*Math.PI,!1):Ua.points.symbol(Jb,aa,Ca,Xa,!1),Jb.closePath(),Jb.stroke())}if(Oa.point[0]!=Oa.point[2]){aa=Oa.series;Wa=Oa.point;Xa=Wa[0];Ua=Oa.color||aa.color;Ka=aa.xaxis;aa=aa.yaxis;Ca=Jb;Oa=Oa.lineWidth||2.5;Va=Xa+0;Xa+=Wa[2]-Wa[0];let Za=0;Wa=Wa[1];let $a=!0;Xa<Ka.min||Va>Ka.max||Wa<aa.min|| 666Za>aa.max||(Va<Ka.min&&(Va=Ka.min),Xa>Ka.max&&(Xa=Ka.max),Za<aa.min&&(Za=aa.min),Wa>aa.max&&(Wa=aa.max,$a=!1),Va=Ka.p2c(Va),aa.p2c(Za),Xa=Ka.p2c(Xa),Wa=aa.p2c(Wa),Ca.lineWidth=Oa,Ca.strokeStyle=Ua,Oa>0&&(Ca.beginPath(),Ca.moveTo(Math.round(Va)+.5,Math.round(Wa+0)+.5),$a&&Ca.lineTo(Math.round(Xa)+.5,Math.round(Wa+0)+.5),Ca.stroke()))}}Jb.restore();S(jc.drawOverlay,[Jb]);kc=!pa}}var xa=[],ja={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:!0,noLegend:!1},xaxis:{show:null,position:"bottom", 667mode:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,tickFormatter:null,labelWidth:null,labelHeight:null,labelAngle:0,reserveSpace:null,tickLength:null,tickDecimals:null,monthNames:null},yaxis:{autoscaleMargin:.02,labelAngle:0,position:"left"},xaxes:[],yaxes:[],series:{points:{show:!1,radius:3,lineWidth:2,fill:!0,fillColor:"#ffffff",symbol:"circle"},lines:{lineWidth:2,fill:!1,fillColor:null,steps:!1},dashes:{show:!1,lineWidth:1,dashLength:10}, 668shadowSize:0},grid:{show:!0,color:"#545454",borderColor:null,tickColor:null,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:!1,hoverable:!1,mouseActiveRadius:10},selection:{mode:null,color:"#e8cfac",shape:"round",minSize:5},hooks:{}},Na=null,hb=null,qb=null,ab=null,Jb=null,ib={left:0,right:0,top:0,bottom:0},Wb={left:0,right:0,top:0,bottom:0},lc=null,ic=0,Yb=0,Vb=[],cc=null,kc=!0,yc=null,Gc=null,Hc=new AbortController, 669tc=[],Dc=[],jc={processOptions:[],processRawData:[],processDatapoints:[],drawBackground:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},Ob=this,xc=null,bd=null,Lc=null,Sc=new Map,Vc=!1,Xc=null;document.fonts?(Vc=document.fonts.status==="loaded",document.fonts.addEventListener("loadingdone",function(){Sc.clear();Vc=!0},{signal:Hc.signal})):Vc=!0;Ob.setData=ma;Ob.setupGrid=Ha;Ob.draw=pb;Ob.setupTickGeneration=za;Ob.setTicks=cb;Ob.setRange=ya;Ob.snapRangeToTicks=fb;Ob.getPlaceholder= 670function(){return g};Ob.getEventHolder=function(){return qb};Ob.getPlotOffset=function(){return ib};Ob.getNaturalPlotOffset=function(){return Wb};Ob.setGutter=function(pa,ua){if(pa==null){if(lc==null)return!1;lc=null;return!0}if(lc!=null&&lc.left===pa&&lc.right===ua)return!1;lc={left:pa,right:ua};return!0};Ob.width=function(){return ic};Ob.height=function(){return Yb};Ob.offset=function(){var pa=q(qb);pa.left+=ib.left;pa.top+=ib.top;return pa};Ob.getData=function(){return xa};Ob.getAxes=function(){var pa= 671{};for(let ua of tc)ua&&(pa[ua.direction+(ua.n!=1?ua.n:"")+"axis"]=ua);for(let ua of Dc)ua&&(pa[ua.direction+(ua.n!=1?ua.n:"")+"axis"]=ua);return pa};Ob.getXAxes=function(){return tc};Ob.getYAxes=function(){return Dc};Ob.c2p=M;Ob.getOptions=function(){return ja};Ob.getHighlights=function(){return Vb};Ob.setHighlights=function(pa){Vb=pa};Ob.unhighlight=function(){Vb=[];R()};Ob.triggerRedrawOverlay=R;Ob.drawOverlay=qa;Ob.pointOffset=function(pa){return{left:Math.trunc(tc[Q(pa,"x")-1].p2c(+pa.x)+ib.left), 672top:Math.trunc(Dc[Q(pa,"y")-1].p2c(+pa.y)+ib.top)}};Ob.shutdown=function(){cc!=null&&(ta.cancelAnimationFrame(cc),cc=null);Hc.abort();Lc&&(Lc.remove(),Lc=null);Sc.clear();S(jc.shutdown,[qb]);F.get(g)===Ob&&F.delete(g)};Ob.resize=function(){var pa=ta.getComputedStyle(g);pa.fontSize!==Xc&&(Xc!==null&&Sc.clear(),Xc=pa.fontSize);var ua=k(g,pa)|0;pa=n(g,pa)|0;Na.resize(ua,pa);hb.resize(ua,pa)};Ob.hooks=jc;(function(){for(let pa=0;pa<I.length;++pa){let ua=I[pa];ua.init(Ob,{Canvas:Ta});ua.options&&f(ja, 673ua.options)}})();(function(pa){var ua,Oa;function Ua($a){if(!Xa){var nb=ja.$isSyncedWith;if(nb!=void 0&&nb.length>1)for(var jb=0;jb<nb.length;jb++){var sb=r(nb[jb].$container);Xa=Xa||!!$a._kaSync||P(sb)}}jb=pa.offset();sb=q(g);nb=jb.left-sb.left;sb=jb.top-sb.top;var xb=$a.pageX-jb.left;
673$a=$a.pageY-jb.top;Wa=nb;Va=xb>(ic|0)||xb<0||!Xa&&($a>(Yb|0)||$a<0);ua=nb+Math.max(0,Math.min(xb,ic|0));aa=sb+Math.max(0,Math.min($a,Yb|0));Oa=ua+Ca.x}function Ka(){Za||(Za=!0,setTimeout(function(){var $a=ja.$isSyncedWith; 674if($a!=void 0)for(let nb=0;nb<$a.length;nb++){let jb=r($a[nb].$container);D(jb,".flotToolTipsPlaceholder");D(jb,"#flotTipDate");D(jb,".flotLegendHover")}D(g,".flotToolTipsPlaceholder");D(g,".flotLegendHover");D(g,"#flotTipDate");pa.unhighlight();Za=!1;g.style.cursor=""},0))}if(ea.isSnapshotPage===void 0){var aa=ua=Oa=0;var Ca={x:14,y:25};var Wa=0;var Va=!1,Xa=!1,tb=ea.graphDateFormatIFrame||"D, M j Y, G:i ",Za=!1;jc.bindEvents.push(function($a,nb){$a=Hc.signal;nb.addEventListener("mouseout",Ka,{signal:$a}); 675nb.addEventListener("mousemove",Ua,{signal:$a});nb.addEventListener("touchmove",function(jb){jb.touches.length==1&&(jb=jb.touches[0],Ua({pageX:jb.pageX,pageY:jb.pageY}))},{signal:$a});nb.addEventListener("touchstart",function(jb){jb.touches.length>1&&Ka()},{signal:$a})});jc.bindEvents.push(function($a,nb){function jb(Ub){var Zb=Pb[Ub.index];if(!Zb){Zb=W("flotTip","flotTip"+Ub.index);Zb.setAttribute("style","border: 1px solid "+B(Ub.color).scale("a",.7).toString()+";background: "+Ub.backgroundColor+ 676";");Zb.style.display="none";let fc=W("flotTipAngularLine"+(gb?3:Ub.index%4),"flotTipAngularLine"+Ub.index);fc.style.display="none";
676Bb.appendChild(Zb);Ib.appendChild(fc);Pb[Ub.index]=Zb;Ab[Ub.index]=fc}return{tip:Pb[Ub.index],angular:Ab[Ub.index]}}function sb(){if(!rc.isConnected){let Ub=Cb.querySelector("#flotTipDate");Ub&&(rc=Ub)}return rc}function xb(Ub){Ub&&(rc=Ub)}function mb(Ub,Zb){Ub.innerHTML=Zb;return Ub}var rb=ja,vb=rb.timeShiftOffset;nb=Hc.signal;var Cb=W("flotToolTipsPlaceholder");g.appendChild(Cb); 677var zb=Array.prototype.slice.call(g.querySelectorAll(".flotLegendHover"));for(var Hb of zb)Hb.style.display="none";var Ib=W(null,"flotTipVerticalLine");Hb=W(null,"flotTipDate");var wb=W(null,"flotTipHorizontalLine"),Pb={},Ab={},Gb=$a.getData(),gb=rb.graphIndex==5,lb=!!rb.isInGrid,Bb=rb.graphIndex==2?Cb:Ib;for(let Ub=0;Ub<Gb.length;Ub++)jb(Gb[Ub]);Cb.appendChild(Hb);Cb.appendChild(Ib);Cb.appendChild(wb);Hb.style.display="none";Ib.style.display="none";wb.style.display="none";var Fb=!1;g.addEventListener("mouseout", 678function(){Va=!0;D(g,".flotToolTipsPlaceholder")},{signal:nb});var Nb=rb.domain,pc=function(Ub){Cb.style.display="none";var Zb=ja.$isSyncedWith;if(Zb!=void 0)for(let fc=0;fc<Zb.length;fc++){if(rb.graphIndex==Zb[fc].graphIndex)continue;let Tc=Zb[fc].plot;Tc.setHighlights([]);Tc.drawOverlay()}Ub.setHighlights([]);Ub.drawOverlay()};g.addEventListener("plothover",function(Ub){var Zb=Ub.detail.pos;Va?pc($a):Fb||(Fb=!0,setTimeout(function(){Promise.resolve().then(function(){Fb=!1});if(Va)pc($a),Fb=!1;else{var fc= 679{},Tc={},Qc=[],Wc=!1,Mc,Ac=$a.getData();if(Number.isFinite(Zb.x)){for(let kb in Pb)Pb[kb]&&(Pb[kb].style.display="none"),Ab[kb]&&(Ab[kb].style.display="none");var nc=0;for(Mc=0;Mc<Ac.length;Mc++){let kb=Ac[Mc];if(kb.isSplitLine)continue;let Mb=kb.index,Sb=kb.tooltipData||kb.data;if(!kb.lines.show&&!kb.dashes.show)continue;if(Sb.length==null)continue;if(Ya(kb,Sb))var Eb=Ga(Sb,Zb.x);else for(Eb=0;Eb<Sb.length&&!(Sb[Eb]!=null&&Sb[Eb][0]>Zb.x);Eb++);if(Sb[Eb-1]==null){let Qb=Sb[Eb-2],Cc=Sb[Eb];Qb==null&& 680Eb==Sb.length&&(Eb--,Qb=Sb[Eb-2]);Qb=Qb==null?0:Qb[0];Cc=Cc==null?9999999999999:Cc[0];let qc=Math.abs(Zb.x-Qb),Zc=Math.abs(Zb.x-Qb),Rc=Math.abs(Zb.x-Cc);Zc>=Rc?qc=Rc:(qc=Zc,Eb-=2);if(qc/(kb.xaxis.max-kb.xaxis.min)>(rb.graphIndex==5?.025:.003))continue}let yb,Lb,Db=Sb[Eb-1],Kb=Sb[Eb];if(Db!=null||Kb!=null){Db==null?(Lb=Kb[1],yb=Kb[0],kb.points.show&&(Db=Kb)):(Lb=Db[1],yb=Db[0]);if(Lb!=null&&Lb!="u"){if(kb.formatter)fc[Mb]=kb.formatter(Lb);else if(kb.index==ea.CsvType.RATING.index||kb.index-100==ea.CsvType.RATING.index)fc[Mb]= 681"<span>"+kb.labelText+"</span><br>"+Lb;else if(kb.isPercentage)fc[Mb]="<span>"+kb.labelText+"</span><br>"+Lb+"%";else if(kb.isCurrency){let Ic="",Oc=""+ea.Money.format(Lb,{sourceDomainId:Nb,targetDomainId:Nb,isDivided:!0});if(kb.index==ea.CsvType.BUY_BOX_SHIPPING.index){let Yc=ea.keepaTime.epochToMinutes(yb)-ea.keepaTime.timeShiftOffset,uc=ea.getBBEntryAtTimeWithExactTime(kb.bbHistory,Yc,ea.CsvType.AMAZON);if(uc!=-1){let Jc=ea.SellerUtil.isSellerIdAmazon(uc.sellerId,Nb),ad="Amazon",mc=!0;if(!Jc){ad= 682ea.la._1264;let vc=null,Fc=null;if(kb.offers!=null){let Kc=[];for(let hc of kb.offers)if(hc.sellerId===uc.sellerId){let dc=Kb!=null&&Db!=null?ea.keepaTime.epochToMinutes(Kb[0])-ea.keepaTime.timeShiftOffset:Yc,$b=ea.getFirstValueWithinIntervalWithShipping(hc.offerCSV,Yc,dc);""+ea.Money.format($b[0]+$b[1],{sourceDomainId:Nb,targetDomainId:Nb,isDivided:!1})===Oc&&Kc.push(hc)}Kc.sort((hc,dc)=>dc.lastSeen-hc.lastSeen);if(Kc.length>0){Fc=Kc[0];vc=Fc.isFBA?ea.CsvType.NEW_FBA.color:ea.CsvType.NEW_FBM_SHIPPING.color; 683let hc=ea.la._1264;if(ea.sellerNameCache[Nb+uc.sellerId]){let dc=ea.sellerNameCache[Nb+uc.sellerId];hc=dc.name+" ★ "+dc.rating+"% "+dc.ratingCount;mc=!1}ad='<span style="color: '+vc+'">'+(Fc.isFBA?"FBA":"FBM")+"</span> "+hc}}}if(uc.sellerId.length>4){let vc=vb*6E4,Fc=ea.keepaTime.epochToMinutes(kb.xaxis.min),Kc=ea.keepaTime.epochToMinutes(kb.xaxis.max);for(let hc=0;hc<kb.bbHistory.length;hc+=2){let dc=kb.bbHistory[hc+1],$b=dc.endDate;if(dc.price==-1)continue;if($b<Fc)continue; 684let wc=Number(kb.bbHistory[hc]);if(wc>Kc)break;let Pc="rgb(255,165,229)";dc.time=wc;if(dc.sellerId==uc.sellerId){let dd=kb.yaxis.max;if(Jc)Pc=ea.CsvType.AMAZON.color;else if(kb.offers){let ed=null;for(let cd of kb.offers)if(cd.sellerId===uc.sellerId){let gd=Kb!=null&&Db!=null?ea.keepaTime.epochToMinutes(Kb[0])-ea.keepaTime.timeShiftOffset:wc,fd=ea.getFirstValueWithinIntervalWithShipping(cd.offerCSV,wc,gd);dc.price>=0&&fd[0]+fd[1]===dc.price&&(ed==null||Jc||cd.isFBA)&&(ed=cd,Pc=Jc?ea.CsvType.AMAZON.color: 685cd.isFBA?ea.CsvType.NEW_FBA.color:ea.CsvType.NEW_FBM_SHIPPING.color)}}Pc!=null&&Qc.push({auto:void 0,color:Pc,lineWidth:5,point:[Math.max(ea.keepaTime.minutesToEpoch(wc)+vc,kb.xaxis.datamin),dd,ea.keepaTime.minutesToEpoch($b)+vc,dd],series:kb,seriesIndex:1E3+hc})}}}Ic='<br><span id="tt'+uc.sellerId+'" style="font-weight: bold">'+ad+"</span>";if(!Jc&&(uc.sellerId+"").length>5&&ea.hasDataAccessSubscription&&mc){let vc=!!ea.sellerNamePromises[Nb+uc.sellerId],Fc={},Kc=0;for(let dc=0;dc<kb.bbHistory.length;dc+= 6862){let $b=kb.bbHistory[dc+1].sellerId;($b+"").length>5&&!ea.sellerNamePromises[Nb+$b]&&Kc<100&&($b in Fc||Kc++,Fc[$b]=1)}let hc=vc?ea.sellerNamePromises[Nb+uc.sellerId]:X();hc.done(dc=>{dc=dc.merchantNames;for(let wc in dc){var $b=dc[wc];let Pc=$b.name!=null?$b.name:wc;Pc.length>40&&(Pc=Pc.substring(0,37)+"\u2026");Pc=Pc+" ★ "+$b.rating+"% "+$b.ratingCount;ea.sellerNameCache[Nb+wc]=$b;if(wc==uc.sellerId)if(vc)Ic='<br><span>by <span id="tt'+uc.sellerId+'" style="font-weight: bold">'+ 687ad.replace(ea.la._1264,Pc)+"</span></span>";else if($b=document.getElementById("tt"+wc))$b.innerHTML=$b.innerHTML.replace(ea.la._1264,Pc)}});if(!vc){for(let dc of Object.keys(Fc))ea.sellerNamePromises[Nb+dc]=hc;ea.network.request({path:"seller/name",domainId:Nb,seller:Object.keys(Fc).join(","),graphOnly:!0}).done(hc.resolve)}}}}else if(kb.index==ea.CsvType.NEW_FBA.index||kb.index==ea.CsvType.NEW_FBM_SHIPPING.index){let Yc=ea.keepaTime.epochToMinutes(yb)-ea.keepaTime.timeShiftOffset,uc=Kb!=null&&Db!= 688null?ea.keepaTime.epochToMinutes(Kb[0])-ea.keepaTime.timeShiftOffset:Yc;if(kb.offers!=null){let Jc=[],ad=kb.index==ea.CsvType.NEW_FBA.index;for(let mc of kb.offers)if(!!mc.isFBA===ad){let vc=ea.getFirstValueWithinIntervalWithShipping(mc.offerCSV,Yc,uc);vc&&vc.length>=2&&""+ea.Money.format(vc[0]+vc[1],{sourceDomainId:Nb,targetDomainId:Nb,isDivided:!1})===Oc&&Jc.push(mc)}Jc.sort((mc,vc)=>vc.lastSeen-mc.lastSeen);if(Jc.length>0){let mc=Jc[0].sellerId,vc=ea.SellerUtil.isSellerIdAmazon(mc,Nb),Fc=ea.la._1264, 689Kc=!0;if(vc)Fc="Amazon",Kc=!1;else if(ea.sellerNameCache[Nb+mc]){let hc=ea.sellerNameCache[Nb+mc];Fc=hc.name+" ★ "+hc.rating+"% "+hc.ratingCount;Kc=!1}Ic='<br><span id="tt'+mc+'">'+Fc+"</span>";if(!vc&&(mc+"").length>5&&ea.hasDataAccessSubscription&&Kc){let hc=!!ea.sellerNamePromises[Nb+mc],dc=hc?ea.sellerNamePromises[Nb+mc]:X();dc.done($b=>{if(($b=$b.merchantNames)&&$b[mc]){var wc=$b[mc];$b=wc.name!=null?wc.name:mc;$b.length>40&&($b=$b.substring(0,37)+"\u2026");$b=$b+" ★ "+ 690wc.rating+"% "+wc.ratingCount;ea.sellerNameCache[Nb+mc]=wc;!hc&&(wc=document.getElementById("tt"+mc))&&(wc.innerHTML=$b)}});hc||(ea.sellerNamePromises[Nb+mc]=dc,ea.network.request({path:"seller/name",domainId:Nb,seller:mc,graphOnly:!0}).done(dc.resolve))}}}}ea.showReferencePrice(Nb)&&(Oc+=' <span style="color:#444;">'+ea.Money.format(Lb,{sourceDomainId:Nb,isDivided:!0})+"</span>");fc[Mb]="<span>"+kb.labelText+"</span><br>"+Oc+Ic}else{let Ic=kb.labelText;if(kb.labelReferenceHistory!=null){let Oc= 691ea.keepaTime.epochToMinutes(parseInt(Zb.x))-ea.keepaTime.timeShiftOffset;Oc<ea.changeV5&&(Ic=kb.getLabelText(Oc))}fc[Mb]="<span>"+Ic+"</span><br>"+ea.NumberUtil.format(Lb)}Tc[Mb]=Lb;let Qb=kb.yaxis.max,Cc=kb.yaxis.min;kb.index!=ea.CsvType.SALES.index&&kb.yaxis.n!=2||ea.storage.salesRankInverse!="1"||(Qb=kb.yaxis.min,Cc=kb.yaxis.max);let qc=Qb-Cc,Zc=1-(Qb-Lb)/qc,Rc=1-(Qb-Zb.y)/qc;nc=Math.max(Zc*(Yb|0),nc);let Uc=ea.CsvType.getObject(kb.index);Uc&&(kb.points.show||kb.lines.show||kb.dashes.show)&&Uc.isOfferData&& 692Math.abs(Zc-Rc)<.02&&(Wc=!0)}if(!(kb.index>99&&kb.index<200))try{Qc.push({auto:void 0,point:[Db[0],Number(Db[1]),Kb[0],Number(Kb[1])],series:kb,seriesIndex:Mc})}catch(Qb){}}}g.style.cursor=Wc?"pointer":"";Cb.style.display="block";for(let kb of zb)kb.style.display="";try{let kb=$a.getHighlights(),Mb=[],Sb=!1;for(let yb=0;yb<kb.length;yb++){let Lb=kb[yb],Db=!1;for(let Kb=0;Kb<Qc.length;Kb++){let Qb=Qc[Kb];if(Lb.seriesIndex==Qb.seriesIndex){Lb.point[0]==Qb.point[0]?Db=!0:(Mb.push(Qb),Sb=!0);break}}Db? 693Mb.push(Lb):Sb=!0}for(let yb=0;yb<Qc.length;yb++){let Lb=Qc[yb],Db=!1;for(let Kb=0;Kb<Mb.length;Kb++){let Qb=Mb[Kb];if(Qb.seriesIndex==Lb.seriesIndex){Qb.point[0]==Lb.point[0]?Db=!0:(Mb.push(Qb),Sb=!0);break}}Db||(Sb=!0,Mb.push(Lb))}Sb&&($a.setHighlights(Mb),$a.drawOverlay())}catch(kb){}var Tb=0,Xb=0,ac=!0,zc=ja.$isSyncedWith;if(Xa&&!ea.keepaApp){let kb=rb.graphIndex;for(let Mb=zc.length-1;Mb>=0;Mb--){let Sb=r(zc[Mb].$container);if(P(Sb)){kb=zc[Mb].graphIndex;break}}rb.graphIndex!=kb&&(ac=!1)}var Bc, 694$c=function(){if(Bc===void 0){let kb=document.getElementById("moreDataGraph");Bc=!kb||ta.getComputedStyle(kb).display!="none"}return Bc},Ec=Yb|0,bc=ic|0,sc=!1;if(rb.graphIndex==5)try{let kb=g.parentElement&&g.parentElement.parentElement;kb&&kb.className!=null&&kb.className.startsWith("ag-row")&&(sc=kb.getAttribute("row-index")==(kb.parentElement?kb.parentElement.childElementCount-1:0))}catch(kb){console.error(kb)}var oc=lb?Ec:Ec+(sc?15:30);if(ac){let kb="",Mb=sc?null:rb.grid.markings,Sb=function(yb){yb.text&& 695(yb.text.indexOf("offer data")>-1&&kb!=""||Math.abs(Zb.x-yb.xaxis.from)/(Ac[0].xaxis.max-Ac[0].xaxis.min)>.003||(kb+="<br>"+yb.text))};if(Mb!=null)for(let yb in Mb)Sb(Mb[yb]);if(zc!=void 0)for(let yb=0;yb<zc.length;yb++){if(rb.graphIndex==zc[yb].graphIndex)continue;let Lb=zc[yb].grid.markings;if(Lb!=null)for(let Db in Lb)Sb(Lb[Db])}kb!=""&&(kb='<span class="markingsText">'+kb+"</span>");try{Zb.x?xb(ea.replaceHtmlEl?ea.replaceHtmlEl(sb(),(new Date(Math.floor(Zb.x)-vb*1E3*60)).formatDate(tb)+kb):mb(sb(), 696(new Date(Math.floor(Zb.x)-vb*1E3*60)).formatDate(tb)+kb)):sb().innerHTML=""}catch(yb){b(yb,"plothover");return}try{let yb=sb();yb.style.left=Oa-14+"px";yb.style.top=oc+"px";yb.style.display="block"}catch(yb){}}
696var ec=!ea.keepaApp;if(rb.graphIndex==2){let kb="";for(Eb=0;Eb<Ac.length;Eb++){let Mb=Ac[Eb];if(Mb.isSplitLine)continue;let Sb=Mb.index;fc[Sb]!=null&&typeof fc[Sb]!="undefined"&&fc[Sb]!=""&&(kb+=fc[Sb],Eb!=Ac.length-1&&(kb+="<br>"))}if(kb.length>0&&Ac.length>0){let Mb=jb(Ac[0]);Mb.tip.innerHTML= 697kb;Mb.tip.style.left=Oa+"px";Mb.tip.style.top="10px";Mb.tip.style.display="block";let Sb={collisionIndex:1,y:10,h:(ka(Mb.tip).h|0)+2,index:0,tipLeft:Oa,top:10,plotHeight:Ec,plotIndex:rb.graphIndex,originalY:10,angularMargin:0,angularDisplay:"none",relativeYAdj:-1,relativeY:-1,tip:Mb.tip,tipAngular:Mb.angular};ba[rb.graphIndex]=Ec;Mb.tip._kaCollide=Sb}}else{let kb=[[],[]],Mb=[];for(Eb=0;Eb<Ac.length;Eb++){let yb=Ac[Eb];if(yb.isSplitLine)continue;let Lb=yb.index,Db=jb(yb);if(fc[Lb]==null)continue;ec= 698!1;if(yb.index>=100&&ea.lastUrl=="#!manage"&&ea.storage.manageGridView==0)continue;let Kb=ea.replaceHtmlEl?ea.replaceHtmlEl(Db.tip,fc[Lb]):mb(Db.tip,fc[Lb]);Kb?(Pb[Lb]=Kb,Kb.style.visibility="hidden",Kb.style.display="block",Mb.push({series:yb,sIndex:Lb,j:Eb,freshTip:Kb,angularEl:Db.angular,size:null})):Pb[Lb]=Db.tip}Mb.length>0&&(Ib.style.display="block",wb.style.display="block");for(let yb of Mb)yb.size=ka(yb.freshTip);for(let yb of Mb){let Lb=yb.series,Db=yb.sIndex,Kb=yb.freshTip,Qb=Lb.yaxis;Tb= 699Qb.min;Xb=Qb.max;let Cc=Xb-Tb;(fc[Db].indexOf(ea.CsvType.getName(ea.CsvType.SALES.index))>=0||Qb.n==2)&&ea.storage.salesRankInverse=="1"&&(Tb=Qb.max,Xb=Qb.min,Cc=Xb-Tb);let qc=(1-(Xb-Tc[Db])/Cc)*Ec,Zc=(yb.size.h|0)+2,Rc=Lb.index%4;gb&&(Rc=3);let Uc,Ic,Oc,Yc=yb.size.h|0;Rc==0?(Uc=-21+nc-qc-Yc,Ic=13,Oc=-14+nc-qc):Rc==1||Rc==3?(Uc=Rc==1?-20+nc-qc-Yc:nc-qc+13,Ic=-((yb.size.w|0)+22),Oc=Rc==1?-14+nc-qc:nc-qc-1):(Uc=nc-qc,Ic=12,Oc=Uc,Uc+=12);let uc=Ic<0?0:1,Jc={collisionIndex:uc,y:Uc,originalY:Uc,h:Zc,index:yb.j, 700tipLeft:Ic,angularMargin:Oc,plotHeight:Ec,plotIndex:rb.graphIndex,angularDisplay:"block",top:Ec-nc+5,tip:Kb,relativeYAdj:-1,relativeY:-1,tipAngular:yb.angularEl};rb.graphIndex==0&&(x=nc);ba[rb.graphIndex]=Ec;Kb._kaCollide=Jc;kb[uc].push(Jc)}let Sb=yb=>{for(let Lb=0;Lb<yb.length;Lb++){let Db=yb[Lb];if(Db.relativeY===-1){let Kb=0;switch(Db.plotIndex){case 1:Kb=x+Db.top+e[1];v&&(Kb+=ba[2]+e[0]);break;case 2:Kb=x+Db.top+e[0]}Db.relativeYAdj=Kb;Db.relativeY=Db.y+Kb}}};v=ba[1]>0&&ba[2]>0;kb.forEach(function(yb){Sb(yb)}); 701kb.forEach(function(yb){yb=yb.sort((Kb,Qb)=>Kb.relativeY-Qb.relativeY);for(var Lb=!0,Db=5;Lb;){let Kb=!1;for(let Qb=0;Qb<yb.length;Qb++)Y(yb,yb[Qb])&&(Kb=!0);Kb||(Lb=!1);Db--;Db<0&&(Lb=!1)}});kb.forEach(function(yb){for(let Lb=0;Lb<yb.length;Lb++){let Db=yb[Lb];Db.tipAngular.style.marginTop=Db.angularMargin+"px";Db.tipAngular.style.display=Db.angularDisplay;Db.tip.style.visibility="";Db.tip.style.left=Db.tipLeft+"px";Db.tip.style.marginTop=Db.y+"px";Db.tip.style.display="block"}});if(Xa||ea.keepaApp|| 702!$c()){let yb=document.querySelectorAll(".flotTip"),Lb=[[],[]];for(let Db of yb){if(!P(Db))continue;let Kb=Db._kaCollide;Kb&&Lb[Kb.collisionIndex].push(Kb)}Lb.forEach(function(Db){Sb(Db)});Lb.forEach(function(Db){Db=Db.sort((Cc,qc)=>Cc.relativeY-qc.relativeY);for(var Kb=!0,Qb=5;Kb;){let Cc=!1;for(let qc=0;qc<Db.length;qc++)Db[qc].plotIndex!=0&&Y(Db,Db[qc])&&(Cc=!0);Cc||(Kb=!1);Qb--;Qb<0&&(Kb=!1)}});Lb.forEach(function(Db){for(let Kb=0;Kb<Db.length;Kb++){let Qb=Db[Kb];Qb.tipAngular.style.marginTop= 703Qb.angularMargin+"px";Qb.tipAngular.style.display=Qb.angularDisplay;Qb.tip.style.visibility="";Qb.tip.style.left=Qb.tipLeft+"px";Qb.tip.style.marginTop=Qb.y+"px";Qb.tip.style.display="block"}})}}var Nc=lb?-35:0;if(ec){let kb=ac?oc-0+4:(n(g)|0)+176+Nc;Ib.style.left=ua+"px";Ib.style.top="0px";Ib.style.height=kb+"px"}else{let kb=Ec-nc+5,Mb=ac?oc-kb+4:(n(g)|0)-(Ec-nc)+1+150+20+Nc;Ib.style.left=ua+"px";Ib.style.top=kb+"px";Ib.style.height=Mb+"px"}Ib.style.display="block";wb.style.left=Wa+"px";wb.style.top= 704aa+"px";wb.style.width=bc+"px";wb.style.display="block";Fb=!1}}},0))},{signal:nb});var rc=Hb})}})(Ob);(function(){function pa(Za){Va.active&&aa(Za)}function ua(Za){Za.button==0&&(document.body.focus(),Xa==null&&(Xa=function($a){$a.preventDefault()},document.addEventListener("selectstart",Xa),document.addEventListener("dragstart",Xa)),Ka(Va.first,Za),Va.active=!0,tb=function($a){tb=null;Xa!=null&&(document.removeEventListener("selectstart",Xa),document.removeEventListener("dragstart",Xa),Xa=null); 705Va.active=!1;aa($a);Wa()?Ua():L("plotunselected",{})},document.addEventListener("mouseup",tb,{once:!0}))}function Oa(){if(!Wa()||!Va.show)return null;var Za={},$a=Va.first,nb=Va.second,jb=Ob.getAxes();for(let xb in jb){var sb=jb[xb];if(sb.used){let mb=sb.c2p($a[sb.direction]);sb=sb.c2p(nb[sb.direction]);Za[xb]={from:Math.min(mb,sb),to:Math.max(mb,sb)}}}return Za}function Ua(){var Za=Oa();L("plotselected",{ranges:Za})}function Ka(Za,$a){var nb=ja,jb=q(g),sb=$a.pageX-jb.left-ib.left,xb=ic|0;Za.x=sb< 7060?0:sb>xb?xb:sb;
706$a=$a.pageY-jb.top-ib.top;jb=Yb|0;Za.y=$a<0?0:$a>jb?jb:$a;nb.selection.mode=="y"&&(Za.x=Za==Va.first?0:ic|0);nb.selection.mode=="x"&&(Za.y=Za==Va.first?0:Yb|0)}function aa(Za){Za.pageX!=null&&(Ka(Va.second,Za),Wa()?(Va.show=!0,Ob.triggerRedrawOverlay()):Ca(!0))}function Ca(Za){Va.show&&(Va.show=!1,Ob.triggerRedrawOverlay(),Za||L("plotunselected",{}))}function Wa(){var Za=ja.selection.minSize;return Math.abs(Va.second.x-Va.first.x)>=Za&&Math.abs(Va.second.y-Va.first.y)>=Za}var Va={first:{x:-1, 707y:-1},second:{x:-1,y:-1},show:!1,active:!1},Xa=null,tb=null;Ob.clearSelection=Ca;Ob.setSelection=function(Za,$a){var nb=ja;if(nb.selection.mode=="y")Va.first.x=0,Va.second.x=ic|0;else{var jb=ob(Za,"x");Va.first.x=jb.axis.p2c(jb.from);Va.second.x=jb.axis.p2c(jb.to)}nb.selection.mode=="x"?(Va.first.y=0,Va.second.y=Yb|0):(jb=ob(Za,"y"),Va.first.y=jb.axis.p2c(jb.from),Va.second.y=jb.axis.p2c(jb.to));Va.show=!0;Ob.triggerRedrawOverlay();!$a&&Wa()&&Ua()};Ob.getSelection=Oa;jc.bindEvents.push(function(Za, 708$a){ja.selection.mode!=null&&(Za=Hc?Hc.signal:void 0,$a.addEventListener("mousemove",pa,{signal:Za}),$a.addEventListener("mousedown",ua,{signal:Za}))});Gc=function(){return Va.show&&Wa()};yc=function(Za,$a){if(Va.show&&Wa()){$a.save();$a.translate(ib.left,ib.top);Za=B(ja.selection.color);$a.strokeStyle=Za.scale("a",.8).toString();$a.lineWidth=1;$a.lineJoin=ja.selection.shape;$a.fillStyle=Za.scale("a",.4).toString();Za=Math.min(Va.first.x,Va.second.x)+.5;let nb=Math.min(Va.first.y,Va.second.y)+.5, 709jb=Math.abs(Va.second.x-Va.first.x)-1,sb=Math.abs(Va.second.y-Va.first.y)-1;$a.fillRect(Za,nb,jb,sb);$a.strokeRect(Za,nb,jb,sb);$a.restore()}};jc.drawOverlay.push(yc);jc.shutdown.push(function(Za,$a){tb&&document.removeEventListener("mouseup",tb);Xa!=null&&(document.removeEventListener("selectstart",Xa),document.removeEventListener("dragstart",Xa),Xa=null)})})();(function(pa){if(pa&&pa.graphSeries!==void 0){var ua=pa.graphSeries;pa.graphSeries=void 0}f(ja,pa);ua!==void 0&&(pa.graphSeries=ua,ja.graphSeries= 710ua);pa&&pa.colors&&(ja.colors=pa.colors);ja.xaxis.color==null&&(ja.xaxis.color=ja.grid.color);ja.yaxis.color==null&&(ja.yaxis.color=ja.grid.color);ja.xaxis.tickColor==null&&(ja.xaxis.tickColor=ja.grid.tickColor||ja.xaxis.color);ja.yaxis.tickColor==null&&(ja.yaxis.tickColor=ja.grid.tickColor||ja.yaxis.
710color);ja.grid.borderColor==null&&(ja.grid.borderColor=ja.grid.color);ja.grid.tickColor==null&&(ja.grid.tickColor=B(ja.grid.color).scale("a",.22).toString());var Oa=ja.xaxes.length||1;for(pa=0;pa<Oa;++pa)(ua= 711ja.xaxes[pa])&&!ua.tickColor&&(ua.tickColor=ua.color),ua=f({},ja.xaxis,ua),ja.xaxes[pa]=ua;Oa=ja.yaxes.length||1;for(pa=0;pa<Oa;++pa)(ua=ja.yaxes[pa])&&!ua.tickColor&&(ua.tickColor=ua.color),ua=f({},ja.yaxis,ua),ja.yaxes[pa]=ua;for(pa=0;pa<ja.xaxes.length;++pa)na(tc,pa+1).options=ja.xaxes[pa];for(pa=0;pa<ja.yaxes.length;++pa)na(Dc,pa+1).options=ja.yaxes[pa];for(let Ua in jc)ja.hooks[Ua]&&ja.hooks[Ua].length&&(jc[Ua]=jc[Ua].concat(ja.hooks[Ua]));S(jc.processOptions,[ja])})(w);(function(){g.style.padding= 712"0";for(let Oa=g.firstElementChild,Ua;Oa;Oa=Ua)Ua=Oa.nextElementSibling,Oa.classList.contains("flot-overlay")?Oa.replaceWith(Oa.cloneNode(!1)):Oa.classList.contains("flot-base")||Oa.remove();ta.getComputedStyle(g).position==="static"&&(g.style.position="relative");var pa=ta.getComputedStyle(g);Xc=pa.fontSize;var ua=k(g,pa)|0;pa=n(g,pa)|0;Na=new Ta("flot-base",g,ua,pa);hb=new Ta("flot-overlay",g,ua,pa);ab=Na.context;Jb=hb.context;qb=hb.element;(ua=F.get(g))&&ua!==Ob&&(ua.shutdown(),hb.clear());F.set(g, 713Ob)})();ma(m);Ha(!1);pb();(function(){var pa=Hc.signal;ja.grid.hoverable&&(qb.addEventListener("mousemove",T,{signal:pa}),qb.addEventListener("mouseleave",va,{signal:pa}),qb.addEventListener("touchmove",function(ua){ua=ua.touches[0];T({pageX:ua.pageX,pageY:ua.pageY})},{signal:pa}));ja.grid.clickable&&qb.addEventListener("click",Ma,{signal:pa});document.addEventListener("visibilitychange",function(){document.visibilityState==="visible"&&ra()},{signal:pa});Na.element.addEventListener("contextrestored", 714ra,{signal:pa});hb.element.addEventListener("contextrestored",ra,{signal:pa});S(jc.bindEvents,[qb])})()}var ta=typeof window!=="undefined"?window:globalThis,ea={get CsvType(){return a(()=>CsvType)},get Money(){return a(()=>Money)},get NumberUtil(){return a(()=>NumberUtil)},get SellerUtil(){return a(()=>SellerUtil)},get keepaTime(){return a(()=>keepaTime)},get la(){return a(()=>la)},get storage(){return a(()=>storage)},get network(){return a(()=>network)},get changeV5(){return a(()=>changeV5)},get changeV5Epoch(){return a(()=> 715changeV5Epoch)},get showReferencePrice(){return a(()=>showReferencePrice)},get sellerNameCache(){return a(()=>sellerNameCache)},get sellerNamePromises(){return a(()=>sellerNamePromises)},get hasDataAccessSubscription(){return a(()=>hasDataAccessSubscription)},get keepaApp(){return a(()=>keepaApp)},get lastUrl(){return a(()=>lastUrl)},get isSnapshotPage(){return a(()=>isSnapshotPage)},get graphDateFormatIFrame(){return a(()=>graphDateFormatIFrame)},get replaceHtmlEl(){return a(()=>replaceHtmlEl)}, 716get reportBug(){return a(()=>reportBug)},get getBBEntryAtTimeWithExactTime(){return a(()=>getBBEntryAtTimeWithExactTime)},get getFirstValueWithinIntervalWithShipping(){return a(()=>getFirstValueWithinIntervalWithShipping)}},Fa="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),bb={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189, 717183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255, 718165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]},Ra=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,Sa=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/,db=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)%\s*,\s*([0-9]+(?:\.[0-9]+)?)%\s*,\s*([0-9]+(?:\.[0-9]+)?)%\s*\)/,eb=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)%\s*,\s*([0-9]+(?:\.[0-9]+)?)%\s*,\s*([0-9]+(?:\.[0-9]+)?)%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/, 719sa=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,Qa=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/;class Ta{constructor(g,m,w,I){var S=null;for(let ma=m.firstElementChild;ma;ma=ma.nextElementSibling)if(ma.classList.contains(g)){S=ma;break}S==null&&(S=document.createElement("canvas"),S.className=g,g=S.style,g.direction="ltr",g.position="absolute",g.left="0px",g.top="0px",m.appendChild(S));this.element=S;this.context=S.getContext("2d",{willReadFrequently:!0});this.pixelRatio=ta.devicePixelRatio|| 7201;this.height=this.width=0;try{this.resize(w!==void 0?w:k(m)|0,I!==void 0?I:n(m)|0)}catch(ma){b(ma),console.log(m,ma),this.resize(k(m),n(m))}}resize(g,m){if(g<=0||m<=0){g==0&&(g=400);if(m<=0)throw Error("Invalid dimensions for plot, width = "+g+", height = "+m);console.error("Invalid dimensions for plot, width = "+g+", height = "+m)}var w=this.element,I=this.pixelRatio;this.width!=g&&(w.width=g*I,w.style.width=g+"px",this.width=g);this.height!=m&&(w.height=m*I,w.style.height=m+"px",this.height=m); 721this.resetContextState()}resetContextState(){var g=this.context;
721g&&(g.restore(),g.save(),g.scale(this.pixelRatio,this.pixelRatio))}clear(){this.context&&this.context.clearRect(0,0,this.width,this.height)}}var ba=[0,0,0],e=[26,18],x=0,v=!1,C={deltaX:0,deltaY:0,distance:0,remainder:0},A={from:null,to:null,axis:null},H={from:null,to:null,axis:null},Z=["tooltipData","offers","buyBoxSellerIdHistory","labelReferenceHistory"],ca={second:1E3,minute:6E4,hour:36E5,day:864E5,month:2592E6,year:525949.2*60*1E3}, 722K=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[.25,"month"],[.5,"month"],[1,"month"],[2,"month"],[3,"month"],[6,"month"],[1,"year"]],F=new WeakMap,z={plugins:[],plot(g,m,w){return new Pa(r(g),m,w,z.plugins)},get(g){return F.get(r(g))||null},formatDate:G,color:{make:u,parse:B}};ta.Flot=z})();const docTitlePrefix="";let lastUrlCache="",overlayClickListeners=null,overlayEscapeListeners=null;function unbindOverlayClick(){overlayClickListeners?.abort();overlayClickListeners=null}function unbindOverlayEscape(){overlayEscapeListeners?.abort();overlayEscapeListeners=null} 723const NavigationEvents=(()=>{var a=[];return{subscribe:b=>{typeof b!=="function"||a.includes(b)||a.push(b)},unsubscribe:b=>{a=a.filter(c=>c!==b)},notify:b=>{[...a].forEach(c=>{try{c(b)}catch(d){console.error("Error in navigation event listener:",d)}})}}})(); 724function loadPage(a){if(overlayClosed)overlayClosed=!1;else{var b=document.getElementById("productOverlay");if(DomUtil.isVisible(b)){if(document.getElementById("detailProductPage")?.remove(),DomUtil.hide(document.getElementById("overlayShadow")),DomUtil.hide(b),lastUrlCache===a)return}else if(a!=="#!product"||a!=="#!track")lastUrlCache=a;QuotaUI.setupWidget();sendHelloGraph();if(a==="#!widgets")window.location.hash="#!imageapi";else switch((b=document.getElementById("contentAlign"))&&Object.assign(b.style, 725{display:""}),NavigationEvents.notify(a),syncNavLeftPanel(a),a){case "#!":generateStartPage();break;case "#!addon":generateApps();break;case "#!affiliate":generateAffiliate();break;case "#!android":case "#!app":generateApps();break;case "#!api":generatePriceDataAPI();break;case "#!bestseller":generateBestSeller();break;case "#!bot":generateApps();break;case "#!categorytree":generateCategoryTree();break;case "#!channels":case "#!settings":case "#!upgrade":generateSettings();break;case "#!support":generateSupport(); 726break;case "#!data":generateData();break;case "#!deals":generateDeals();break;case "#!disclaimer":generateDisclaimer();break;case "#!extguest":generateExtGuest();break;case "#!features":generateFeatures();break;case "#!finder":generateFinder();break;case "#!imageapi":generateImageAPI();break;case "#!manage":generateManage();break;case "#!news":generateNews();break;case "#!notification":case "#!notificationAPI":generateNotification();break;case "#!product":generateProduct();break;case "#!search":generateSearch(); 727break;case "#!seller":generateSeller();break;case "#!sellerlookup":generateSellerLookup();break;case "#!terms":generateTerms();break;case "#!cancel":generateCancel();break;case "#!topseller":generateTopSeller();break;case "#!tracking":generateTracking();break;case "#!viewer":generateViewer();break;case "#!expired":generateExpired()}}} 728function callSubPage(a){var b=window.location.hash.split("/");if(b[0]!="")if(la==null)languagePromise.done(()=>setTimeout(()=>{la!=null&&callSubPage(a)},0));else if(a===0||a===2)switch(b[0]){case "#!addon":generateApps();break;case "#!affiliate":generateAffiliate();break;case "#!android":case "#!app":generateApps();break;case "#!api":generatePriceDataAPI();break;case "#!bestseller":generateBestSeller();break;case "#!bot":generateApps();break;case "#!categorytree":generateCategoryTree();break;case "#!channels":case "#!settings":case "#!upgrade":SettingsPage.init(); 729break;case "#!deals":dealWrapperInstance.get().init();break;case "#!disclaimer":generateDisclaimer();break;case "#!support":b.length>1&&(b=document.getElementById("faq-"+b[1]))&&b.tagName==="DETAILS"&&(b.open=!0,b.scrollIntoView({behavior:"smooth",block:"center"}));break;case "#!news":if(b.length>1){let c=document.getElementById("news-"+b[1]);c&&(c.scrollIntoView({behavior:"smooth",block:"start"}),c.style.transition="box-shadow 0.5s",c.style.boxShadow="0 0 10px var(--color-pro-500)",setTimeout(()=> 730c.style.boxShadow="",1500))}break;case "#!extguest":generateExtGuest();break;case "#!finder":generateFinder(a===0);break;case "#!imageapi":generateImageAPI();break;case "#!manage":generateManage();break;case "#!product":productUpdate();break;case "#!search":searchUpdate();break;case "#!seller":generateSeller();break;case "#!sellerlookup":generateSellerLookup();break;case "#!terms":generateTerms();break;case "#!cancel":generateCancel();break;case "#!topseller":generateTopSeller();break;case "#!viewer":generateViewer(a=== 7310)}else switch(b[0]){case "#!addon":generateApps();break;
731case "#!affiliate":generateAffiliate();break;case "#!android":case "#!app":generateApps();break;case "#!api":generatePriceDataAPI();break;case "#!bestseller":generateBestSeller();break;case "#!bot":generateApps();break;case "#!categorytree":generateCategoryTree();break;case "#!channels":case "#!settings":case "#!upgrade":generateSettings();break;case "#!deals":generateDeals();break;case "#!disclaimer":generateDisclaimer();break;case "#!extguest":generateExtGuest(); 732break;case "#!features":generateFeatures();break;case "#!finder":generateFinder();break;case "#!imageapi":generateImageAPI();break;case "#!manage":generateManage();break;case "#!news":generateNews();break;case "#!product":generateProduct();break;case "#!search":generateSearch();break;case "#!seller":generateSeller();break;case "#!sellerlookup":generateSellerLookup();break;case "#!terms":generateTerms();break;case "#!cancel":generateCancel();break;case "#!topseller":generateTopSeller();break;case "#!viewer":generateViewer()}} 733function contentTopOffset(){return 66+(keepaNav?keepaNav.subHeight():0)+"px"}function setColumnLayout(a="text"){var b=document.getElementById("contentAlign");b&&(b.removeAttribute("style"),b.dataset.layout=a,b.style.marginTop=contentTopOffset())}function insertPage(a,b){replaceHtml("bodyPanel",a);setColumnLayout(b)} 734function tabSwitcher(a){var b=document.querySelector("#"+(a?a:"icon-text-tab-bar"));if(!b)return{listen(){},updatePanel(){},activeTabIndex:0,tabCount:0};var c=new mdc.tabs.MDCTabBar(b);c.tabCount=b.querySelectorAll(".mdc-tab").length;var d=document.querySelector(".panels");c.preventDefaultOnClick=!0;var f=b?b.querySelector(".mdc-tab-bar__indicator"):null;if(f&&c.foundation_){let k=!1;c.foundation_.layoutIndicator_=()=>{var n=b.querySelector(".mdc-tab.mdc-tab--active");if(n){var q=b.getBoundingClientRect(); 735q.width&&(n=n.getBoundingClientRect(),k||(f.style.transition="none"),f.style.transform=`translateX(${n.left-q.left}px) scaleX(${n.width/q.width})`,k||(f.offsetWidth,f.style.transition="",f.style.visibility="visible",k=!0))}};c.layout();document.fonts&&document.fonts.ready&&document.fonts.ready.then(()=>c.layout()).catch(()=>{})}c.updatePanel=k=>{if(!isNaN(k)){var n=d.querySelector(".panel.active");n&&n.classList.remove("active");(k=d.querySelector(".panel:nth-child("+(Number(k)+1)+")"))&&k.classList.add("active")}}; 736c.listen("MDCTabBar:change",function({detail:k}){c.updatePanel(k.activeTabIndex)});return c}function setTabSubUrl(a){a=String(a??"");a!==lastSubUrl&&(lastSubUrl=a,history.replaceState(null,"",a?lastUrl+"/"+a:lastUrl))} 737const PageLayoutGrid=(()=>({init:a=>{var b=document.querySelector('meta[name="viewport"]');b&&(b.content="width=device-width, initial-scale=1.0");document.getElementById("content")?.classList.add("-grid");if(b=document.getElementById("contentAlign"))b.removeAttribute("style"),b.removeAttribute("data-layout"),b.classList.add("mdc-layout-grid","container");(b=document.getElementById("bodyPanel"))&&b.classList.add("mdc-layout-grid__inner",`content--${a}`);var c=()=>{insertPage("");var d=document.querySelector('meta[name="viewport"]'); 738d&&(d.content="");document.getElementById("content")?.removeAttribute("class");document.getElementById("contentAlign")?.removeAttribute("class");(d=document.getElementById("bodyPanel"))&&d.classList.remove("mdc-layout-grid__inner",`content--${a}`);NavigationEvents.unsubscribe(c)};NavigationEvents.subscribe(c)},initBodyPanel:a=>{replaceHtml("bodyPanel",a);if(a=document.getElementById("bodyPanel"))a.style=""}}))(); 739function generateIndex(){try{storage.getItem("token")}catch(b){reportBug(b,"No localStorage"),alert("Keepa.com works best in modern browsers. Please update your browser. [Error: No localStorage access possible. If your browser is up to date, please check your browser settings to allow localStorage access.]")}if(document.getElementById("initPage")){var a=document.querySelector('meta[name="viewport"]');a&&(a.content="")}a=`<div id="productOverlay" class="hidden"> 740 <div id="productOverlay-close" title="${la._193}"><i class="fa fa-times-circle fa-2x"></i></div> 741</div>
742<div id="overlayShadow" class="hidden"></div> 743${getLoginForm()} 744<header id="keepaNav" class="knav--fixed"></header> 745<div id="leftPanel"></div> 746<div id="contentAlign" data-layout="text" style="margin-top: ${contentTopOffset()};"> 747<div id="bodyPanel" class="content"></div> 748</div>`;replaceHtmlEl(document.getElementById("content"),a);initKeepaNav()}function generateStartPage(){StartPage.init()}function generateDeals(){document.title=`${docTitlePrefix}${la._12}`;if(inputDetected){var a=`<div id="dealCategorySearch" class="catSearch"> 749 <i class="fa fa-search catSearch__icon"></i> 750 <input maxlength="28" id="dealCategorySearchBar" autocomplete="off" placeholder="${la._534}"/> 751 <span id="submitDealCategorySearch" class="catSearch__clear" role="button" tabindex="0"><i class="fa fa-times"></i></span> 752 </div>`,b=showReferencePrice(Number(storage.domain))?"productPage with-reference":"productPage";insertPage(` 753 <div class="filterContainer unselectable"> 754 <div id="filterBar" class="filterBar lightShadow"> 755 <div class="catBar__head"> 756 <div id="filterScope" class="catBar__scope"></div> 757 ${a} 758 </div> 759 <div id="categorySearchResults" style="display: none;"></div> 760 <div id="filterBarContent"> 761 <div id="filterCats" class="catGrid"></div> 762 </div> 763 </div> 764 </div> 765 <div style="font-size: 12px; color: #999; padding-left: 12px;" id="dealsTitleSearchResults"></div> 766 <div id="productPage0" class="${b}"></div> 767 <div id="loadingIcon"></div> 768 <div class="button" id="submitDealQuery">${la._1424}</div>`,"rail");dealWrapperInstance.get().init()}else replaceHtml("leftPanel",""),replaceHtml("bodyPanel",'<div id="loadingIcon"></div>'),setColumnLayout("rail"),DomUtil.show(document.getElementById("loadingIcon")),dealsQueued=!0}const TrackingPage=(()=>{var a=()=>{var b=(c,d,f,k,n=!1)=>` 769 <div class="card -nav -track${n?" -featured":""}" onclick="${f==="#!search"?`if (!openNavSearch(event)) location.href='${f}'`:`location.href='${f}'`}"> 770 <i class="card-icon fa fa-fw ${k}"></i> 771 <h4 class="card-title">${c}</h4> 772 <p class="card-desc">${d}</p> 773 </div>`;b=` 774 <div class="dashboard"> 775 <h3 class="group-header">Find & Manage Products</h3> 776 <div class="grid"> 777 ${b(la._20,la._153,"#!manage","fa-bell",!0)} 778 ${b(la._412,la._519,"#!notification","fa-bell-o",!0)} 779 ${b(la._19,la._946,"#!search","fa-search")} 780 ${b(la._12,la._33,"#!deals","fa-shopping-bag")} 781 ${b("Amazon "+la._32,la._37,"#!addon","fa-cloud-download")} 782 </div> 783 </div> 784 `;insertPage(b);document.querySelectorAll("[data-link]").forEach(c=>{c.addEventListener("click",()=>{window.location.hash="#!"+DomUtil.data(c,"link")})})};return{init:()=>{document.title=docTitlePrefix+la._13;a()}}})();function generateTracking(){TrackingPage.init()}function generateManage(){typeof storage.manageGrid!=="undefined"&&storage.manageGrid||(storage.manageGrid=!0,settings.send());network.withGrid(()=>{GridManage.init()})} 785function generateNotification(){var a=document.location.hash==="#!notificationAPI";document.title=`${docTitlePrefix}${a?"API":""}${la._412}`;insertPage(` 786 <h3 class="group-header">${la._519}</h3> 787 <span class="card" style="width:960px;"> 788 <div id="notificationFilter" class=" text-right"></div> 789 <div id="notificationContent"> 790 <div id="loadingIcon" style="text-align: center; clear: both;"></div> 791 </div> 792 </span>`);var b=!a&&get("onlyNotificationsWithTracking")==="1";if(!a){let k=material.getSwitch("notificationWithTracking",b,!1,la._1418);replaceHtml("notificationFilter",`<form id="notificationFilterForm" class="my-2">${k}<hr class="-track"></form>`);material.init("#notificationFilterForm");setTimeout(()=>{document.getElementById("notificationWithTracking-switch").addEventListener("change",n=>{b=n.target.checked;f(b);set("onlyNotificationsWithTracking",n.target.checked?"1":"0");settings.send(); 793n.target.blur()})},0)}var c=(k,n,q)=>{var r=Deferred();q=material.getButton(`${k}Submit`,q,null,"trash");var u=material.getButton(`${k}Cancel`,la._380,null,"ban",!1,!0);n=`<div style="${isMobile?"":"width:400px;"}margin-bottom:20px;">${n}</div> 794 <form name="${k}" id="${k}"> 795 ${q} ${u} 796 </form>`;material.init(`#${k}`);setTimeout(()=>{document.querySelectorAll(`#${k} button`).forEach(B=>{B.addEventListener("click",t=>{t.preventDefault();r.resolve({action:t.currentTarget.id===`${k}Submit`?"submit":"cancel"})})})},0);return{onConfirm:r.promise(),html:n}},d=k=>{if(!k||k.length===0)return[];var n=CsvType.getObjectNamesSortedTracking(),q=new Map;
796n.forEach((u,B)=>{q.set(u,B)});k.sort((u,B)=>u.asin<B.asin?-1:u.asin>B.asin?1:u.notificationDomainId<B.notificationDomainId?-1:u.notificationDomainId> 797B.notificationDomainId?1:u.createDate-B.createDate);n=[];var r=null;for(let u of k){k=`${u.asin}_${u.notificationDomainId}_${u.createDate}_${u.trackingNotificationCause}_${u.csvType}_${u.notificationId}`;if(r===null||u.asin!==r.asin||u.notificationDomainId!==r.notificationDomainId||Math.abs(u.createDate-r.representativeCreateDate)>1)r!==null&&(r.originals.sort((B,t)=>{B=CsvType.getObjectName(B.csvType);t=CsvType.getObjectName(t.csvType);B=q.has(B)?q.get(B):Infinity;t=q.has(t)?q.get(t):Infinity;return B- 798t}),r.isMerged=r.originals.length>1,n.push(r)),r={asin:u.asin,title:u.title,image:u.image,notificationDomainId:u.notificationDomainId,domainId:u.domainId,metaData:u.metaData,representativeCreateDate:u.createDate,isMerged:!1,originals:[],originalUids:[],sentVia:u.sentNotificationVia};r.originals.push({createDate:u.createDate,currentPrices:u.currentPrices,csvType:u.csvType,coupon:u.coupon,notificationDomainId:u.notificationDomainId,sentNotificationVia:u.sentNotificationVia,offerRating:u.offerRating, 799offerSellerId:u.offerSellerId,offerSellerName:u.offerSellerName,trackingNotificationCause:u.trackingNotificationCause});r.originalUids.push(k)}r!==null&&(r.originals.sort((u,B)=>{u=CsvType.getObjectName(u.csvType);B=CsvType.getObjectName(B.csvType);u=q.has(u)?q.get(u):Infinity;B=q.has(B)?q.get(B):Infinity;return u-B}),r.isMerged=r.originals.length>1,n.push(r));n.sort((u,B)=>B.representativeCreateDate-u.representativeCreateDate);return n},f=async k=>{replaceHtml("notificationContent",'<div id="loadingIcon" style="text-align: center; clear: both;"></div>'); 800try{var n=await network.request({path:"user/notification",type:"website",isAPI:a,sinceCreateDate:0,onlyNotificationsWithTracking:k});a||(markNavAlertsSeen(keepaTime.now()),pushNavTracking({alertsNew:0}));let u=d(n.notifications);k="";if(u.length>0){let da=GraphService.getAvailableGraphTypes(),Y;try{Y=JSON.parse(get("showGraphs"))}catch(X){Y=graph.getDefaultShowGraphSetting(),reportBug(X,`${get("showGraphs")} ${X}`)}for(let X of u){let {asin:P,domainId:ka,image:D,isMerged:W,metaData:N,originals:ha, 801originalUids:V,representativeCreateDate:O,sentVia:wa,title:La}=X,{notificationDomainId:Ba}=ha[0],fa=JSON.stringify(V),ia=imageUrlBuilder(D,100),Aa=getAmazonRedirectByDomain(Ba,P),Ia=n="";try{let Fa=JSON.parse(N);n=Fa.tags?.join(", ")||"";Ia=Fa.memo||""}catch{}let Ga="",Ya=new Set;for(let Fa of ha){let bb=CsvType.getObject(Fa.csvType);bb&&da.includes(bb.index)&&Ya.add(bb.index)}if(Ya.size>0||da.some(Fa=>Y[Fa])){let Fa=GraphService.getWebGraphTypeAllOff();da.forEach(bb=>{var Ra=Ya.has(bb),Sa=Y[bb]; 802if(Ra||Sa)Fa[bb]=1});Ga=`<div class="notification__item-graph" 803 style="background-position-y: -18px !important; 804 background-image: url(${GraphService.getUrl(P,Ba,800,150,Fa,90)});"> 805 </div>`}let Pa=new Map;for(let Fa of ha){let {currentPrices:bb,csvType:Ra,coupon:Sa,notificationDomainId:db,offerRating:eb,offerSellerId:sa,offerSellerName:Qa,trackingNotificationCause:Ta,uid:ba}=Fa,e=CsvType.getObjectName(Ra),x=CsvType[e],v=CsvType.getName(Ra),C=x.currency,A=`<i class="fa fa-circle" style="color:${x.color};"></i>`;Pa.has(C)||Pa.set(C,{details:[]});var q="",r="";let H="";if(bb!=null)if(C){q=Money.format(bb[Ra],{sourceDomainId:db,targetDomainId:ka}); 806if(currencies[db]!==currencies[ka]){let ca=Money.format(bb[Ra],{sourceDomainId:db,targetDomainId:db});q+=`<span class="text-grey-300"> (${ca})</span>`}bb[Ra]==-1&&(q=la._134);Sa<0&&(H=` (\u2705 ${Math.abs(Sa)}% ${la._211})`);if(Sa>0){H=` (\u2705 ${Money.format(Sa,{sourceDomainId:db,targetDomainId:ka})}`;if(currencies[db]!==currencies[ka]){let ca=Money.format(Sa,{sourceDomainId:db,targetDomainId:db});H+=`<span class="text-grey-300"> (${ca})</span>`}H+=` ${la._211})`}q+=H;Qa&&sa&&Ra!==CsvType.AMAZON.index&& 807(r=SellerUtil.getHtml(sa,db,Qa,eb,!1," "))}else q=CsvType.format(e,bb[Ra],db),bb[Ra]==-1&&(q=la._134);let Z=NotificationCause.getName(Ta,C);Pa.get(C).details.push({typeName:v,icon:A,valueFormatted:q,causeText:Z,sellerHtml:r,uid:ba})}q="";r=(Fa,bb)=>{var Ra='<ul class="notification-category-details-list">';
807for(let Sa of Fa.details)Ra+='<li class="notification-category-detail-item">',Ra+=`<span>${Sa.icon} ${Sa.typeName}</span> `,bb?(Ra+=`<span>- ${la._531}: ${Sa.valueFormatted}</span>`,Sa.couponText&& 808(Ra+=`<span>${Sa.couponText}</span>`),Sa.sellerHtml&&(Ra+=`<span> - ${la._554}: ${Sa.sellerHtml}</span>`)):Ra+=`<span>- ${la._863}: ${Sa.valueFormatted}</span>`,Ra+=`<br><span>${la._523}: ${Sa.causeText}</span>`,Ra+="</li>";return Ra+"</ul>"};Pa.has(!0)&&(q+=`<div class="notification-category-group"> 809 ${r(Pa.get(!0),!0)} 810 </div>`);Pa.has(!1)&&(q+=`<div class="notification-category-group"> 811 ${r(Pa.get(!1),!1)} 812 </div>`);let ta=NotificationType.getNotifiedViaText(wa),ea=a?"":`<div class="notification__item-actions"> 813 <button type="button" class="notification__action delete-btn" data-id='${fa}' data-merged="${W}" title="${la._1740}"><i class="fa fa-trash-o"></i> ${la._1737}</button> 814 <button type="button" class="notification__action -tracking delete-tracking-btn" data-asin="${P}" title="${la._1741}"><i class="fa fa-bell-slash-o"></i> ${la._1738}</button> 815 </div>`;k+=`<div class="notification__item flex"> 816 <div class="notification__item-left"> 817 <img src="${ia}"> 818 </div> 819 <div class="notification__item-right"> 820 <div class="manage-productTitle"><a href="#!product/${Ba}-${P}" class="href">${La}</a></div> 821 <div style="display:flex;justify-content: space-between;"> 822 <div>${la._520}: <span>${(new Date((O+offsetMinutes)*6E4)).formatDate("M j, Y H:i")}</span><span> (${prettyDate(Date.now()/6E4-(O+offsetMinutes))})</span></div> 823 ${ea} 824 </div> 825 <div>${la._521}: <a href="${Aa}" title="${la._99} Amazon" target="_blank" class="href no-underline">Amazon.${getTldByDomain(Ba)} <i class="fa fa-external-link"></i></a></div> 826 ${Ia?`<div>${la._808}: <span>${Ia}</span></div>`:""} 827 ${n?`<div>${la._807}: <span>${n}</span></div>`:""} 828 <div>${la._524}: <span>${ta}</span></div> 829 830 ${q} 831 ${Ga} 832 </div> 833 </div>`}}else k=`<p class="mdc-typography--body2">${la._947}</p>`;replaceHtml("notificationContent",`${a||u.length===0?"":`<div class="notification__bulk-actions"> 834 <button type="button" id="deleteAllNotifications" class="notification__action -bulk"><i class="fa fa-trash-o"></i> ${la._1739}</button> 835 </div>`}<div id="notificationsBox">${k}</div>`);let B=async(da,Y)=>{var X=[];try{if(X=JSON.parse(da),!Array.isArray(X))throw Error("Not an array");}catch(ka){X=[da]}da=[];for(let ka of X){if(typeof ka!=="string")continue;var P=ka.split("_");if(P.length<5){isTest&&console.error("Invalid notification UID format:",ka);continue}let [D,W,N,ha,V,O]=P;P={path:"user/notification",type:"delete",asin:D,domainId:W,createDate:N,trackingNotificationCause:ha};V&&V!=="undefined"&&(P.csvType=V);O&& 836O!=="undefined"&&(P.notificationId=O);da.push(network.request(P))}try{await Promise.all(da),Y&&window.keepaAnim.fadeOut(Y,{duration:300,complete:function(){Y.remove()}})}catch(ka){isTest&&console.error("Error deleting notification(s):",ka,"UIDs:",X)}},t=async(da,Y)=>{if(da){Y.disabled=!0;try{await network.request({path:"track",type:"deleteTracking",asinBatch:[da]}),document.querySelectorAll(`#notificationsBox .delete-tracking-btn[data-asin="${da}"]`).forEach(X=>{X.disabled=!0;X.classList.add("-done"); 837X.title=la._1744;X.innerHTML=`<i class="fa fa-check"></i> ${la._1744}`})}catch(X){Y.disabled=!1,isTest&&console.error("Error deleting tracking:",X,"ASIN:",da),showErrorPopup()}}};document.querySelectorAll("#notificationsBox .delete-btn").forEach(da=>{da.addEventListener("click",Y=>{var X=Y.currentTarget;Y=X.getAttribute("data-id");
837X=X.closest(".notification__item");B(Y,X)})});document.querySelectorAll("#notificationsBox .delete-tracking-btn").forEach(da=>{da.addEventListener("click",Y=>{var X= 838Y.currentTarget,P=X.getAttribute("data-asin");Y=c("deleteTrackingConfirm",la._1742,la._1738);var ka=showPopup(la._435,Y.html,!0);ka&&Y.onConfirm.done(D=>{ka.close();D.action==="submit"&&t(P,X)})})});let G=document.getElementById("deleteAllNotifications");G&&G.addEventListener("click",()=>{var da=Array.from(document.querySelectorAll("#notificationsBox .delete-btn"));if(da.length!==0){var Y=c("deleteAllConfirm",la._1743.replace("0",da.length),la._1739),X=showPopup(la._1739,Y.html,!0);X&&Y.onConfirm.done(async P=> 839{if(P.action!=="submit")X.close();else{if(P=document.getElementById("deleteAllConfirmSubmit"))P.disabled=!0,P.innerHTML=`${la._379}  <i class="fa fa-spinner fa-spin"></i>`;document.getElementById("deleteAllConfirmCancel")?.remove();for(P=0;P<da.length;P+=5)await Promise.all(da.slice(P,P+5).map(ka=>B(ka.getAttribute("data-id"),ka.closest(".notification__item"))));X.close();replaceHtml("notificationContent",`<p class="mdc-typography--body2">${la._947}</p>`)}})}})}catch(u){isTest&&console.log(u), 840replaceHtml("notificationContent",`<div>${la._error}</div>`)}};f(b)}function generateApps(){document.title=docTitlePrefix+la._14;var a=getPlatformConfig(),b=a.type==="mobile",c=getAppLinksAndBadges();a=b?`<a class="apps-hero__badge ${a.type2==="android"?"-play":"-appstore"}" href="${a.url}" target="_blank" rel="noopener"> 841 ${a.type2==="android"?c.badgeGooglePlay:c.badgeAppStore} 842 </a>`:`<a class="apps-cta" href="${a.url}" target="_blank" rel="noopener"> 843 ${a.icon?`<img src="${imgCDNUrl}${a.icon}" alt="" />`:""} 844 <span>${a.text}</span> 845 </a>`;var d=(k,n,q,r)=>` 846 <a href="${k}" title="${n}" target="_blank" rel="noopener"> 847 <img class="-browser" src="${imgCDNUrl}${q}" alt="${r}" /> 848 </a>`;c=` 849 <div class="card -featured -green apps-platforms"> 850 <div> 851 <p class="apps-platforms__label">${la._32}</p> 852 <div class="apps-platforms__row"> 853 ${d("https://chrome.google.com/webstore/detail/neebplgakaahbhdphmkckjjcegoiijjo",la._721,"chrome_128x128.png","Chrome")} 854 ${d(getEdgeLink(),la._723,"edgechromium_128x128.png","Edge")} 855 ${d("https://addons.mozilla.org/firefox/addon/keepa/",la._720,"firefox_128x128.png","Firefox")} 856 ${d("https://chrome.google.com/webstore/detail/neebplgakaahbhdphmkckjjcegoiijjo",la._722,"opera_128x128.png","Opera")} 857 </div> 858 </div> 859 <div> 860 <p class="apps-platforms__label">${la._36}</p> 861 <div class="apps-platforms__row"> 862 <a class="-play" href="${c.linkGooglePlay}" title="${la._708}" target="_blank" rel="noopener">${c.badgeGooglePlay}</a> 863 <a class="-appstore" href="${c.linkAppStore}" title="${la._709}" target="_blank" rel="noopener">${c.badgeAppStore}</a> 864 </div> 865 </div> 866 </div>`;d=[{title:la._718,desc:la._1654},{title:la._1655,desc:la._1656},{title:la._731,desc:la._727},{title:la._1659,desc:la._1660,bullets:[la._1661,la._1662,la._1663,la._1664]},{title:la._1657,desc:la._1658,only:la._35},{title:la._32,desc:la._1735}].map(k=>` 867 <li> 868 <span class="apps-checks__mark">\u2713</span> 869 <div class="apps-checks__body"> 870 <h5 class="apps-checks__title"> 871 ${k.title} 872 ${k.only?`<span class="apps-checks__tag">${k.only}</span>`:""} 873 </h5> 874 <p class="apps-checks__desc">${k.desc}</p> 875 ${k.bullets?`<ul class="apps-checks__bullets"> 876 ${k.bullets.map(n=>{var q=n.indexOf(":");return`<li>${q>0?`<b>${n.slice(0,q)}</b>${n.slice(q)}`:n}</li>`}).join("")} 877 </ul>`:""} 878 </div> 879 </li>`).join("");var f=b?[{key:"graph",alt:"Track Price History & Market Trends"},{key:"alerts",alt:"Price Drop & Availability Alerts"},{key:"search",alt:"Scan Barcodes for Instant Price Checks"},{key:"data",alt:"Unlock Deep Product Insights"},{key:"stats",alt:"Analyze Highs, Lows, & Rankings"}]:[];b=` 880 <div class="dashboard"> 881 <h3 class="group-header">${la._14}</h3> 882 883 <div class="card apps-hero"> 884 <h4 class="card-title apps-hero__title">${la._728}</h4> 885 <p class="card-desc apps-hero__lead">${b?la._1651:la._730}</p> 886 <p class="card-desc apps-hero__social">\u271c ${la._726} \u271c</p> 887 <div id="heroGraph" class="hero-graph apps-hero__chart"></div> 888 <div class="apps-hero__cta">${a}</div> 889 </div> 890 891 ${c} 892 893 <h3 class="group-header">${la._739}</h3> 894 <div class="card"> 895 <ul class="apps-checks">${d}</ul> 896 </div> 897 898 ${f.length?`<div class="card"> 899 <div class="app-store-screens"> 900 ${f.map(k=>`<img alt="${k.alt}" src="${imgCDNUrl}app-store/en-store-${k.key}-720.png" />`).join("")} 901 </div> 902 </div>`:""} 903 904 <div class="card -dimmed"> 905 <p class="card-desc"><strong>${la._187}</strong> — ${la._1734}</p> 906 </div> 907 908 <div class="card"> 909 <p class="card-desc text-center">${la._929}</p> 910 </div> 911 </div>`;insertPage(b);HeroGraph.init();ColorTip.attach(Array.from(document.querySelectorAll(".apps-platforms__row a")),{color:"black"})}function generateImageAPI(){window.location.href="https://keepa.com/api-docs/graph-image.html"} 912function generatePriceDataAPI(){document.title=docTitlePrefix+"API";isAmazonOrAWS()?(insertPage(""),window.location.hash="#!"):(insertPage('\n\t\t<div id="apiPageLoader" class="card -w-min-900 apiSkel" aria-hidden="true">\n\t\t\t<div class="apiSkel__tabs">\n\t\t\t\t<span class="apiSkel__tab"></span>\n\t\t\t\t<span class="apiSkel__tab"></span>\n\t\t\t\t<span class="apiSkel__tab"></span>\n\t\t\t\t<span class="apiSkel__tab"></span>\n\t\t\t</div>\n\t\t\t<div class="apiSkel__body">\n\t\t\t\t<span class="apiSkel__line -w80"></span>\n\t\t\t\t<span class="apiSkel__line -w55"></span>\n\t\t\t\t<span class="apiSkel__line -w70"></span>\n\t\t\t\t<span class="apiSkel__line -w40"></span>\n\t\t\t</div>\n\t\t</div>',"form"), 913priceDataAPI.init())}function generateData(){document.title=`${docTitlePrefix}Pro`;if(storage.domain!=7){document.title=la._1668;let b=` 914 <div class="card -dimmed mt-10"> 915 <h4 class="card-title">\u2139\ufe0f\ufe0f ${la._1690}</h4> 916 <div class="mt-4"> 917 ${QuotaUI.getInfo()} 918 </div> 919 </div>`;var a="";if(hasDataAccessSubscription)a=(c,d,f,k,n=!1)=>` 920 <div class="card -nav -pro${n?" -featured":""}" onclick="location.href='${f}'"> 921 <div class="card-icon">${k}</div> 922 <h4 class="card-title">${c}</h4> 923 <p class="card-desc">${d}</p> 924 </div>`,a=` 925 <div class="dashboard"> 926 927 <div class="header"> 928 <h2><img src="https://keepa.com/cdn/img/logo_pro.svg" alt="Keepa Pro" class="logo"></h2> 929 </div> 930 931 <h3 class="group-header">${la._1705}</h3> 932 <div class="grid"> 933 ${a(la._736,la._1675,"#!finder","\ud83d\udd0e",!0)} 934 ${a(la._738,la._1676,"#!viewer","\ud83d\udccb",!0)} 935 </div> 936 937 <h3 class="group-header">${la._1706}</h3> 938 <div class="grid"> 939 ${a(la._962,la._1677,"#!bestseller","\ud83c\udfc6")} 940 ${a(la._1678,la._1679,"#!topseller","\ud83d\udca1")} 941 ${a(la._909,la._897,"#!sellerlookup","\ud83c\udfea")} 942 ${a(la._1685,la._1686,"#!deals","\ud83d\udd25")} 943 </div> 944 945 <h3 class="group-header">${la._1707}</h3> 946 <div class="grid"> 947 ${a(la._966,la._1684,"#!categorytree","\ud83d\udcc2")} 948 ${a("Keepa API",la._1292,"#!api","\u2699\ufe0f")} 949 </div> 950 951 ${b} 952 </div> 953 `;else{a=storage.accountType==0?LangUtil.fill(la._1669,{promoPriceProMonth:SettingsSub
953scription.PROMO_PRICE_PRO_MONTH}):LangUtil.fill(la._1670,{promoPriceProMonth:SettingsSubscription.PROMO_PRICE_PRO_MONTH});let c=(d,f,k)=>` 954 <div class="panelList--item"> 955 <span class="panelList--icon">${k}</span> 956 <div> 957 <span class="panelList--title">${d}</span> 958 <span class="panelList--desc">${f}</span> 959 </div> 960 </div>`;a=` 961 <div class="dashboard"> 962 <div class="card -featured -pro mb-4" style="text-align: center; padding: 40px; cursor: auto;"> 963 <h3 class="mdc-typography--headline4 mb-2" style="display:flex; align-items:flex-end; justify-content:space-evenly;font-size: 2.0rem"> 964 <img src="https://keepa.com/cdn/img/logo_pro.svg" alt="Keepa Pro" class="logo"> <span>${la._1671}</span> 965 </h3> 966 <p class="mdc-typography--body1" style="width: 600px; margin-top: 20px; margin-left: 68px;">${la._1672}</p> 967 <p class="mdc-typography--body1" style="margin-top: 30px; margin-left: 115px;"> 968 <button class="mdc-button mdc-button--raised" id="openSubscription" style="transform: scale(1.2);"><i class="fa fa-shopping-bag" ></i>  ${a}</button> 969 </p> 970 </div> 971 972 <div class="card"> 973 <h3 class="mdc-typography--subtitle1 mb-4" style="border-bottom: 1px solid #eee; padding-bottom: 10px;">${la._1673}</h3> 974 <div class="mdc-typography--body2"> 975 <p class="mb-4">${la._1674}</p> 976 <div class="panelList -lg"> 977 <div> 978 ${c(la._736,la._1675,"\ud83d\udd0e")} 979 ${c(la._738,la._1676,"\ud83d\udccb")} 980 ${c(la._962,la._1677,"\ud83c\udfc6")} 981 ${c(la._1678,la._1679,"\ud83d\udca1")} 982 ${c(la._1085,la._1702,"\ud83d\uded2")} 983 ${c(la._1680,la._1681,"\ud83d\udce6")} 984 </div> 985 <div> 986 ${c(la._1682,la._1683,"\ud83d\udcca")} 987 ${c(la._1703,la._1704,"\ud83c\udfa8")} 988 ${c(la._966,la._1684,"\ud83d\udcc2")} 989 ${c(la._1685,la._1686,"\ud83d\udd25")} 990 ${c(la._1687,la._1688,"\ud83d\udd2d")} 991 ${c(la._742,la._1689,"\u2b06\ufe0f")} 992 </div> 993 </div> 994 </div> 995 </div> 996 997 ${b} 998 </div> 999 `}insertPage(a);document.getElementById("openLogin")?.addEventListener("click",()=>{DomUtil.show(document.getElementById("loginOverlay"))});document.getElementById("openSubscription")?.addEventListener("click",()=>{window.open("https://keepa.com/#!settings/1")})}else document.location.hash=""} 1000function generateFinder(a){storage.domain!=7?storage.accountType!=0&&hasDataAccessSubscription?network.withGrid(()=>{GridFinder.init(a)}):document.location.hash="#!data":document.location.hash=""}function generateViewer(a){storage.domain!=7?storage.accountType!=0&&hasDataAccessSubscription?network.withGrid(()=>{GridViewer.init(null,a===!0)}):document.location.hash="#!data":document.location.hash=""} 1001function generateExpired(){insertPage('<h1 class="headline hRed">The link expired. Please request a new email.</h1>')}function generateBestSeller(){storage.domain!=7?storage.accountType!=0&&hasDataAccessSubscription?network.withGrid(()=>{GridBestSeller.init()}):document.location.hash="#!data":document.location.hash=""}function generateSeller(){if(storage.domain!=7)if(storage.accountType!=0&&hasDataAccessSubscription){document.title=`${docTitlePrefix} ${la._148}`;insertPage(`<h1 id="sellerName" class="pro-headline">${la._148}</h1> 1002 <div id="sellerPage"> 1003 <div id="loadingIcon" style="text-align:center"></div> 1004 </div>`,"wide");DomUtil.show(document.getElementById("loadingIcon"));let d=function(){var f=document.getElementById("sellerPage");f&&(f.innerHTML=`<div class="card"><p class="card-desc">${la._149}</p></div>`)};var a=lastSubUrl.split("-");if(a.length!==2)d();else{var b=a[0],c=a[1];(a=c.match(verifyRegExp.sellerId))?(c=a[1],network.withGrid(()=>{Seller.init(b,c)})):d()}}else document.location.hash="#!data";else document.location.hash=""} 1005function generateSellerLookup(){storage.domain!=7?storage.accountType!=0&&hasDataAccessSubscription?SellerLookupPage.init(
1005):document.location.hash="#!data":document.location.hash=""} 1006const SellerLookupPage=(()=>{var a=/^[A-Z0-9]{9,21}$/,b=null,c=(ba,e,x,v)=>x.map(C=>({k:e+C.suffix,label:ba+" \u00b7 "+C.label,type:v==="%"?"pct":"range",unit:v})),d=()=>{if(b)return b;var ba=[{suffix:"30",label:"30 d"},{suffix:"90",label:"90 d"},{suffix:"365",label:"365 d"},{suffix:"Lifetime",label:la._1782}],e=ba.slice(0,3);return b=[{id:"ratings",label:la._1075,fields:[{k:"currentRating",label:la._1772,type:"pct",unit:"%"},{k:"currentRatingCount",label:la._1773,type:"range"},...c(la._1774,"ratingCount", 1007ba),...c(la._1775,"positiveRating",ba,"%"),...c(la._1776,"neutralRating",ba,"%"),...c(la._1777,"negativeRating",ba,"%"),...c(la._1778,"ratingCountDelta",e),...c(la._1779,"ratingDelta",e,"pp"),{k:"lastFeedbackDate",label:la._1780,type:"within"},{k:"lastRatingUpdate",label:la._1781,type:"within"}]},{id:"business",label:la._1765,fields:[{k:"sellerId",label:la._618,type:"list",hint:"A2L77EE7U53NWQ"},{k:"sellerName",label:la._1761,type:"text"},{k:"businessName",label:la._1515,type:"text"},{k:"isAmazon", 1008label:la._1801,type:"bool"},{k:"addressCountry",label:la._957,type:"list",hint:"de, cn, hk"},{k:"customerServicesAddressCountry",label:la._1213+" \u00b7 "+la._957,type:"list",hint:"de, cn"},{k:"businessType",label:la._1210,type:"list"},{k:"representative",label:la._1212,type:"list"},{k:"vatID",label:la._1208,type:"list"},{k:"tradeNumber",label:la._1207,type:"list"},{k:"phoneNumber",label:la._1209,type:"list"},{k:"email",label:la._5,type:"list"},{k:"address",label:la._786,type:"text"},{k:"hasBusinessDetails", 1009label:la._1783,type:"bool"},{k:"trackedSince",label:la._1196,type:"before"}]},{id:"fulfillment",label:la._1770,fields:[{k:"hasFBA",label:la._1191,type:"bool"},{k:"lastSeenOffer",label:la._1784,type:"within"},{k:"lastSeenFbaOffer",label:la._1785,type:"within"},{k:"isNotFound",label:la._1786,type:"bool"}]},{id:"storefront",label:la._1206,fields:[{k:"totalStorefrontAsins",label:la._1192,type:"range"}]},{id:"buybox",label:la._442,fields:[{k:"buyBoxNewOwnershipRate",label:la._1788,type:"pct",unit:"%"}, 1010{k:"buyBoxUsedOwnershipRate",label:la._1789,type:"pct",unit:"%"},{k:"avgBuyBoxCompetitors",label:la._1790,type:"range"}]},{id:"catalog",label:la._1767,fields:[{k:"rootCategories_include",label:la._202,type:"cats"},{k:"rootCategories_exclude",label:la._348,type:"cats"},{k:"primaryRootCategory",label:la._1791,type:"cats"},{k:"primaryRootCategoryProductCount",label:la._1792,type:"range"},{k:"brands",label:la._1793,type:"list",suggest:"brand"},{k:"primaryBrand",label:la._1794,type:"list",suggest:"brand"}, 1011{k:"primaryBrandProductCount",label:la._1795,type:"range"},{k:"competitorSellerIds",label:la._1574,type:"list",hint:"A2L77EE7U53NWQ"}
1011,{k:"productCountWithAmazonOffer",label:la._1204,type:"range"},{k:"avg30SalesRank",label:la._1800,type:"range"}]}]},f=null,k=ba=>{if(!f){f={};for(let e of d())for(let x of e.fields)f[x.k]=x}return f[ba]},n=()=>[{value:"currentRatingCount",label:la._1773},{value:"currentRating",label:la._1772},{value:"totalStorefrontAsins",label:la._1192},{value:"ratingCountDelta90", 1012label:la._1778+" \u00b7 90 d"},{value:"lastSeenOffer",label:la._1784},{value:"trackedSince",label:la._1196},{value:"avg30SalesRank",label:la._1800},{value:"sellerName",label:la._1761}],q=null,r=ba=>String(ba).replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),u=null,B=0,t=null,G=null,da=null,Y=null,X=null,P=null,ka=null,D=null,W=()=>{try{sessionStorage.setItem("sellerLookup."+Number(storage.domain),JSON.stringify({term:D.term,filters:D.filters,sort:D.sort,sortAsc:D.sortAsc, 1013page:D.page,openGroup:D.openGroup,activeOnly:!!da?.checked}))}catch(ba){}},N=()=>{var ba=null;try{ba=JSON.parse(sessionStorage.getItem("sellerLookup."+Number(storage.domain))||"null")}catch(e){return}if(ba&&typeof ba==="object"){typeof ba.term==="string"&&(D.term=ba.term);typeof ba.page==="number"&&ba.page>=0&&(D.page=ba.page);D.sortAsc=ba.sortAsc===!0;if(ba.filters&&typeof ba.filters==="object")for(let [e,x]of Object.entries(ba.filters))k(e)&&(D.filters[e]=x);n().some(e=>e.value===ba.sort)&&(D.sort= 1014ba.sort);d().some(e=>e.id===ba.openGroup)&&(D.openGroup=ba.openGroup);da&&(da.checked=ba.activeOnly===!0);if(G){G.value=D.term;let e=G.nextElementSibling;e&&e.matches("label")&&e.classList.toggle("mdc-floating-label--float-above",D.term.length>0)}}},ha=ba=>{var e=ba.trim().startsWith("-");ba=ba.replace(/\D/g,"");return ba===""?null:e?-Number(ba):Number(ba)},V=ba=>{var e=ba.target.closest("[data-field]");if(e){ba=e.dataset.field;var x=e.dataset.bound,v=k(ba);if(v){var C=JSON.stringify(D.filters),A= 1015!1;e=e.value.trim();v.type==="range"||v.type==="pct"?(v=D.filters[ba]||{},e=ha(e),e===null?delete v[x]:v[x]=e,v.gte===void 0&&v.lte===void 0?delete D.filters[ba]:D.filters[ba]=v):v.type==="cats"?(e===""?delete D.filters[ba]:(A=Sa(D.filters[ba]??""),A.includes(e)||A.push(e),D.filters[ba]=A.join(", ")),A=!0):e===""||e==="-1"?delete D.filters[ba]:v.type==="bool"?D.filters[ba]=e==="1":v.type==="within"||v.type==="before"?(x=ha(e),x===null||x<=0?delete D.filters[ba]:D.filters[ba]=x):D.filters[ba]=e;JSON.stringify(D.filters)!== 1016C&&(D.page=0,wa(),Ga(),A&&ia(),ta())}}},O=ba=>ba.fields.reduce((e,x)=>e+(D.filters[x.k]!==void 0?1:0),0),wa=()=>{Y.innerHTML=d().map(ba=>{var e=O(ba),x=D.openGroup===ba.id;return`<button type="button" class="seller-lookup__pill${e?" -on":""}${x?" -open":""}" 1017 data-group="${r(ba.id)}" aria-expanded="${x}">${escapeHTML(ba.label)}${e?`<span class="seller-lookup__badge">${e}</span>`:""}</button>`}).join("")},La={},Ba=null,fa=(ba,e)=>{if(typeof Autocomplete!=="undefined"&&!Autocomplete.get(ba)){var x=()=>{var v=String(ba.value).split(",");return v[v.length-1].trim()};new Autocomplete(ba,{classes:{"ui-autocomplete":"seller-lookup__menu"},renderItem:(v,C)=>{var A=document.createElement("li"),H=document.createElement("div");H.textContent=C.label;if(C.meta){let Z= 1018document.createElement("span");Z.className="-muted";Z.textContent=C.meta;H.appendChild(Z)}A.appendChild(H);v.appendChild(A);return A},minLength:1,source:(v,C)=>{(v=x())?network.request({path:"pro/autocomplete",content:v,domainId:Number(storage.domain),maxResults:25,type:"brand"}).done(A=>{A=(A?.suggestions??[]).map(H=>({label:H.value,meta:typeof H.count==="number"?NumberUtil.format(H.count):"",value:H.value}));C(A)}).fail(()=>C([])):C([])},select:(v,C)=>{v=C.item.value;C=Sa(ba.value);C.pop();C.includes(v)|| 1019C.push(v);ba.value=C.join(", ");ba.dispatchEvent(new Event("input",{bubbles:!0}));return!1}})}},ia=()=>{var ba=d().find(e=>e.id===D.openGroup);if(ba){X.hidden=!1;X.innerHTML=`<div class="seller-lookup__grid">${ba.fields.map(Aa).join("")}</div> 1020 <div class="seller-lookup__drawerfoot"> 1021 <button type="button" class="seller-lookup__linkbtn" data-clear-group>${la._596}</button> 1022 </div>`;for(let e of ba.fields){if(!e.suggest)continue;(ba=X.querySelector(`[data-field="${CSS.escape(e.k)}"]`))&&fa(ba,e)}}
1022else X.hidden=!0,X.innerHTML=""},Aa=ba=>{var e=D.filters[ba.k],x="slf_"+ba.k,v=ba.span?` style="grid-column:span ${ba.span}"`:"",C=ba.type==="range"||ba.type==="pct";if(C){var A=e&&e.gte!==void 0?e.gte:"";let H=e&&e.lte!==void 0?e.lte:"";A=`<div class="seller-lookup__control"> 1023 <span class="seller-lookup__seg"><input type="text" inputmode="numeric" autocomplete="off" spellcheck="false" 1024 class="seller-lookup__field" data-field="${r(ba.k)}" data-bound="gte" 1025 value="${r(A)}" placeholder="${r(la._1803)}" 1026 aria-label="${r(ba.label+" "+la._1803)}"></span> 1027 <span class="seller-lookup__seg"><input type="text" inputmode="numeric" autocomplete="off" spellcheck="false" 1028 class="seller-lookup__field" data-field="${r(ba.k)}" data-bound="lte" 1029 value="${r(H)}" placeholder="${r(la._1804)}" 1030 aria-label="${r(ba.label+" "+la._1804)}"></span> 1031 </div>`}else if(ba.type==="cats"){let H=Sa(e===void 0?"":e);A=(Ba??[]).map(Z=>`<option value="${r(Z.id)}"${H.includes(Z.id)?" disabled":""}>${escapeHTML(Z.name)}</option>`).join("");A=`<div class="seller-lookup__control"><span class="seller-lookup__seg"> 1032 <select class="seller-lookup__field" id="${x}" data-field="${r(ba.k)}"${Ba?"":" disabled"}> 1033 <option value="">${escapeHTML(la._856)}</option> 1034 ${A} 1035 </select></span></div>`}else A=ba.type==="bool"?`<div class="seller-lookup__control"><span class="seller-lookup__seg"> 1036 <select class="seller-lookup__field" id="${x}" data-field="${r(ba.k)}"> 1037 <option value="-1">${escapeHTML(la._856)}</option> 1038 <option value="1"${e===!0?" selected":""}>${escapeHTML(la._254)}</option> 1039 <option value="0"${e===!1?" selected":""}>${escapeHTML(la._255)}</option> 1040 </select></span></div>`:ba.type==="within"||ba.type==="before"?`<div class="seller-lookup__control"><span class="seller-lookup__seg"> 1041 <input type="text" inputmode="numeric" autocomplete="off" spellcheck="false" 1042 class="seller-lookup__field" id="${x}" data-field="${r(ba.k)}" 1043 value="${r(e===void 0?"":e)}" placeholder="30"></span></div>`:`<div class="seller-lookup__control"><span class="seller-lookup__seg"> 1044 <input type="text" autocomplete="off" class="seller-lookup__field -text" id="${x}" 1045 data-field="${r(ba.k)}" value="${r(e===void 0?"":e)}" 1046 placeholder="${r(ba.hint||"")}"></span></div>`;e=(e=ba.type==="cats"&&e!==void 0?Sa(e).length:0)?`(${NumberUtil.format(e)})`:ba.unit||(ba.type==="within"?la._1805:ba.type==="before"?la._1806:"");return`<div class="seller-lookup__cell"${v}> 1047 <label class="seller-lookup__fieldlabel"${C?"":` for="${x}"`}><span>${escapeHTML(ba.label)}</span>${e?`<span class="seller-lookup__unit">${escapeHTML(e)}</span>`:""}</label> 1048 ${A} 1049 </div>`},Ia=(ba,e)=>ba.type==="range"||ba.type==="pct"?(ba=ba.unit==="%"||ba.unit==="pp"?ba.unit:"",e.gte!==void 0&&e.lte!==void 0?NumberUtil.format(e.gte)+ba+" \u2013 "+NumberUtil.format(e.lte)+ba:e.gte!==void 0?"\u2265 "+NumberUtil.format(e.gte)+ba:"\u2264 "+NumberUtil.format(e.lte)+ba):ba.type==="bool"?e?la._254:la._255:ba.type==="within"?la._1807.replace("#days#",NumberUtil.format(e)):ba.type==="before"?la._1808.replace("#days#",NumberUtil.format(e)):ba.type==="cats"?Sa(e).map(x=>La[x]||x).join(", "): 1050String(e),Ga=()=>{var ba=Object.keys(D.filters);ba.length?(P.hidden=!1,P.innerHTML=`<span class="seller-lookup__chipslead">${la._1809}</span>`+ba.map(e=>{var x=k(e);return x?`<button type="button" class="seller-lookup__chip" data-remove="${r(e)}" 1051 title="${r(la._1179+": "+x.label)}"><b>${escapeHTML(x.label)}</b> ${escapeHTML(Ia(x,D.filters[e]))}<span class="seller-lookup__chipx">\u00d7</span></button>`:""}).join("")+`<button type="button" class="seller-lookup__linkbtn" data-clear-all>${la._54}</button>`):(P.hidden=!0,P.innerHTML="")},Ya=ba=>{ba=ba.trim();return a.test(ba)?SellerUtil.getLinkInternal(ba,storage.domain):null},Pa=()=>D.term.trim().length>=2||Object.keys(D.filters).length>0||!!da?.checked,ta=()=>{clearTimeout(u);W();Pa()?(Ta(la._1750), 1052u=setTimeout(db,250)):(B++,ka=null,Ta(la._1749))},ea=()=>{clearTimeout(u);W();Pa()?(Ta(la._1750),db()):(B++,ka=null,Ta(la._1749))},Fa=()=>{network.request({path:"pro/sellerfinder",domainId:Number(storage.domain),queryStats:!0}).done(ba=>{if(ba=ba?.sellerCounts){var e=document.getElementById("sellerLookupCorpus");e&&typeof ba.searchable==="number"&&(e.textContent=la._1763.replace("#total#",NumberUtil.format(ba.searchable)));(e=document.getElementById("sellerLookupActiveCount"))&&typeof ba.active=== 1053"number"&&(e.textContent=`(${NumberUtil.format(ba.active)})`)}}).fail(()=>{})},bb=()=>{network.request({path:"pro/category",type:"basic",domainId:Number(storage.domain),categoryIds:[-1
1053]}).done(ba=>{if(ba=ba?.categories){var e=[];for(let x of Object.keys(ba)){let v=ba[x]?.name;v&&v!=="?"&&(La[x]=v,e.push({id:x,name:v}))}e.sort((x,v)=>x.name.localeCompare(v.name));Ba=e;Ga();D.openGroup&&ia()}}).fail(()=>{})},Ra=()=>{var ba={perPage:25,page:D.page},e=D.term.trim();e.length>=2&&(ba.search=e);da?.checked&& 1054(ba.activeOnly=!0);e=keepaTime.now();for(let [v,C]of Object.entries(D.filters)){var x=k(v);if(x)switch(x.type){case "range":case "pct":C.gte!==void 0&&(ba[v+"_gte"]=C.gte);C.lte!==void 0&&(ba[v+"_lte"]=C.lte);break;case "bool":ba[v]=C;break;case "within":ba[v+"_gte"]=e-C*1440;break;case "before":ba[v+"_lte"]=e-C*1440;break;case "cats":x=Sa(C).map(Number).filter(A=>!isNaN(A)&&A>0);x.length&&(ba[v]=x);break;case "list":x=Sa(C);x.length&&(ba[v]=x);break;default:ba[v]=C}}D.sort&&(ba.sort=[[D.sort,D.sortAsc? 1055"asc":"desc"]]);return ba},Sa=ba=>String(ba).split(/[,\n]/).map(e=>e.trim()).filter(e=>e.length),db=()=>{var ba=++B;network.request({path:"pro/sellerfinder",domainId:Number(storage.domain),includeData:!0,sellerQuery:Ra()}).done(e=>{ba===B&&(e?.error?(ka=null,Ta(e.error.type==="rateLimited"?la._1769:la._1757)):eb(D.term,e))}).fail(()=>{ba===B&&(ka=null,Ta(la._1757))})},eb=(ba,e)=>{var x=Number(storage.domain),v=e?.merchantNames??{},C=e?.queryResult?.[x]??[],A=e?.matchedFields??{},H=typeof e?.totalResults=== 1056"number"?e.totalResults:C.length;e=e?.totalResultsCapped===!0;var Z=Ya(ba),ca=Z?ba.trim():null,K=ca!=null&&C.includes(ca);if(C.length||Z){ba=[];Z&&!K&&ba.push(`<tr class="seller-lookup__row -direct" data-href="${r(Z)}"> 1057 <td colspan="3"><a class="href" href="${r(Z)}">${la._1756.replace("#sellerId#",escapeHTML(ca))}</a></td> 1058 <td class="-num">–</td> 1059 <td class="-num">–</td> 1060 </tr>`);for(let F of C){ca=SellerUtil.getLinkInternal(F,x);let z=v[F],g=z&&z.name?escapeHTML(z.name):`<span class="-muted">${la._1758}</span>`,m=z&&typeof z.rating==="number"&&z.ratingCount>0;ba.push(`<tr class="seller-lookup__row" data-href="${r(ca)}"> 1061 <td class="seller-lookup__name"><a class="href" href="${r(ca)}">${g}</a></td> 1062 <td class="seller-lookup__id">${escapeHTML(F)}</td> 1063 <td class="seller-lookup__matched">${Qa(A[F])}</td> 1064 <td class="-num">${m?z.rating+"%":"–"}</td> 1065 <td class="-num">${m?NumberUtil.format(z.ratingCount):"–"}</td> 1066 </tr>`)}ka=Z&&!K?Z:C.length?SellerUtil.getLinkInternal(C[0],x):Z;x=(e?la._1760:la._1752).replace("#shown#",NumberUtil.format(C.length)).replace("#total#",NumberUtil.format(H));t.innerHTML=`<div class="seller-lookup__resulthead"> 1067 <span class="seller-lookup__count">${x}</span> 1068 <label class="seller-lookup__sort">${la._178} 1069 <select id="sellerLookupSort">${n().map(F=>` 1070 <option value="${r(F.value)}|desc"${D.sort!==F.value||D.sortAsc?"":" selected"}>${escapeHTML(F.label)} \u2193</option> 1071 <option value="${r(F.value)}|asc"${D.sort===F.value&&D.sortAsc?" selected":""}>${escapeHTML(F.label)} \u2191</option>`).join("")}</select> 1072 </label> 1073 </div> 1074 <table class="seller-lookup__table"> 1075 <thead> 1076 <tr> 1077 <th>${la._1753}</th> 1078 <th>${la._618}</th> 1079 <th>${la._1759}</th> 1080 <th class="-num">${la._1754}</th> 1081 <th class="-num">${la._1755}</th> 1082 </tr> 1083 </thead> 1084 <tbody>${ba.join("")}</tbody> 1085 </table> 1086 ${sa(C.length,H,e)}`}else ka=null,Ta(la._1751)},sa=(ba,e,x)=>{var v=D.page>0;ba=ba>=25&&(x||(D.page+1)*25<e);return v||ba?`<div class="seller-lookup__pager"> 1087 <button type="button" class="seller-lookup__linkbtn" data-page="${D.page-1}"${v?"":" disabled"}>${la._614}</button> 1088 <span class="seller-lookup__corpus">${la._292} ${D.page+1}</span> 1089 <button type="button" class="seller-lookup__linkbtn" data-page="${D.page+1}"${ba?"":" disabled"}>${la._612}</button> 1090 </div>`:""},Qa=ba=>{if(!Array.isArray(ba)||!ba.length)return"–";q||={sellerName:la._1761,businessName:la._1515,address:la._786,sellerId:la._618,vatID:la._1208,tradeNumber:la._1207,email:la._5,representative:la._1212};var e=q;return ba.map(x=>escapeHTML(e[x]??x)).join(", ")},Ta=ba=>{t.innerHTML=`<p class="seller-lookup__hint">${escapeHTML(ba)}</p>`};return{init:()=>{document.title=docTitlePrefix+" "+la._909;D={term:"",filters:{},openGroup:null,sort:"currentRatingCount",sortAsc:!1,page:0}; 1091var ba=`<h3 id="sellerName" class="group-header">${la._909}</h3> 1092 <div class="card -w-fit-content -w-min-800"> 1093 <p>${la._910}</p> 1094 <form id="sellerLookupForm" autocomplete="off"> 1095 <div class="seller-lookup__searchrow"> 1096 <div class="seller-lookup__input">${material.getInput(!1,null,"sellerLookupId",la._1748,!1,"sellerLookupId",null,"",!0)}</div> 1097 <div class="seller-lookup__options" title="${r(la._1764)}
1097"> 1098 ${material.getCheckbox("sellerLookupActive",`${la._1762} <span id="sellerLookupActiveCount" class="seller-lookup__corpus"></span>`,!1,!1,"sellerLookupActive")} 1099 </div> 1100 </div> 1101 </form> 1102 <div id="sellerLookupShelf" class="seller-lookup__shelf"></div> 1103 <div id="sellerLookupDrawer" class="seller-lookup__drawer" hidden></div> 1104 <div id="sellerLookupChips" class="seller-lookup__chips" hidden></div> 1105 <p id="sellerLookupCorpus" class="seller-lookup__corpus"></p> 1106 <div id="sellerLookupResults" class="seller-lookup__results" aria-live="polite"></div> 1107 </div>`;insertPage(ba,"wide");material.init("#sellerLookupForm");G=document.getElementById("sellerLookupId");t=document.getElementById("sellerLookupResults");da=document.getElementById("sellerLookupActive-checkbox");Y=document.getElementById("sellerLookupShelf");X=document.getElementById("sellerLookupDrawer");P=document.getElementById("sellerLookupChips");N();wa();ia();Ga();Fa();bb();Pa()?(Ta(la._1750),db()):Ta(la._1749);G.addEventListener("input",()=>{D.term=G.value;D.page=0;ta()}); 1108da.addEventListener("change",()=>{D.page=0;ea()});document.getElementById("sellerLookupForm")?.addEventListener("submit",e=>{e.preventDefault();clearTimeout(u);(e=Ya(G.value))?document.location=e:ka&&(document.location=ka)});Y.addEventListener("click",e=>{if(e=e.target.closest(".seller-lookup__pill"))D.openGroup=D.openGroup===e.dataset.group?null:e.dataset.group,wa(),ia(),W()});P.addEventListener("click",e=>{if(e.target.closest("[data-clear-all]"))D.filters={},D.page=0,wa(),ia(),Ga(),ea();else if(e= 1109e.target.closest("[data-remove]"))delete D.filters[e.dataset.remove],D.page=0,wa(),ia(),Ga(),ea()});X.addEventListener("input",V);X.addEventListener("change",V);X.addEventListener("click",e=>{if(e.target.closest("[data-clear-group]")){if(e=d().find(x=>x.id===D.openGroup))for(let x of e.fields)delete D.filters[x.k];D.page=0;wa();ia();Ga();ea()}});t.addEventListener("click",e=>{var x=e.target.closest("[data-page]");x?(D.page=Math.max(0,Number(x.dataset.page)),ea()):e.target.closest("a")||(e=e.target.closest(".seller-lookup__row"))&& 1110e.dataset.href&&(document.location=e.dataset.href)});t.addEventListener("change",e=>{if(e=e.target.closest("#sellerLookupSort")){var [x,v]=e.value.split("|");D.sort=x;D.sortAsc=v==="asc";D.page=0;ea()}});G.focus()}}})();function generateTopSeller(){storage.domain!=7?storage.accountType!=0&&hasDataAccessSubscription?network.withGrid(()=>{GridTopSeller.init()}):document.location.hash="#!data":document.location.hash=""} 1111function generateCategoryTree(){storage.domain!=7?storage.accountType!=0&&hasDataAccessSubscription?network.withGrid(()=>{GridCategoryTree.init()}):document.location.hash="#!data":document.location.hash=""} 1112const AffiliatePage=(()=>{var a,b=r=>{network.request({path:"user/affiliate",type:"get"}).done(u=>{var B=u.affiliate;u.error||typeof B==="undefined"||B==null?c(u):d(B,r)}).fail(u=>{u.status===401&&typeof u.affiliate!=="undefined"&&u.affiliate!==null?d(u.affiliate,r):c(u)})},c=r=>{var u=Error(`${r.msg?`${r.msg}<br>`:""}${r.error?`[${r.error.type}] ${r.error.message}<br>`:""}Status: ${r.status}`);u.status=r.status;showErrorPopup(u)},d=(r,u)=>{insertPage(`<h3 class="group-header">${la._779}</h3> 1113 <div class="card block--affiliate"> 1114 <div id="affiliateContent"></div> 1115 </div>`);var B=document.getElementById("affiliateContent");if(B&&(u||B.innerHTML==="")){B.innerHTML='<div id="loadingIcon"></div>';DomUtil.show(document.getElementById("loadingIcon"));var t=Number(storage.accountType)===2;u={sourceDomainId:1,targetDomainId:1};var G=Money.format(r.referralFeeData,u),da=`https://get.keepa.com/d${r.affiliateId}`;da=`<p >${la._752}</p> 1116 ${t?`<div class="promotionMessage black"> 1117 <div class="copy-text">${da}</div> 1118 <span class="colorTip colorTipContainer"><span class="colorTipContent">${la._754}</span><span class="pointyTipShadow"></span><span class="pointyTip"></span></span> 1119 <div class="promotionMessageIcon"><i class="fa fa-files-o"></i></div> 1120 </div><br><br>`:`<p class="my-4"><a class="link--register href -resources">» ${la._749}</a></p>`} 1121 <p>${la._755}</p> 1122 <ul class="list--disc"> 1123 <li>${la._756}</li> 1124 <li class="affiliate-info affiliate-info--type-d">${la._758.replace("{FEE}",`<nobr>${G}</nobr>`)}</li> 1125 <li>${la._760}</li> 1126 </ul>`;var Y="",X="",P="";if(t&&(Y=`<hr class="-resources"> 1127 <p class="mdc-typography--subtitle1">${la._761}</p> 1128 <table > 1129 <tr> 1130 <th></th> 1131 <th class="cell--number">${la._762}</th> 1132 <th class="cell--number" title="${la._773.replace(/\. /g,".<br>")}">${la._763}</th> 1133 <th class="cell--number">${la._764}</th> 1134 </tr> 1135 <tr>
1136 <td title="${la._765.replace("{FEE}",G)}">Keepa Pro <i class="fa fa-info"></i></td> 1137 <td class="cell--number">${r.totalDataClicks}</td> 1138 <td class="cell--number">${r.pendingData}</td> 1139 <td class="cell--number">${r.dataUsers}</td> 1140 </tr> 1141 </table> `,X=r.balance!=null&&r.balance>0?`<p class="mt-4">${la._766} <span>${Money.format(r.balance,u)}</span></p> 1142 <p class="mt-4">${material.getButton("requestPayout",la._767,"","money")}</p>`:`<p class="mt-4">${la._768}</p>`,r.payments&&r.payments.length)){t="";for(G=r.payments.length-1;G>=0;G--){P=r.payments[G];let W="";Date.now()-P.createDate<2592E6&&(W=P.subscriptionId);t+=`<tr> 1143 <td>${(new Date(P.createDate)).formatDate("M j, Y")}</td> 1144 <td class="cell--number">${Money.format(P.totalBill,u)}</td> 1145 <td>${W?`<a href="${W}" target="_blank" class="href -resources">${la._1406}</a> <span class="text-xs">(${la._1407})</span>`:""}</td> 1146 </tr> 1147 `}P=`<br><p class="my-4">${la._802}:</p> 1148 <table> 1149 <tr> 1150 <th>${la._803}</th> 1151 <th class="cell--number">${la._805}</th> 1152 <th> </th> 1153 </tr> 1154 ${t} 1155 </table> 1156 `}B.innerHTML=`<section>${da}</section> 1157 <section> 1158 ${Y} 1159 ${X} 1160 ${P} 1161 </section> 1162 <hr class="-resources"> 1163 <section>${` 1164 <p class="mt-4">${la._771}</p> 1165 <p class="mt-4">${la._772}</p> 1166 <ul class="list--disc"> 1167 <li>${la._773}</li> 1168 <li>${la._775}</li> 1169 <li>${la._776}</li> 1170 <li>${la._778}</li> 1171 </ul> 1172 `}</section> 1173 `;B=document.querySelector(".block--affiliate .promotionMessage");var ka=B?.querySelector(".copy-text"),D=B?.querySelector(".colorTip");B?.addEventListener("click",()=>{try{navigator.clipboard.writeText(ka?.innerHTML)}catch(V){selectText(ka),document.execCommand("copy")}var {tipHeight:W,tipWidth:N}=DomUtil.measureHidden(D,V=>({tipHeight:DomUtil.height(V),tipWidth:V.getBoundingClientRect().width}))??{tipHeight:0,tipWidth:0},ha=-18-W;ha<-40&&(ha-=3);DomUtil.setStyles(D,{marginLeft:-N/2,top:ha}); 1174DomUtil.show(D,"inline")});B?.addEventListener("mouseout",()=>{setTimeout(()=>{D&&window.keepaAnim.fadeOut(D,{duration:200,complete:()=>{D.style.opacity=""}})},300)});document.querySelectorAll('input[name="affiliateType"]').forEach(W=>W.addEventListener("change",function(){var N=this.value;ka&&(ka.innerHTML=shareLinkTemplate.replace("#type#",N));document.querySelectorAll(".block--affiliate .affiliate-info").forEach(DomUtil.hide);document.querySelectorAll(`.block--affiliate .affiliate-info--type-${N}`).forEach(ha=> 1175DomUtil.show(ha))}));ColorTip.attach(".block--affiliate td, .block--affiliate th",{color:"blue"});document.getElementById("requestPayout")?.addEventListener("click",function(){f(r)});document.querySelectorAll(".link--register").forEach(W=>{W.addEventListener("click",function(){registerAnonymous()})})}},f=r=>{var u=network.request({path:"service/stripe",type:"location",dashboard:"data"});network.request({path:"service/stripe",type:"countries",dashboard:"data"}).done(B=>{u.done(t=>{var G=la._780;t= 1176k(B.countries,t.json?tryParseJSON(t.json):null,r);a=showPopup(G,t,!0);a.promise.always(()=>{b(!0)})})}).fail(()=>{showErrorPopup()})},k=(r,u,B)=>{B=`<div style="width: 204px;">${material.getInput(!0,"\\S{3,}.*","formName",la._784,"name","billing-name",la._785,!1,!0)}</div>`;var t=`<div style="width: 348px;">${material.getInput(!0,"\\S{2,}.*","formAddress",la._786,"billing street-address","billing-address",la._787,!1,!0)}</div>`,G=`<div style="width: 156px;">${material.getInput(!0,"\\S{2,}.*","formCity", 1177la._788,"billing address-level2","billing-city",la._789,!1,!0)}</div>`,da=`<div style="width: 100px;">${material.getInput(!0,"\\S{2,}.*","formPostcode",la._790,"billing postal-code","billing-zip",la._791,!1,!0)}</div>`,Y=[];for(var X in SubscriptionUtil.statesUS)Y.push({value:X,label:X});X=`<div id="formStateWrapper">${material.getSelect("formState","billing-state","",Y,"State",!1,!0)}</div>`;r=material.getCountrySelect(r,u?u.country_code:"");u=` 1178 <div id="submitAffiliateWrapper" style="margin:20px 0;">${material.getButton("submitAffiliate",la._225,"","paper-plane")}</div> 1179 <p class="mdc-typography--body2">${la._769}</p>`;B=`<div id="payoutFormWrapper" class="block block--affiliate-form"> 1180 <form id="payoutForm"> 1181 <div class="checkout-card"> 1182 <div class="card-row">${B}${t}</div> 1183 <div class="card-row">${r}${G}${da}${X}</div> 1184 </div> 1185 ${u} 1186 </form>
1187 </div>`;material.init("#payoutForm");setTimeout(()=>{var P=document.getElementById("countrySelect"),ka=()=>{var D=P?.querySelector("option:checked")?.getAttribute("id")=="US",W=document.getElementById("formStateWrapper"),N=W?.querySelector("select");D?(N&&(N.disabled=!1,N.required=!0),DomUtil.setStyles(W,{visibility:"visible"})):(N&&(N.value="",N.disabled=!0,N.required=!1),DomUtil.setStyles(W,{visibility:"hidden"}))};P?.addEventListener("change",ka);ka();document.getElementById("payoutForm")?.addEventListener("submit", 1188D=>{D.preventDefault();q()})},0);return B},n=r=>{var u="",B=!0;r.error||typeof r.affiliate==="undefined"||r.affiliate==null?(u=`<span class="tomato">${la._799}</span>`,B=!1):u=la._770;var t=material.getButton("closePopup",la._801,"window-close",null,!1,!1);replaceHtml("payoutFormWrapper",` 1189 <p class="mdc-typography--body2">${u}</p> 1190 ${B?`<p class="mdc-typography--body2"><a href="${r.url}" target="_blank" class="href -resources">${r.url}</a></p> 1191 <p class="mdc-typography--body2">${la._1405}</p>`:""} 1192 <div>${t}</div>`);document.getElementById("closePopup")?.addEventListener("click",function(G){G.preventDefault();a.close();b(!0)})},q=()=>{var r=document.getElementById("payoutForm");r={billingContact:r.querySelector("#formName")?.value,billingCountry:r.querySelector("#countrySelect option:checked").getAttribute("data-country"),billingCity:r.querySelector("#formCity")?.value,billingStreet:r.querySelector("#formAddress")?.value,billingZipCode:r.querySelector("#formPostcode")?.value,billingBusiness:!1}; 1193replaceHtml("payoutFormWrapper",'<div id="loadingIcon"></div>');DomUtil.show(document.getElementById("loadingIcon"));r={path:"user/affiliate",type:"getPayoutLink",content:JSON.stringify(r)};network.request(r).done(u=>{n(u)}).fail(u=>{replaceHtml("payoutFormWrapper",`<p class="mdc-typography--body2">${la._799}</p>`)})};return{init:b}})();function generateAffiliate(){document.title=docTitlePrefix+" "+la._779;isAmazonOrAWS()?(insertPage(""),window.location.hash="#!"):AffiliatePage.init()} 1194function generateFeatures(){document.title=docTitlePrefix+la._152;var a=(f,k,n,q)=>` 1195 <${q?`a href="${q}"`:"div"} class="card${q?" -nav -resources":""}"> 1196 <div class="card-icon">${f}</div> 1197 <h4 class="card-title">${k}</h4> 1198 <p class="card-desc">${n}</p> 1199 </${q?"a":"div"}>`,b=` 1200 <a class="card -nav -pro -featured" href="#!data"> 1201 <div class="card-icon">\ud83d\udcca</div> 1202 <h4 class="card-title">${la._740}</h4> 1203 <p class="card-desc">${la._1672}</p> 1204 <p class="card-desc" style="margin-top:8px;color:#999;">${la._736} · ${la._738} · ${la._962} · ${la._1678} · ${la._909}</p> 1205 </a>`,c=isAmazonOrAWS()?"":` 1206 <a class="card -nav -api -featured" href="#!api"> 1207 <div class="card-icon">\ud83d\udd0c</div> 1208 <h4 class="card-title">Keepa API</h4> 1209 <p class="card-desc">${la._1733}</p> 1210 </a>`;a=` 1211 <div class="dashboard"> 1212 <h3 class="group-header">${la._152}</h3> 1213 1214 <div class="card -featured -resources"> 1215 <h4 class="card-title">${la._728}</h4> 1216 <p class="card-desc">${la._1650}</p> 1217 </div> 1218 1219 <h3 class="group-header">${la._739}</h3> 1220 <div class="grid"> 1221 ${a("\ud83d\udcc8",la._718,la._1654)} 1222 ${a("\ud83d\udd14",la._1655,la._1656,"#!tracking")} 1223 ${a("\ud83d\udd25",la._12,la._1730,"#!deals")} 1224 ${a("\ud83c\udf0d",la._731,la._727)} 1225 ${a("\ud83e\udde9",la._32,la._1735,"#!addon")} 1226 ${a("\ud83d\udcf1",la._35,la._1731,"#!app")} 1227 </div> 1228 1229 <div class="card"> 1230 <h4 class="card-title text-center">${la._189.replace(/[:\uff1a]\s*$/,"")}</h4>
1231 <div id="productCountEntries" class="card-desc" style="display:flex;flex-wrap:wrap;gap:6px 28px;justify-content:center;margin-top:10px;min-height:20px;line-height:20px;"></div> 1232 </div> 1233 1234 <h3 class="group-header">${la._1732}</h3> 1235 <div class="grid"> 1236 ${b} 1237 ${c} 1238 </div> 1239 1240 <div class="card -dimmed"> 1241 <p class="card-desc"><strong>${la._187}</strong> — ${la._1734}</p> 1242 </div> 1243 </div>`;insertPage(a);if(a=document.getElementById("productCount"))a.textContent="\u2026";var d=function(){window_focus&&lastHash=="#!features"&&network.request({path:"service/features",type:"website"}).done(function(f){if(parseInt(f)!=0){var k=document.getElementById("productCountEntries");if(k&&f&&f.data&&f.data.productCount){var n=f.data.productCount,q=[7,13];f="";var r=0;for(let u=1;u<numberOfDomains;u++)q.indexOf(u)>-1||(r+=n[u],f+=`<span title="Amazon.${getTldByDomain(u)}" style="white-space:nowrap;"> 1244 <img style="margin-bottom:-1px;box-shadow:var(--shadow-md);" src="${flags[u]}"> ${NumberUtil.format(n[u])} 1245 </span>`);if(n=document.getElementById("productCount"))n.textContent=NumberUtil.format(r);k.innerHTML=f;setTimeout(d,2E3)}}})};d()}function generateExtGuest(){insertPage(`<div class="card">${`<h6 class="mdc-typography--subtitle1">${la._27}</h6> 1246 <p>${la._991}</p> 1247 1248 <p class="mdc-typography--caption mt-4">${la._901}</p>`}</div>`)}function generateNews(){document.title=docTitlePrefix+la._25;insertPage(` 1249 <div class="dashboard"> 1250 <h3 class="group-header">${la._25}</h3> 1251 <div id="newsContainer" class="flex-column" style="gap: 20px;"> 1252 <div id="loadingIcon" style="display: block; text-align: center; margin-top: 50px;"></div> 1253 </div> 1254 </div><div class="unselectable" style="line-height:40px;"> </div> 1255 `);var a=location.origin+"/news/";(async()=>{var b=document.getElementById("newsContainer");if(b)try{let k=[];try{let n=typeof is30108!=="undefined"&&is30108?"?"+Date.now():"",q=await fetch(a+"news-index.json"+n);q.ok&&(k=await q.json())}catch(n){console.error("Keepa News | Failed to fetch index:",n)}if(Array.isArray(k)&&k.length!==0){var c=n=>{var q=n.match(/^---\s*\n([\s\S]*?)\n---\s*\n([\s\S]*)$/),r={};if(q){let t=q[1];n=q[2];t.split("\n").forEach(G=>{var da=G.indexOf(":");if(da!==-1){let Y=G.slice(0, 1256da).trim();G=G.slice(da+1).trim().replace(/^['"]|['"]$/g,"");r[Y]=G}})}var u=[],B=n.replace(/\r\n/g,"\n").replace(/```[a-z]*\n?([\s\S]*?)```/g,(t,G)=>{u.push(G.trim());return`__CODEBLOCK_${u.length-1}__`}).replace(/`([^`\n]+)`/g,"<code>$1</code>").replace(/^### (.*$)/gim,"<h5>$1</h5>").replace(/^## (.*$)/gim,"<h4>$1</h4>").replace(/^# (.*$)/gim,"<h3>$1</h3>").replace(/\*\*(.*?)\*\*/gim,'<span style="font-weight:bold;">$1</span>').replace(/\*(?!\s)(.*?)\*/gim,"<em>$1</em>").replace(/\[(.*?)\]\((.*?)\)/gim, 1257'<a class="href -resources" href="$2" target="_blank" rel="noopener">$1</a>');B=B.trim().split(/\n{2,}/).map(t=>/^__CODEBLOCK_/.test(t)||/^<h[1-6]>/.test(t)?t:/^>\s/.test(t)?`<blockquote style="border-left: 3px solid rgba(0,0,0,0.1); margin-left: 0; padding-left: 15px; font-style: italic;">${t.split("\n").map(G=>G.replace(/^>\s?/,"")).join("<br>")}</blockquote>`:/^\* /.test(t)?`<ul class="list--disc -compact">${t.split(/\n(?=\* )/).map(G=>`<li>${G.replace(/^\* /,"").replace(/\n/g,"<br>")}</li>`).join("")}</ul>`: 1258`<p class="card-desc mb-4">${t.replace(/\n/g,"<br>")}</p>`).join("\n");u.forEach((t,G)=>{t=t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");B=B.replace(`__CODEBLOCK_${G}__`,`<pre style="background: rgba(0,0,0,0.05); padding: 10px; border-radius: 4px; overflow-x: auto;"><code>${t}</code></pre>`)});return{meta:r,html:B}},d=await Promise.all(k.map(async n=>{var q=typeof is30108!=="undefined"&&is30108?"?"+Date.now():"";q=await fetch(a+n+q);if(!q.ok)throw Error(`HTTP ${q.status}`);q=await q.text(); 1259q=c(q);var r=n.match(/^(\d{4}-\d{2}-\d{2})/);q.slug=r?r[1]:n.replace(/\.md$/i,"");return q}));b.innerHTML="";var f=document.createDocumentFragment();d.forEach(n=>{var q=document.createElement("div");q.className="card -resources mb-4";q.style.scrollMarginTop="120px";n.slug&&(q.id="news-"+n.slug);var r="";n.meta.date&&(r=new Date(n.meta.date),r=isNaN(r)?n.meta.date:r.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}));q.innerHTML=` 1260 <h4 class="card-title">${n.meta.title||"Untitled"}</h4> 1261 <p class="text-xs text-right mb-4" style="opacity: 0.7;"> 1262 ${r} 1263 </p> 1264 <div class="news-body"> 1265 ${n.html} 1266 </div> 1267 `;f.appendChild(q)}
1267);b.appendChild(f);setTimeout(()=>{var n=window.location.hash.split("/");if(n.length>1&&n[0]==="#!news"){let q=document.getElementById("news-"+n[1]);q&&(q.scrollIntoView({behavior:"smooth",block:"start"}),q.style.transition="box-shadow 0.5s",q.style.boxShadow="0 0 10px var(--color-pro-500)",setTimeout(()=>q.style.boxShadow="",1500))}},100)}else b.innerHTML='<div class="card -resources"><p>No news available.</p></div>'}catch(k){console.error("Keepa News | Failed to load entries:", 1268k),b.innerHTML='<div class="card -resources"><p class="error">Unable to load news updates at this time. Please try again later.</p></div>'}})()}function printTermsDocument(a,b){if(b=document.getElementById(b)){var c=window.open("","Terms and Conditions","height=800,width=1000");c&&(c.document.write("<html><head><title>"+a+"</title></head><body>"+b.innerHTML+"</body></html>"),c.document.close(),c.focus(),c.print(),c.close())}} 1269function generateTerms(){document.title=docTitlePrefix+"Terms and Conditions";insertPage('<h3 class="group-header">Terms and Conditions</h3>\n\t\t<div id="termsPanel"><div class="card -resources"><p class="card-desc">Loading\u2026</p></div></div>');network.ajax(SubscriptionUtil.termsUrl()).done(a=>{var b=document.getElementById("termsPanel");b&&(b.innerHTML='<div class="card -resources"><div id="termsPanelPrint" class="href -resources" style="float: right; cursor: pointer; position: relative; z-index: 1;"><i class="fa fa-print"></i> Print</div><div id="termsPanelDoc" style="text-align: justify;">'+ 1270a+'</div><p style="margin-top: 1.5em;"><a id="termsWithdrawalLink" class="href -resources" style="cursor: pointer;">'+la._158+"</a></p></div>",document.getElementById("termsWithdrawalLink")?.addEventListener("click",()=>{network.ajax(SubscriptionUtil.withdrawalUrl()).done(c=>showPopPopup(la._158,'<div style="padding-right: 20px; text-align:justify; max-width: 900px; max-height:'+(window.innerHeight-200)+'px; overflow-y: auto;">'+c+"</div>",!0)).fail(showErrorPopup)}),document.getElementById("termsPanelPrint")?.addEventListener("click", 1271()=>printTermsDocument("Terms and Conditions for Keepa.com","termsPanelDoc")))}).fail(()=>{var a=document.getElementById("termsPanel");a&&(a.innerHTML='<div class="card -resources"><p class="card-desc">This document ('+SubscriptionUtil.termsUrl()+') could not be loaded. Please contact <a class="href -resources" href="mailto:[email protected]">[email protected]</a>.</p></div>')})} 1272function generateCancel(){document.title=docTitlePrefix+la._1862;var a=window.location.hash.split("/");if(a[1]==="reject"&&a[2])renderCancelReject(a.slice(2).join("/"));else{cancelSubmitting=!1;var [b,c]=la._1895.split("{BOX}");a=(b.match(/\S{1,8}\u00a0?$/)||[""])[0];a=b.slice(0,b.length-a.length)+`<span class="cancel-kind__glue">${a}<input type="checkbox" id="cancelExtraordinary"`+` class="cancel-kind__box" title="${la._1866}" aria-label="${la._1866}"></span>`+c;var d=storage.accountType==2;insertPage(`<h3 class="group-header">${la._1862}</h3> 1273 <div id="cancelPage"> 1274 ${d?"":`<div class="card -resources cancel-signin"> 1275 <p class="card-desc">${la._1883}</p> 1276 ${material.getButton("cancelSignIn",la._1864,null,null,!1,!0)} 1277 </div>`} 1278 <div id="cancelAccount"></div> 1279 <div class="card -resources"> 1280 <form id="cancelForm" class="cancel-form"> 1281 <label class="cancel-form__field">${la._1868} * 1282 <input type="text" id="cancelName" maxlength="200" required autocomplete="name"> 1283 </label> 1284 <label class="cancel-form__field">${la._1869} * 1285 <input type="email" id="cancelEmail" maxlength="255" required autocomplete="email"> 1286 <span class="cancel-form__hint">${la._1870}</span> 1287 </label> 1288 <label class="cancel-form__field">${la._1871} 1289 <input type="text" id="cancelReference" maxlength="200" autocomplete="off"> 1290 </label> 1291 <div class="cancel-kind" id="cancelKind"> 1292 <label class="cancel-kind__default"> 1293 <input type="checkbox" class="cancel-kind__mark" checked disabled> 1294 <span> 1295 <span class="cancel-kind__label">${la._1894}</span> 1296 <span class="cancel-kind__sub">${la._1873}</span> 1297 </span> 1298 </label> 1299 <p class="cancel-kind__alt">${a}</p> 1300 <p class="cancel-form__warn" id="cancelExtraordinaryWarn" hidden>${la._1865}</p> 1301 <label class="cancel-form__field" id="cancelReasonWrap" hidden>${la._1867} 1302 <textarea id="cancelReason" maxlength="2000" rows="3"></textarea> 1303 </label>
1304 </div> 1305 ${material.getButton("cancelSubmit",la._1875,null,null,!1,!1)} 1306 </form> 1307 </div></div>`,"form");material.init("#cancelPage");document.getElementById("cancelSignIn")?.addEventListener("click",()=>DomUtil.show(document.getElementById("loginOverlay")));var f=document.getElementById("cancelReasonWrap"),k=document.getElementById("cancelReason"),n=document.getElementById("cancelExtraordinaryWarn"),q=document.getElementById("cancelExtraordinary");q?.addEventListener("change",()=>{f.hidden=!q.checked;n.hidden=!q.checked;(k.required=q.checked)||k.setCustomValidity("");q.closest(".cancel-kind")?.classList.toggle("-active", 1308q.checked);q.checked&&k.focus()});k?.addEventListener("input",()=>k.setCustomValidity(""));k?.addEventListener("invalid",()=>k.setCustomValidity(la._1893));d&&network.request({path:"service/cancellation",type:"list"}).done(renderCancelSubscriptions).fail(r=>console.warn("Keepa | subscription list unavailable:",r?.status));document.getElementById("cancelForm")?.addEventListener("submit",r=>{r.preventDefault();(r=document.getElementById("cancelExtraordinary")?.checked===!0)&&!k.value.trim()?(k.setCustomValidity(la._1893), 1309k.reportValidity()):submitCancelDeclaration({email:document.getElementById("cancelEmail")?.value.trim(),cancellationKind:r?"extraordinary":"ordinary",cancellationReason:r?document.getElementById("cancelReason")?.value:null,cancellationName:document.getElementById("cancelName")?.value,cancellationReference:document.getElementById("cancelReference")?.value,cancellationDate:""},document.getElementById("cancelSubmit"))})}}const renderCancelReject=a=>{document.title=docTitlePrefix+la._1862;insertPage(`<h3 class="group-header">${la._1862}</h3> 1310 <div id="cancelPage"><div class="card -resources"><p class="card-desc">${la._45}</p></div></div>`,"form");var b=(c,d)=>{var f=document.getElementById("cancelPage");f&&(f.innerHTML=`<div class="card -resources"><p class="card-title">${c}</p><p>${d}</p></div>`)};network.request({path:"service/cancellation",type:"reject",token:a}).done(()=>b(la._1888,la._1889)).fail(()=>b(la._error,la._1890))};let cancelSubmitting=!1; 1311const submitCancelDeclaration=(a,b)=>{if(!cancelSubmitting){cancelSubmitting=!0;var c=b?b.textContent:null;b&&(b.disabled=!0,b.textContent=la._45);network.request(Object.assign({path:"service/cancellation",type:"declare"},a)).done(d=>renderCancelReceipt(d)).fail(d=>{cancelSubmitting=!1;b&&(b.disabled=!1,b.textContent=c);showPopup("Error",d?.errorMsg||la._error,!0)})}},renderCancelSubscriptions=a=>{a=a?.subscriptions||[];if(a.length){var b=document.getElementById("cancelAccount");if(b){var c=a.map((d, 1312f)=>{var k=d.ends?(new Date(d.ends)).toISOString().slice(0,10):"";k=d.scheduled?LangUtil.fill(la._1886,{date:k}):k?LangUtil.fill(la._1885,{date:k}):"";return`<div class="cancel-subs__row"> 1313 <span class="cancel-subs__name">${LangUtil.htmlEscape(d.name||"")}<span class="cancel-subs__meta">${k}</span></span> 1314 ${d.scheduled?"":material.getButton("cancelSub"+f,la._1875,null,null,!1,!1)} 1315 </div>`}).join("");b.innerHTML=`<div class="card -resources"> 1316 <h4 class="card-title">${la._1884}</h4> 1317 <div class="cancel-subs">${c}</div> 1318 <p class="cancel-subs__meta cancel-subs__note">${la._1887}</p> 1319 </div>`;material.init("#cancelAccount");a.forEach((d,f)=>document.getElementById("cancelSub"+f)?.addEventListener("click",k=>submitCancelDeclaration({subscriptionId:d.id},k.currentTarget)))}}},renderCancelReceipt=a=>{var b=a?.received||a?.timeStamp||Date.now();b=(new Date(b)).toISOString().replace("T"," ").slice(0,19);a=/^[A-Za-z0-9]{1,32}$/.test(a?.hash||"")?a.hash:"";var c=document.getElementById("cancelPage");c&&(c.innerHTML=`<div class="card -resources" id="cancelReceipt"> 1320 <div id="cancelPrint" class="href -resources" style="float: right; cursor: pointer; position: relative; z-index: 1;"><i class="fa fa-print"></i> ${la._1880}</div> 1321 <p class="card-title">${la._1876}</p> 1322 <p>${LangUtil.fill(la._1877,{date:b})}</p> 1323 <p><b>${LangUtil.fill(la._1878,{id:a})}</b></p> 1324 <p>${la._1879}</p> 1325 </div>`,document.getElementById("cancelPrint")?.addEventListener("click",()=>{document.body.classList.add("print-cancel-receipt");var d=()=>document.body.classList.remove("print-cancel-receipt");window.addEventListener("afterprint",d,{once:!0});window.print();d()}))};function generateDisclaimer(){document.title=docTitlePrefix+la._26;var a="";storage.language!=3&&(a=" - Germany");a=`<h3 class="group-header">${la._26}</h3> 1326 <div class="card -resources"> 1327 <h4 class="card-title">${la._900}</h4> 1328 <div class="card-callout">${la._901}</div> 1329 1330 <h4 class="card-title">${la._168}</h4> 1331 <p class="card-desc">${la._169}</p> 1332 </div> 1333 1334 <div class="card -resources"> 1335 <h4 class="card-title">${la._170}</h4> 1336 <p class="card-desc mb-4"> 1337 Keepa GmbH<br> 1338 Berndorfer Str. 10<br> 1339 95478 Kemnath${a} 1340 </p> 1341 <p class="card-desc mb-4"> 1342 Amtsgericht Weiden i.d.OPf. HRB 5942<br> 1343 Gesch\u00e4ftsf\u00fchrer: Julian Johann, Sascha Arthur<br> 1344 USt-IdNr. (VAT-ID): DE313904564 1345 </p> 1346 <p class="card-desc"> 1347 <span class="font-bold">${la._5}: <a class="href -resources mailto" href="mailto:[email protected]?subject=Question about Keepa" target="_blank">[email protected]</a></span> 1348 </p> 1349 </div> 1350 1351 <div class="card -resources -dimmed"> 1352 <h4 class="card-title">${la._792}</h4> 1353 <p class="card-desc mb-4">${la._794}</p> 1354 <p class="card-desc mb-4">${la._150}</p> 1355 1356 <p class="card-desc"> 1357 © 2011-${(new Date).getFullYear()} ${getLogoSVG(60)}<span class="text-base">®</span><br>
1358 <a class="href -resources" href="https://keepa.com/cdn/Keepa_Logo.zip">Keepa_Logo.zip</a> 1359 </p> 1360 </div>`;insertPage(a);setTimeout(()=>{var b=document.getElementsByClassName("mailto");for(let c of b)c.addEventListener("click",d=>{d.preventDefault();d=d.target.getAttribute("href");storage.username&&(d+=" - "+storage.username);window.open(d)})})}function generateSupport(){document.title=docTitlePrefix+la._594;var a=(n,q)=>{var r=`<div class="card -resources"><h4 class="card-title">${n}</h4>`;q.forEach(u=>{r+=`<details class="-resources" id="faq-${u[2]}"> 1361 <summary>${u[0]}</summary> 1362 <div> 1363 ${u[1]} 1364 </div> 1365 </details>`});return r+"</div>"},b=a(la._1723,[[la._319,la._320,"about"],[la._323,la._324,"marketplaces"],[la._325,la._326,"account-needed"],[la._329,la._330,"update-frequency"],[la._327,la._328,"price-accuracy"]]),c=a(la._294,[[la._335,la._336,"browser-extension"],[la._732,la._734,"extension-missing"],[la._735,LangUtil.fill(la._737,{graphSettings:la._1408}),"missing-graph"]]),d=`<div class="card -resources"><h4 class="card-title">${la._928}</h4>`;[{title:la._741,entries:[[la._743,la._750,"subscribe"], 1366[la._751,la._753,"pro-cost"],[la._757,la._759,"discounts"],[la._774,la._777,"currencies"]]},{title:la._804,entries:[[la._813,la._814,"payment-methods"],[la._815,la._836,"card-declined"],[la._837,la._838,"invoice"]]},{title:la._862,entries:[[la._875,la._890,"pro-features-missing"],[la._891,la._907,"share"],[la._908,la._927,"cancel"],[la._968,la._969,"delete-account"]]}].forEach(n=>{d+=`<h6 class="card-subtitle">${n.title}</h6>`;n.entries.forEach(q=>{d+=`<details class="-resources" id="faq-${q[2]}"> 1367 <summary>${q[0]}</summary> 1368 <div> 1369 ${q[1]} 1370 </div> 1371 </details>`})});d+="</div>";a=a(la._1716,[[la._965,LangUtil.fill(la._967,{trackProduct:la._125}),"start-tracking"],[la._331,la._332,"alerts"],[la._321,la._322,"trackable-items"],[la._1717,LangUtil.fill(la._1718),"rearm-timer"]]);var f=material.getTextarea(!0,"contactBody",la._172+":*","contactBody",52),k=material.getButton("submitContactForm",la._225,null,null,!1,!1);f=`<div class="card -resources -featured"> 1372 <h4 class="card-title">${la._935}</h4> 1373 <p class="card-desc mb-4"> 1374 ${la._944} 1375 </p> 1376 <div class="card-callout">${la._945}</div> 1377 <p class="card-desc mb-4" id="contactFormToggle">${la._171}</p> 1378 ${`<form id="contactForm" class="block--mdc-typography m-y-20" style="display: none;"> 1379 <div class="m-t-0 m-b-20">${f}</div> 1380 ${k} 1381 </form>`} 1382 </div>`;k=[["","Overview & quick start"],["request-basics.html","Making requests"],["product.html","Product data & price history"],["plans-tokens.html","Plans & tokens"],["changelog.html","Changelog"]];k=isAmazonOrAWS()?"":`<div class="card -resources"> 1383 <div class="card-icon">\ud83d\udcd8</div> 1384 <h4 class="card-title">${la._1719}</h4> 1385 <p class="card-desc mb-4">${la._1720}</p> 1386 <ul class="card-links"> 1387 ${k.map(([n,q])=>`<li><a class="href -resources" href="https://keepa.com/api-docs/${n}" target="_blank" rel="noopener">${q}</a></li>`).join("")} 1388 </ul> 1389 <a class="card-cta -resources" href="https://keepa.com/api-docs/" target="_blank" rel="noopener">${la._1721}<i class="fa fa-external-link"></i></a> 1390 </div>`;insertPage(` 1391 <div class="dashboard"> 1392 <h3 class="group-header">${la._594}</h3> 1393 <div class="card -resources"> 1394 <h4 class="card-title">${la._950}</h2> 1395 <p class="card-desc">${la._963}</p> 1396 </div> 1397 <div class="grid-2-1"> 1398 <div> 1399 ${b} 1400 ${c} 1401 ${a} 1402 ${d} 1403 </div> 1404 <div> 1405 ${f} 1406 ${k} 1407 </div> 1408 </div> 1409 </div> 1410 `);material.init("#contactForm");(b=document.getElementById("contactFormToggle"))&&b.addEventListener("click",()=>{var n=document.getElementById("contactForm");n&&(n.style.display=n.style.display==="none"?"block":"none")});setTimeout(()=>{var n=window.location.hash.split("/");n.length>1&&n[0]==="#!support"&&(n=document.getElementById("faq-"+n[1]))&&n.tagName==="DETAILS"&&(n.open=!0,n.scrollIntoView({behavior:"smooth",block:"center"}));n=document.getElementsByClassName("mailto");for(let r of n)r.addEventListener("click", 1411u=>{u.preventDefault();u=u.target.getAttribute("href");storage.username&&(u+=" - "+storage.username);window.open(u)});var q=(r,u)=>{var B=document.getElementById("contactForm"),t=document.getElementById("contactBody");if(B&&t){var G=document.getElementById("contactFallback");
1411G||(G=document.createElement("div"),G.id="contactFallback",G.className="m-t-20",B.insertAdjacentElement("afterend",G));G.innerHTML=`<p class="card-desc m-b-10">${r?la._1569:u?la._1570:la._70}</p> 1412 <button type="button" id="contactCopy" class="mdc-button mdc-button--secondary" data-mdc-auto-init="MDCRipple"> 1413 <i class="fa fa-clipboard"></i> ${la._1728} 1414 </button>`;material.init("#contactFallback");var da=document.getElementById("contactCopy"),Y=()=>da.innerHTML='<i class="fa fa-clipboard"></i> '+la._1728;da.addEventListener("click",()=>{navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(t.value).then(()=>{da.innerHTML='<i class="fa fa-check"></i> '+la._1728;setTimeout(Y,1500)}).catch(()=>t.select()):t.select()});G.scrollIntoView({behavior:"smooth",block:"nearest"})}};document.getElementById("contactForm")?.addEventListener("submit", 1415r=>{r.preventDefault();if(r=document.getElementById("contactBody").value.trim()){var u="Keepa.com Feedback";storage.username&&(u+=" - "+storage.username);r="mailto:[email protected]?subject="+encodeURIComponent(u)+"&body="+encodeURIComponent(r);u=r.length>1800;var B=null;if(!u)try{B=window.open(r,"_blank")}catch(t){}q(u,!u&&!B)}})})}function generateSearch(){document.title=docTitlePrefix+la._19;insertPage(`<div id="searchPage"> ${la._176}</div> 1416 <div id="searchPageContinue"></div>`);searchUpdate()} 1417function generateProduct(){var a=document.getElementById("bodyPanel")?.innerHTML==""||document.getElementById("detailProductPage")||document.getElementById("startPage")?null:document.getElementById("productOverlay");a?(a.insertAdjacentHTML("beforeend",'<div id="detailProductPage" class="detailProductPage shadow">\n\t\t\t\t<table id="productTable">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td id="productTableImageBox">\n\t\t\t\t\t\t\t<div id="productTableImageBoxThumbs"></div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style="vertical-align: top;">\n\t\t\t\t\t\t\t<div id="productTableImageBoxMain"></div>\n\t\t\t\t\t\t\t<div id="productTableDescription"><div id="loadingIcon" style="display: block; text-align: center; clear: both; margin-top: 100px;"></div></div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t</div>'),DomUtil.setStyles(a, 1418{opacity:1,display:"block"}),DomUtil.show(document.getElementById("overlayShadow")),unbindOverlayClick(),overlayClickListeners=new AbortController,document.addEventListener("click",function(b){(b.srcelement?b.srcelement:b.target)==document.getElementById("overlayShadow")&&closeProductOverlay()},{signal:overlayClickListeners.signal}),unbindOverlayEscape(),overlayEscapeListeners=new AbortController,document.addEventListener("keydown",function(b){b.key=="Escape"&&closeProductOverlay()},{signal:overlayEscapeListeners.signal})): 1419insertPage('<div id="detailProductPage" class="detailProductPage shadow">\n\t\t\t\t<table id="productTable">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td id="productTableImageBox">\n\t\t\t\t\t\t\t<div id="productTableImageBoxThumbs"></div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td style="vertical-align: top;">\n\t\t\t\t\t\t\t<div id="productTableImageBoxMain"></div>\n\t\t\t\t\t\t\t<div id="productTableDescription"><div id="loadingIcon" style="display: block; text-align: center; clear: both; margin-top: 100px;"></div></div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t</div><div class="unselectable" style="line-height:50px;"> </div>', 1420"centred");productUpdate()}function generateSettings(){document.title=docTitlePrefix+la._8;var a=material.getTabs({tabs:[{tab:{icon:"bell-o",id:"channels",label:la._587},panel:{id:"notification-channels"},isActive:!0},{tab:{icon:"unlock",id:"subscriptions",label:la._647},panel:{id:"subscriptions-tab"}},{tab:{icon:"user-circle",id:"account",label:la._516},panel:{id:"settingsBox"}},{tab:{icon:"cog",id:"website",label:la._517},panel:{id:"settingsContent"}}],panelsClass:"appsContent"});insertPage(` 1421 <div id="settingsPage"> 1422 <div class="card -w-min-900"> 1423 ${a} 1424 </div> 1425 </div>`);SettingsPage.init()}function generateVerifyEmail(){document.title=`${docTitlePrefix}${la._358}`;insertPage(` 1426 <h3 class="group-header">${la._358}</h3> 1427 <div id="loadingIcon" style="text-align:center"></div> 1428 `);DomUtil.show(document.getElementById("loadingIcon"));var a=lastSubUrl;switch(a){case "IS_VERIFIED":var b=la._359;break;case "WAS_VERIFIED":b=la._360;break;case "VERIFY_FAILED":b=la._200;break;default:b=la._error,reportBug(`verify failed: ${a}`)}a=b;DomUtil.hide(document.getElementById("loadingIcon"));insertPage(` 1429 <h3 class="group-header">${la._358}</h3> 1430 <div class="card"> 1431 ${a} 1432 </div> 1433 <br/><br/> 1434 `)}function generatePWreset(){document.title=docTitlePrefix+la._373;var a=`<h3 class="group-header">${la._373}</h3> 1435 <div id="settingsPage"> 1436 1437 <div class="card -w-fit-content" id="settingsBox"> 1438 <form action="" id="addTrackForm" method="post" name="addTrackForm"> 1439 ${getNewPasswordHtml()} 1440 <input type="submit" id="submit" value="${la._225}"> 1441 </form> 1442 </div>
1443 </div>`;insertPage(a);document.querySelectorAll("#passBox .trackFormTable").forEach(c=>DomUtil.setStyles(c,{width:"440px"}));document.querySelectorAll("#passBox tr").forEach(c=>{c=c.firstElementChild;var d=c?.nextElementSibling,f=d?.nextElementSibling;c?.remove();d?.remove();f?.getAttribute("class")=="trackFormTable-empty"&&f.remove()});DomUtil.show(document.getElementById("passBox"));var b=!1;document.getElementById("addTrackForm")?.addEventListener("submit",function(c){c.preventDefault();if(b)c.stopPropagation(); 1444else{b=!0;if(c=document.getElementById("submit"))c.value=la._45;document.getElementById("newPW").value.trim()!=document.getElementById("newPW2").value.trim()?(document.querySelectorAll("label[for=newPW]").forEach(d=>d.insertAdjacentHTML("beforeend",`<span class="error">${la._236}</span>`)),b=!1,c&&(c.value=la._225)):(c=lastSubUrl,c==null||c.length<10?showPopup("Error","Missing reset token. Please use the reset link provided in the email. In doubt, contact [email protected].",!0):network.request({path:"user/session", 1445type:"resetpw",token:c,password:document.getElementById("newPW").value.trim()}).done(d=>{b=!1;var f=document.getElementById("settingsBox"),k=document.getElementById("submit");if(typeof d.error==="undefined"||d.error===null)f&&(f.textContent=la._376);else{switch(typeof d.error.type!=="undefined"?d.error.type:typeof d.error.code!=="undefined"?d.error.code:-1){case 1:case "invalidPassword":document.querySelectorAll('label[for="newPW"]').forEach(n=>{n.querySelectorAll(".error").forEach(q=>q.remove()); 1446n.insertAdjacentHTML("beforeend",`<span class="error">${la._74}</span>`)});k&&(k.value=la._225);break;case 2:case "invalidToken":f&&(f.textContent=la._377);break;case 3:case "userNotFound":f&&(f.textContent=la._912);break;default:reportBug("resetpassword",JSON.stringify(d)),showErrorPopup(null,!0)}window.location.hash="#!empty"}}).fail(d=>{b=!1;replaceHtml("resetForm",`<div style="width: 420px; text-align: justify; margin-right: 30px;">${la._error}</div>`);reportBug(`resetpassForm fail: ${d.status}`); 1447window.location.hash="#!empty"}))}})}function getLoginForm(){return`<div id="loginOverlay" class="hidden"> 1448 <div id="loginOverlayBox"> 1449 <div id="loginOverlay-close"><i class="fa fa-times-circle fa-2x"></i></div> 1450 <table id="loginTable" style="width:288px;" > 1451 <tr> 1452 <td> 1453 <div class="flex" style="justify-content: space-around;-webkit-justify-content: space-around;"> 1454 <div id="loginTab">${la._2}</div> 1455 <div id="registerTab" class="inactive">${la._42}</div> 1456 </div> 1457 <br> 1458 <form id="loginForm" action="" method="post"> 1459 <label class="grey" for="username">${la._4}</label> 1460 <input class="field" type="text" autocapitalize="off" autocorrect="off" name="username" autocomplete="username" id="username"> 1461 1462 <label class="grey" for="password">${la._6}</label> 1463 <span style="display: inline-block;"><input type="password" maxlength="1024" name="password" id="password" autocomplete="current-password" class="field"> 1464 <span style="color: #555;" class="fa fa-fw fa-eye field-icon toggle-password"></span></span> 1465 <a class="settings-chpw" id="pwreset" style="display: block;font-size: smaller;text-decoration: none;padding: 5px;margin-bottom: -12px;text-align: right;">${la._372}</a> 1466 <div id="registerEmailBox" class="hidden"><label class="grey" for="email">${la._5}</label> 1467 <input disabled class="field" type="text" name="email" autocomplete="email" id="emailRegister"></div> 1468 <table class="grey" style="width:100%;"> 1469 <tr> 1470 <td colspan="2"> 1471 <span style="margin-top: 15px; font-size: 14px; display: block;" id="orOpenId">${la._161}</span> 1472 </td> 1473 </tr> 1474 <tr> 1475 <td colspan="2" class="socialButtons"> 1476 <i id="openIDmazon" class="fa fa-amazon" style="color:#29425a"></i> 1477 <img id="openIDoogle" src="${imgCDNUrl}social/oogle.svg"> 1478 </td> 1479 </tr> 1480 <tr style="text-align:right;"> 1481 <td style="text-align:left;"></td> 1482 <td style="text-align:right;"><input id="submitLogin" type="submit" name="submit" value="${la._2}" class="button"/></td> 1483 </tr> 1484 </table> 1485 <div id="loginError" style="color:red;"></div> 1486 ${`<section id="sectionLoginOtp" class="hidden"> 1487 <div class="flex" style="flex-flow: column;"> 1488 <p class="grey" style="padding-top: 15px;">${la._999} <em id="emailAddressOtp" style=":500;"></em></p> 1489 <label class="grey" for="otp">${la._1000}</label> 1490 <input id="otp" type="text" name="otp" 1491 class="field" autocapitalize="off" autocorrect="off" autocomplete="one-time-code"> 1492 <input id="submitLoginOtp" type="submit" name="submit" 1493 value="${la._225}" 1494 class="button" style="align-self:flex-end" /> 1495 <div id="loginErrorOtp" style="color: red;"></div> 1496 <p class="grey" style="padding-top: 15px;font-size: smaller;">${la._1001}</p> 1497 </div> 1498 </section>`} 1499 </form> 1500 </td> 1501 </tr> 1502 </table> 1503 ${`<form id="resetForm" class="hidden"> 1504 <div style="font-size: 16px; color: #000;">${la._373}</div> 1505 <label style="width: 272px;" class="grey" for="emailReset">${la._374}</label> 1506 <input class="field" type="email" name="emailReset" id="emailReset"> 1507 <br> 1508 <div class="flex unselectable" style="margin-top: 25px; justify-content: space-between;"> 1509 <div id="PWresetBack" class="button submitButton bt_login" value="" style="background-color: tomato;" > 1510 ${la._380} 1511 </div> 1512 <div> 1513 <input id="submitPWreset" type="submit" name="submit" value="${la._225}" class="bt_login">
1514 </div> 1515 </div> 1516 </form>`} 1517 </div> 1518 </div>`} 1519const toggleLoginRegister=function(a){var b=document.getElementById("registerEmailBox"),c=document.getElementById("emailRegister"),d=document.getElementById("orOpenId"),f=document.getElementById("pwreset"),k=document.getElementById("submitLogin"),n=document.getElementById("openIDoogle"),q=document.getElementById("openIDmazon");a?(DomUtil.show(b),c?.removeAttribute("disabled"),d&&(d.textContent=la._160),DomUtil.hide(d),DomUtil.hide(f),k&&(k.value=la._42),DomUtil.hide(n),DomUtil.hide(q),k&&(k.value= 1520la._42),window.keepaAnim.fadeOut(f,{duration:300})):(c?.setAttribute("disabled","disabled"),DomUtil.hide(b),DomUtil.setStyles(f,{display:"block"}),d&&(d.textContent=la._161),DomUtil.setStyles(d,{display:"block"}),k&&(k.value=la._2),DomUtil.show(n),DomUtil.show(q),window.keepaAnim.fadeIn(f,{duration:300}))};let databaseDeals=null,dealsTotalResults=1E4;const dealStoreName="visitedDeals",VISITED_CLEAR_DAYS=[1,2,3,7,14,30],VISITED_CLEAR_DAYS_DEFAULT=7,VISITED_OPACITY=[.1,.25,.5],VISITED_OPACITY_DEFAULT=.5;function getVisitedClearDays(){var a=Number(storage.dealsClearDays);return!isFinite(a)||a<1?VISITED_CLEAR_DAYS_DEFAULT:Math.min(365,Math.floor(a))}function getVisitedOpacity(){var a=Number(storage.dealsOpacity);return!isFinite(a)||a<=0?VISITED_OPACITY_DEFAULT:Math.min(.9,Math.max(.05,a))} 1521function nearestChoice(a,b){return a.reduce((c,d)=>Math.abs(d-b)<Math.abs(c-b)?d:c,a[0])} 1522const getDealsItem=a=>new Promise((b,c)=>{var d=databaseDeals.transaction([dealStoreName],"readonly").objectStore(dealStoreName).get(a);d.onsuccess=function(){b(d.result)};d.onerror=function(f){c(f.target.error)}}),setDealsItem=(a,b)=>new Promise((c,d)=>{if(databaseDeals){try{var f=databaseDeals.transaction([dealStoreName],"readwrite")}catch(k){c();return}f=f.objectStore(dealStoreName).put(b,a);f.onsuccess=function(){c()};f.onerror=function(k){d(k.target.error)}}else c()}),dealWrapperInstance=function(){var a= 1523null;return{get:()=>{a==null&&(a=dealWrapper());return a}}}(),dealWrapper=function(){function a(){try{K={initDatabase:function(T){if(window.indexedDB){var va=indexedDB.open("keepaDeals",3);va.onerror=function(Ma){Ma=Ma.target.error;var y=`Error opening keepaDeals: ${Ma?.name||"unknown"} - ${Ma?.message||"no message"}`;["UnknownError","QuotaExceededError","SecurityError","InvalidStateError","AbortError"].includes(Ma?.name)||reportBug(y);console.error("Error getting deals database",y);T(!1);try{indexedDB.deleteDatabase("keepaDeals")}catch(R){}}; 1524va.onsuccess=function(Ma){databaseDeals=Ma.target.result;Ma=databaseDeals.transaction([dealStoreName],"readonly").objectStore(dealStoreName).get("test");Ma.onsuccess=function(){T(!0)};Ma.onerror=function(){T(!1)}};va.onupgradeneeded=function(Ma){Ma=Ma.target.result;Ma.objectStoreNames.contains(dealStoreName)||Ma.createObjectStore(dealStoreName)}}else T(!1)},clearDatabase:function(T){if(databaseDeals){var va=databaseDeals.transaction([dealStoreName],"readwrite").objectStore(dealStoreName).clear(); 1525va.onsuccess=function(){T(!0)};va.onerror=function(Ma){console.error("Error clearing database:",Ma.target.error);T(!1)}}else console.error("Database is not initialized."),T(!1)},removeOutdatedCacheEntries:function(T){if(databaseDeals){var va=T.now,Ma=Number(T.days)||7,y=[];T=databaseDeals.transaction([dealStoreName],"readwrite").objectStore(dealStoreName).openCursor();T.onsuccess=function(R){if(R=R.target.result){let qa=R.key;va-R.value>864E5*Ma&&(y.push(qa),R.delete());R.continue()}};T.onerror=function(R){console.log("Cursor error: ", 1526R.target.error)}}}}}catch(T){console.error(T)}}function b(T){K.initDatabase(va=>{va&&T&&T()})}function c(T,va,Ma,y){y=y||{};var R=(la._492||"Min").replace("#","").trim(),qa=(la._493||"Max").replace("#","").trim();return`<div class="rangeInput" id="${T}"> 1527 <div class="rangeInput__label"><span${(y.labelClass?` class="${y.labelClass}"`:"")+(y.labelTitle?` title="${y.labelTitle}"`:"")}>${va}${y.labelSuffix||""}</span>${Ma?`<span class="rangeInput__unit">${Ma}</span>`:""}</div> 1528 <div class="rangeInput__row"${y.title?` title="${y.title}"`:""}> 1529 <div class="rangeInput__field"><input type="text" inputmode="numeric" autocomplete="off" spellcheck="false" data-bound="min" placeholder="${R}" aria-label="${va} ${R}"></div> 1530 <div class="rangeInput__field"><input type="text" inputmode="numeric" autocomplete="off" spellcheck="false" data-bound="max" placeholder="${qa}" aria-label="${va} ${qa}"></div>
1531 </div> 1532 </div>`}function d(){try{w=JSON.parse(get("dealsSectionState"))||{}}catch(T){w={}}I=new Set(Object.keys(w).filter(T=>w[T]===0))}function f(T,va,Ma,y){y=y||{};var R=I.has(T),qa=y.toggle;return`<div class="panelBox${R?" -collapsed":""}${qa&&!qa.on?" -off":""}${y.boxClass?" "+y.boxClass:""}" data-box="${T}"> 1533 <div class="panelBox__header"> 1534 <span class="panelBox__title" role="button" tabindex="0" aria-expanded="${R?"false":"true"}"><i class="fa fa-caret-down panelBox__caret"></i>${va}</span> 1535 ${y.summary?`<span class="panelBox__summary">${y.summary}</span>`:""}${qa?`<i id="${qa.id}" class="fa fa-toggle-${qa.on?"on":"off"} panelBox__switch" role="switch" aria-checked="${qa.on?"true":"false"}" tabindex="0" title="${qa.on?qa.onTitle:qa.offTitle}"></i>`:""} 1536 </div> 1537 <div class="panelBox__body">${qa?`<div class="panelBox__offHint" role="button" tabindex="0" data-switch="${qa.id}"><i class="fa fa-toggle-off"></i> ${qa.offTitle}</div>`:""}${Ma}</div> 1538 </div>`}function k(T){return(T=CsvType.getObject(T))&&T.color?`<span class="panelTypeDot" style="background:${T.color}" aria-hidden="true"></span>`:""}function n(T,va,Ma,y){y=y||{};return`<div class="panelChoice${Ma?" -active":""}${y.className?" "+y.className:""}" ${va} role="radio" aria-checked="${Ma?"true":"false"}" tabindex="0"${y.title?` title="${y.title}"`:""}>${y.prefix||""}<span>${T}</span>${y.suffix||""}</div>`}function q(T,va,Ma,y){y=y||{};return`<div class="panelChip${Ma?" -active":""}${y.dim? 1539" -dim":""}" ${va} role="radio" aria-checked="${Ma?"true":"false"}" tabindex="0"${y.title?` title="${y.title}"`:""}>${T}</div>`}function r(T,va,Ma,y){y=y||{};return`<div class="panelCheck${y.disabled?" -disabled":""}${y.className?" "+y.className:""}"> 1540 <input id="${T}" type="checkbox"${Ma?" checked":""}${y.disabled?" disabled":""}> 1541 <label for="${T}"${y.title?` title="${y.title}"`:""}>${va}</label> 1542 </div>`}function u(T,va){var Ma=m[T];Ma&&document.querySelectorAll("#"+T+" input").forEach(y=>{var R=y.getAttribute("data-bound")==="max",qa=va?va[R?1:0]:null;R=qa==null?!0:Ma.noLimit!=null?qa===Ma.noLimit:R?qa>=2147483647:qa<=0;R?qa="":(R=Ma.scale(),qa/=R,qa=NumberUtil.format(qa,R>1&&Math.round(qa)!==qa?2:0));y.value=qa})}function B(T){var va=m[T];if(!va)return null;var Ma=va.scale(),y=[null,null];document.querySelectorAll("#"+T+" input").forEach(qa=>{var xa=qa.getAttribute("data-bound")==="max"; 1543qa=String(qa.value).replace(/[^0-9.]/g,"");qa.length&&(qa=Number(qa),isFinite(qa)&&(y[xa?1:0]=Math.max(0,Math.round(qa*Ma))))});T=y[0];var R=y[1];if(T!=null&&R!=null&&T>R){let qa=T;T=R;R=qa}va.maxValue!=null&&(T!=null&&(T=Math.min(T,va.maxValue)),R!=null&&(R=Math.min(R,va.maxValue)));return va.noLimit!=null?[T==null?va.noLimit:T,R==null?va.noLimit:R]:[T==null?0:T,R==null?2147483647:R]}function t(T){T&&(l.page=0,storage["dealsRequest."+T]=JSON.stringify(l),settings.send())}function G(T,va){var Ma= 1544storage["dealsRequest."+T];T=null;if(Ma)if(T=tryParseJSON(Ma),T!=null){T.page=0;T.dateRange||(T.dateRange=1);T.minRating&&[10,20,30,40,50].includes(Number(T.minRating))||(T.minRating=-1);for(var y in T)l[y]=T[y]}else T=null;y=null;if(!va&&lastSubUrl)try{y=JSON.parse(decodeURIComponent(lastSubUrl));for(var R in y){if(R=="page")continue;let ja=y[R];R!=="minRating"||[10,20,30,40,50].includes(Number(ja))||(ja=-1);if(l[R]!=null||typeof l[R]==="undefined")l[R]=ja;R=="domainId"&&ja!=null&&verifyRegExp.domainId.test(ja)&& 1545storage.domainId!=ja&&(storage.domainId=ja,refreshDomain())}}catch(ja){y=null}y&&!("deltaLastRange"in y)&&"deltaLastRange"in l&&((ja=>Array.isArray(ja)&&ja.length===2)(l.deltaLastRange)&&(l.deltaRange=l.deltaLastRange),delete l.deltaLastRange);var qa=y||{},xa=T||{};ma.forEach(ja=>{ja=ja.field;!l.hasOwnProperty(ja)||xa.hasOwnProperty(ja)||qa.hasOwnProperty(ja)?l.hasOwnProperty(ja)&&Array.isArray(l[ja])&&l[ja].length===0&&delete l[ja]:delete l[ja]});M.normalize();R=["isBackInStock","warehouseCondition"]; 1546for(let ja of R)typeof l[ja]!=="undefined"&&delete l[ja];va||(l.page=y?.page??0);return l}function da(){ra&&(document.removeEventListener("scroll",ra),ra=null)}function Y(){da();ra=function(){document.documentElement.scrollHeight-window.innerHeight>window.scrollY+1E3||(da(),document.getElementById("productPage0")&&network.waitForNetworkCompletion().always(X))};document.addEventListener("scroll",ra)}function X(){if(L!==!0){da();L=!0;var T=showReferencePrice(Number(storage.domain))?" with-reference": 1547"",va=document.querySelectorAll(".productPage");va.length>0&&(l.page=va.length);va=va[va.length-1]||null;l.page*150>=dealsTotalResults?va?.insertAdjacentHTML("afterend",'<div id="productPage'+l.page+'" class="productPage'+T+'">'+la._16+"</div>"):l.page*150>=1E4?va?.insertAdjacentHTML("afterend",'<div id="productPage'+l.page+'" class="productPage'+T+'">'+la._17+"</div>"):(va?.insertAdjacentHTML("afterend",'<div id="productPage'+l.page+'" class="productPage'+T+'"></div>'),DomUtil.show(document.getElementById("loadingIcon")), 1548V())}}function P(T){if(T)for(let va of T.children)va.addEventListener("click",function(Ma){Ma.preventDefault();Ma.stopPropagation();window.scrollTo({top:0,behavior:"smooth"})})}function ka(T){var va=document.getElementById("dealsTitleSearchResults");va&&(va.textContent=T)}function D(T){T&&l.page!=0||ia();T&&l.page==0&&(t("last"),document.querySelector("#filterCats .catRow")||DomUtil.hide(document.getElementById("filterBar")),ka(""));l.page===0&&W()}function W(){for(var T=0;document.getElementById("productPage"+ 1549T);)replaceHtml("productPage"+T,""),T>0&&document.getElementById("productPage"+T)?.remove(),T++;oa=[]}function N(T){if(Array.isArray(T))return T.map(N);if(T===null||typeof T!=="object")return T;var va={};for(let Ma in T)T[Ma]!==void 0&&(va[Ma]=N(T[Ma]));return va}function ha(T){storage.domain==0&&(storage.domain=1);T.domainId=storage.domain;M.normalize(T);T.salesRankRange[0]==null&&(T.salesRankRange[0]=-1);T.salesRankRange[1]==null&&(T.salesRankRange[1]=-1);hasDataAccessSubscription||(ma.forEach(R=> 1550{T[R.field]=[]}),T.priceTypes[0]==CsvType.BUY_BOX_USED_SHIPPING.index&&(T.priceTypes=[CsvType.USED.index]),T.priceTypes[0]==CsvType.SALES.index&&(T.priceTypes=[T.domainId!=10?CsvType.AMAZON.index:CsvType.NEW.index]),T.salesRankRange[0]=-1,T.salesRankRange[1]=-1);var va=T.construct;T.construct=null;var Ma=T.dateRange;T.priceTypes[0]===CsvType.LIGHTNING_DEAL.index&&(T.dateRange=0);var y=network.request({path:"service/deals",type:"ws",dealRequest:Object.assign(JSON.parse(JSON.stringify(T)),M.toWire())}); 1551T.construct=va;va=Object.assign({},T,M.toWire());T.dateRange=Ma;return[y,va]}function V(){L=!0;DomUtil.show(document.getElementById("loadingIcon"));D(!0);CsvType.getObject(l.priceTypes[0]);l.perPage=150;l.settings.viewTyp===Z.TABLE&&(l.perPage=-1);var [T,va]=ha(l),Ma=l.page*150,y=R=>
1551{if(R.titleSearch.length>0){let qa=document.getElementById("dealsTitleSearchResults");qa&&(qa.innerHTML=la._280+' <span style="color: #333333" id="dealsTitleSearchQuery"></span>',qa.querySelector("#dealsTitleSearchQuery").textContent= 1552R.titleSearch)}else ka("")};l.settings.viewTyp===Z.TABLE?(y(l),replaceHtml("productPage0",'<div id="dealsGrid"></div>'),network.withGrid(()=>{GridDeals.init(N(va),"dealsGrid")})):T.done(function(R){DomUtil.hide(document.getElementById("loadingIcon"));R.deals&&(R.data=R.deals);if(R.data==null)showErrorPopup(null,!0),reportBug("deal error",JSON.stringify(l)+"<br>"+JSON.stringify(R));else{y(l);dealsTotalResults=R.totalResults;R=R.data;R.drBasic&&(R.dr=R.drBasic,delete R.drBasic);for(var qa in R.dr)oa.indexOf(R.dr[qa].asin)> 1553-1?R.dr[qa]=null:oa.push(R.dr[qa].asin);R.products=R.dr;for(var xa in R.products){xa=Number(xa);qa=R.products[xa];if(qa==null)continue;try{qa.image=String.fromCharCode.apply(null,qa.image)}catch(Na){}qa.domainId=l.domainId;var ja=l.dateRange==4?qa.dateIntervalIndex:l.dateRange;ja||=0;qa.delta=qa.delta[ja];qa.deltaPercent=qa.deltaPercent[ja];qa.avg=qa.avg[ja]}try{l.page==0&&ea(R.categoryIds,R.categoryNames,R.categoryCount)}catch(Na){console.log(Na)}if(typeof R.products==="undefined"||R.products.length== 15540)l.page===0?replaceHtml("productPage0",'<br><div style="text-align: center; font-weight: bold;">'+la._195+"</div><br>"):l.page>1&&(R='<div class="newPageSeparator"><span class="backToTop">'+la._196+"</span></div>",xa=document.getElementById("productPage"+(l.page-1)))&&(xa.insertAdjacentHTML("beforeend",R),P(xa.lastElementChild));else{xa="";for(qa=0;qa<R.products.length;qa++){ja=R.products[qa];if(ja==null)continue;let Na="",hb=qa+Ma;sessionStorage[l.domainId+"-"+ja.asin]?Na="opacity:"+getVisitedOpacity()+ 1555";":databaseDeals&&getDealsItem(l.domainId+"-"+ja.asin).then(function(qb){qb&&DomUtil.setStyles(document.getElementById("p"+hb),{opacity:getVisitedOpacity()})}).catch(function(qb){});xa+='<div id="p'+hb+'" class="productContainer" style="min-width: 210px;'+Na+'" >'+Aa(ja,hb)+"</div>"}qa=document.getElementById("productPage"+l.page);qa?.insertAdjacentHTML("beforeend",xa);l.page>0&&qa&&(qa.insertAdjacentHTML("afterbegin",'<div class="newPageSeparator">'+la._292+" "+(l.page+1)+'<span class="backToTop">'+ 1556la._196+"</span></div>"),P(qa.firstElementChild));for(xa=0;xa<R.products.length;xa++)R.products[xa]!=null&&Qa(document.getElementById("pB"+(xa+Ma)),R.products[xa].asin);L=!1;Y()}}}).fail(function(R){showErrorPopup(R);storage.removeItem("dealsRequest.last");settings.send()})}function O(){l.currentRange=B("currentRange");l.deltaPercentRange=B("deltaPercentRange");l.deltaRange=B("deltaRange");l.titleSearch=document.getElementById("dealSearchBar")?.value;l.page=0;sa()}function wa(T){return`<div class="visitedSettings__tile${T? 1557" -seen":""}"> 1558 <div class="visitedSettings__tileImage"></div> 1559 <div class="visitedSettings__tileLine"></div> 1560 <div class="visitedSettings__tileLine -short"></div> 1561 </div>`}function La(){var T=getVisitedClearDays(),va=getVisitedOpacity(),Ma=nearestChoice(VISITED_CLEAR_DAYS,T),y=nearestChoice(VISITED_OPACITY,va);T=VISITED_CLEAR_DAYS.map(Na=>{{let [qb,ab]=Na%30===0?["month",Na/30]:Na%7===0?["week",Na/7]:["day",Na];try{var hb=(new Intl.NumberFormat(languageTag(),{style:"unit",unit:qb,unitDisplay:"long"})).format(ab)}catch(Jb){hb=Na+" "+(Na===1?la._887:la._143)}}return q(hb,`data-days="${Na}"`,Na===Ma)}).join("");var R=[la._1797,la._1798,la._1799],qa=VISITED_OPACITY.map((Na, 1562hb)=>q(R[hb],`data-opacity="${Na}"`,Na===y)).join("");T=`<div class="visitedSettings"> 1563 <div class="visitedSettings__section"> 1564 <div class="visitedSettings__eyebrow">${la._1796}</div> 1565 <div class="visitedSettings__hint">${la._243}</div> 1566 <div class="panelChips" id="visitedClearDays" role="radiogroup" aria-label="${la._1796}">${T}</div> 1567 </div> 1568 <div class="visitedSettings__section"> 1569 <div class="visitedSettings__eyebrow">${la._245}</div> 1570 <div class="panelChips" id="visitedOpacity" role="radiogroup" aria-label="${la._245}">${qa}</div> 1571 <div class="visitedSettings__preview"> 1572 <div class="visitedSettings__eyebrow -quiet">${la._1802}</div> 1573 <div class="visitedSettings__spec" id="visitedPreview"> 1574 ${wa(!0)}${wa(!1)}${wa(!0)}${wa(!1)} 1575 </div> 1576 </div>
1577 </div> 1578 <div class="visitedSettings__foot"> 1579 <i class="fa fa-info-circle" aria-hidden="true"></i><span>${la._246}</span> 1580 </div> 1581 </div>`;if(showPopup(la._242,T,!0)){var xa=document.getElementById("visitedPreview"),ja=Na=>{for(let hb of xa?.querySelectorAll(".-seen")||[])DomUtil.setStyles(hb,{opacity:Na})};ja(va);va=(Na,hb)=>{if(Na=document.getElementById(Na)){var qb=Array.from(Na.children),ab=Jb=>{if(Jb&&!Jb.classList.contains("-active")){for(let ib of qb){let Wb=ib===Jb;ib.classList.toggle("-active",Wb);ib.setAttribute("aria-checked",Wb?"true":"false")}hb(Jb)}};Na.addEventListener("click",Jb=>ab(Jb.target.closest(".panelChip"))); 1582Na.addEventListener("keydown",Jb=>{var ib=Jb.target.closest(".panelChip");if(ib)if(Jb.key==="Enter"||Jb.key===" ")Jb.preventDefault(),ab(ib);else{var Wb=Jb.key==="ArrowRight"||Jb.key==="ArrowDown"?1:Jb.key==="ArrowLeft"||Jb.key==="ArrowUp"?-1:0;Wb&&(Jb.preventDefault(),Jb=qb[(qb.indexOf(ib)+Wb+qb.length)%qb.length],Jb.focus(),ab(Jb))}})}};va("visitedClearDays",Na=>{storage.dealsClearDays=Number(Na.getAttribute("data-days"));settings.send();Ba()});va("visitedOpacity",Na=>{Na=Number(Na.getAttribute("data-opacity")); 1583storage.dealsOpacity=Na;settings.send();ja(Na);fa(Na)})}}function Ba(){if(K&&databaseDeals)try{K.removeOutdatedCacheEntries({n
1583ow:keepaTime.now(),days:getVisitedClearDays()})}catch(T){console.error(T)}}function fa(T){for(let va of document.querySelectorAll("#contentAlign .productContainer"))va.style.opacity!==""&&DomUtil.setStyles(va,{opacity:T});l.settings.viewTyp===Z.TABLE&&ca(va=>va.refreshVisitedStyle())}function ia(){function T(aa){for(let Ca=10;Ca<=50;Ca+=10){let Wa=document.querySelector(`#minRating i[data-rating="${Ca}"]`); 1584Wa&&(Wa.classList.toggle("fa-star",Ca<=aa),Wa.classList.toggle("fa-star-o",Ca>aa))}document.getElementById("minRatingClear")?.classList.toggle("-hidden",!(aa>0));l.minRating=aa>0?aa:-1;document.getElementById("submitDealQuery")?.click()}d();var va=`<div class="panelSearch" title="${la._453}"> 1585 <i class="fa fa-search panelSearch__icon"></i> 1586 <input maxlength="2000" id="dealSearchBar" autocomplete="off" placeholder="${la._454}"> 1587 <span id="submitDealSearch" class="panelSearch__clear" role="button" tabindex="0"><i class="fa fa-times"></i></span> 1588 </div>`,Ma=l.settings.viewTyp===Z.TABLE,y=(aa,Ca,Wa,Va)=>`<div data-viewtype="${Ca}"${Wa?' class="-active"':""} role="radio" aria-checked="${Wa?"true":"false"}" tabindex="0"><i class="fa ${Va}"></i> ${aa}</div>`;Ma=`<div class="panelBox -headless" data-box="viewType"> 1589 <div class="panelBox__body"> 1590 <div id="dealsViewType" class="panelSegment" role="radiogroup" aria-label="${la._660}"> 1591 ${y(la._661,Z.TABLE,Ma,"fa-table")} 1592 ${y(la._662,Z.BOX,!Ma,"fa-th-large")} 1593 </div> 1594 </div> 1595 </div>`;y=A();y=f("bookmarks",la._1346,y.html,{summary:y.count?String(y.count):""});var R=aa=>{var Ca=!1,Wa=[l.priceTypes[0]];for(var Va in Wa)if(Va=l.priceTypes[Va],hasDataAccessSubscription||(Va==CsvType.BUY_BOX_USED_SHIPPING.index&&(Va=[CsvType.USED.index]),Va==CsvType.SALES.index&&(Va=[l.domainId!=10?CsvType.AMAZON.index:CsvType.NEW.index])),CsvType[aa].index==Va){Ca=!0;CsvType.SALES.index==Va&&setTimeout(function(){},0);Va!=CsvType.AMAZON.index&&Va!=CsvType.NEW.index&&setTimeout(function(){}, 15960);break}if(aa!="AMAZON"||l.domainId!=10){Wa="";if(aa==="WAREHOUSE"){Wa=[];Wa[1]=la._93;Wa[2]=la._637;Wa[3]=la._638;Wa[4]=la._639;Wa[5]=la._640;Va="";for(var Xa in Wa){var tb=`sub-deal-type-filter-${CsvType[aa].index}-${Xa}`;let Za=l.warehouseConditions&&l.warehouseConditions.includes(Number(Xa));Va+=`<div><input id="${tb}" type="checkbox"${Za?" checked":""} data-warehousecondition="${Xa}"><label for="${tb}">${Wa[Xa]}</label></div>`}Wa=`<div class="sub-deal-type-filter sub-deal-type-filter-${CsvType[aa].index}"> 1597 ${Va} 1598 </div>`}Xa=graphIsRestricted(l.domainId,CsvType[aa].index);Va=CsvType.getName(CsvType[aa].index);tb=k(CsvType[aa].index);Ca&&(qa=tb+Va);xa+=n(Va,`data-type="${CsvType[aa].index}"`,!!Ca,{className:Xa?"locked":"",title:Xa?la._996:"",prefix:tb,suffix:Xa?'<i class="fa fa-lock"></i>':""})+Wa}},qa="",xa="",ja=CsvType.getObjectsSorted();for(var Na of ja)if(typeof Na==="object"&&Na.deal&&Na.isEnabled)R(CsvType.getObjectName(Na.index));else if(Na===0||Na===1)xa+='<div class="panelChoice__separator"></div>'; 1599xa=f("priceTypes",la._452,`<div id="dealPriceTypesFilter">${xa}</div>`,{summary:qa});var hb=l.priceTypes[0]===CsvType.LIGHTNING_DEAL.index,qb=hb?0:l.dateRange;Na=[la._136,la._137,la._139,la._140,la._1471];R=Na.map((aa,Ca)=>q(aa,`data-dateRange="${Ca}"`,qb==Ca,{dim:hb&&Ca!==0,title:Ca===4?la._1472:""})).join("");Na=f("dateRange",la._458,`<div id="dealDateRange" class="panelChips">${R}</div>`,{summary:Na[qb]||""});var ab=(ja=l.priceTypes[0]===CsvType.SALES.index)?" hidden":"";R=getCurrencyByDomain(storage.domain); 1600var Jb=c("deltaPercentRange",la._489,"%"),ib=c("deltaRange",la._490,R),Wb=r("checkboxDeltaLastRange",la._429,!!l.deltaLastRange),lc=c("currentRange",la._491,R),ic=(R=graphIsRestricted(l.domainId,CsvType.SALES.index))?' <i class="fa fa-lock"></i>':"";ic=c("salesRankRange",`${CsvType.getName(CsvType.SALES.index)} ${la._456}`,"",{title:la._472,labelClass:R?"locked":"",labelTitle:R?la._996:"",labelSuffix:ic});var Yb="";for(var Vb=10;Vb<=50;Vb+=10)Yb+=`<i class="fa fa-star${l.minRating<Vb?"-o":""}" data-rating="${Vb}"></i> `; 1601Yb=`<div class="rangeInput"> 1602 <div class="rangeInput__label"><span>${la._911}</span><i id="minRatingClear" class="fa fa-times rangeInput__clear${l.minRating>0?"":" -hidden"}" role="button" tabindex="0" title="${la._1230}" aria-label="${la._911}: ${la._1230}"></i></div> 1603 <div id="minRating" class="range_filter -star">${Yb}</div> 1604 </div>`;Vb=[l.deltaPercentRange,l.deltaRange,l.currentRange].filter(aa=>
1604aa&&(aa[0]>0||aa[1]<2147483647)).length+(!l.salesRankRange||l.salesRankRange[0]===-1&&l.salesRankRange[1]===-1?0:1)+(l.minRating>0?1:0);Jb=f("ranges",la._455,`<div id="panelRangeSelection"> 1605 ${Jb} 1606 ${ib} 1607 ${Wb} 1608 ${lc} 1609 ${ic} 1610 ${Yb} 1611 </div>`,{boxClass:ab.trim(),summary:Vb?String(Vb):"",toggle:{id:"panelRangeSelectionDisableCross",on:l.isRangeEnabled,onTitle:la._1425,offTitle:la._1426}});ib=l.priceTypes[0]===CsvType.AMAZON.index;ab=ab.trim();ab=[{id:"checkboxLowestEver",label:la._459,on:l.isLowest},{id:"checkboxLowest90",label:la._1048.replace("#days#",90),on:l.isLowest90},{id:"checkboxLowestAll",label:la._461,on:l.isLowestOffer,title:la._460,className:ab},{id:"checkboxOutOfStock",label:la._134,on:l.isOutOfStock,className:ab}, 1612{id:"checkboxMustHaveAmazonOffer",label:la._268,on:l.mustHaveAmazonOffer&&!ib,disabled:ib,className:ab},{id:"checkboxMustNotHaveAmazonOffer",label:la._269,on:l.mustNotHaveAmazonOffer&&!ib,disabled:ib,className:ab},{id:"checkboxHasReviews",label:la._463,on:l.hasReviews},ib?{id:"checkboxIsPrimeExclusive",label:la._270,on:l.isPrimeExclusive}:null,{id:"checkboxFilterErotic",label:la._464,on:l.filterErotic},{id:"checkboxSingleVariation",label:la._990,on:l.singleVariation}].filter(Boolean);ib=ab.filter(aa=> 1613aa.on&&!aa.disabled).length;Wb=hasDataAccessSubscription?ma.filter(({field:aa})=>l[aa]?.length).map(({label:aa})=>aa):[];lc=`<div class="panelMoreFilter__group -alwaysOn"> 1614 <div id="dealMoreFilter" class="panelMoreFilter" role="button" tabindex="0"> 1615 <i class="fa fa-sliders"></i><span>${la._1473}</span><i class="fa fa-angle-right"></i> 1616 </div> 1617 ${Wb.length?`<div class="panelMoreFilter__active">${Wb.map(aa=>`<span>${aa}</span>`).join("")} 1618 <span id="dealMoreFilterClear" class="panelMoreFilter__clear" role="button" tabindex="0" title="${la._54}"><i class="fa fa-times"></i> ${la._54}</span> 1619 </div>`:""} 1620 </div>`;ab=f("filters",la._182,`${lc}<div id="dealCheckBoxes">${ab.map(aa=>r(aa.id,aa.label,aa.on,aa)).join("")}</div>`,{summary:ib+Wb.length?String(ib+Wb.length):"",toggle:{id:"panelFilterSelectionDisableCross",on:l.isFilterEnabled,onTitle:la._1427,offTitle:la._1428}});ib=l.sortType>=0?1:0;Wb=[l.sortType==4||l.sortType==0||l.sortType==-4,l.sortType==2||l.sortType==-2,l.sortType==1,l.sortType==3||l.sortType==-3,l.sortType==5||l.sortType==-5];Wb[3]=Wb[3]||ja&&Wb[4];if(Wb[3]||Wb[4])ib=ib==0?1:0; 1621var cc=na[ib];ja=[{key:"percentage",label:la._486,active:Wb[0],directional:!0},{key:"drop",label:la._487,active:Wb[1],directional:!0},ja?null:{key:"price",label:la._488,active:Wb[4],directional:!0},{key:"newest",label:la._485,active:Wb[2]},{key:"salesRank",label:CsvType.getName(CsvType.SALES.index),active:Wb[3],directional:!0,title:la._457}].filter(Boolean);ib=ja.find(aa=>aa.active);ja=f("sorting",la._180,`<div id="dealSortType" class="panelChips">${ja.map(aa=>q(aa.label+(aa.active&&aa.directional? 1622cc:""),`data-sort="${aa.key}"`,aa.active,{title:aa.title})).join("")}</div>`,{summary:ib?ib.label+(ib.directional?cc:""):""});ib=(aa,Ca,Wa,Va)=>{Va=Va||{};return`<div id="${aa}" class="panelAction${Va.danger?" -danger":""}
1622" role="button" tabindex="0"${Va.title?` title="${Va.title}"`:""}><i class="fa ${Ca}"></i><span>${Wa}</span></div>`};ib=`<div class="panelActions"> 1623 <div class="panelActions__group"> 1624 <div class="panelActions__title">${la._12}</div> 1625 ${ib("reloadDeals","fa-refresh",la._471)} 1626 ${ib("resetSettings","fa-undo",la._467,{title:la._466,danger:!0})} 1627 ${ib("queryJSON","fa-file-code-o",la._469,{title:la._470})} 1628 </div> 1629 <div class="panelActions__group"> 1630 <div class="panelActions__title">${la._1746}</div> 1631 ${ib("leftPanelMarkAllVisited","fa-check-square-o",la._427)} 1632 ${ib("clearVisited","fa-eraser",la._468,{danger:!0})} 1633 ${K?ib("clearVisitedSetting","fa-sliders",la._241):""} 1634 </div> 1635 </div>`;replaceHtml("leftPanel",`${va} 1636 ${Ma} 1637 ${y} 1638 ${xa} 1639 ${Na} 1640 ${Jb} 1641 ${ab} 1642 ${ja} 1643 ${ib} 1644 ${`<div><div class="leftPanelBottomMenu" id="leftPanelBackToTop"><i class="fa fa-arrow-up fa-lg"></i><br><span>${la._196}</span></div>`}`);var kc=document.getElementById("leftPanel");kc?.addEventListener("keydown",function(aa){var Ca=aa.target.closest(".panelAction, .panelChoice, .panelChip, .panelSegment > div, .panelBox__title, .panelBox__switch, .panelBox__offHint, .panelMoreFilter, .panelMoreFilter__clear, .panelSearch__clear, .dealsSaveSlot, .editSaveSlot");!Ca||!kc.contains(Ca)||aa.key!== 1645"Enter"&&aa.key!==" "||aa.target.isContentEditable||(aa.preventDefault(),Ca.click())});kc?.addEventListener("click",function(aa){(aa=aa.target.closest(".panelBox__offHint"))&&kc.contains(aa)&&document.getElementById(aa.getAttribute("data-switch"))?.click()});H();kc?.addEventListener("click",function(aa){var Ca=aa.target.closest(".panelBox__title");if(Ca&&kc.contains(Ca)){var Wa=Ca.closest(".panelBox");Wa&&(aa=Wa.classList.toggle("-collapsed"),Ca.setAttribute("aria-expanded",aa?"false":"true"),Ca= 1646Wa.getAttribute("data-box"),aa?I.add(Ca):I.delete(Ca),w[Ca]=aa?0:1,set("dealsSectionState",w),settings.send())}});document.getElementById("resetSettings")?.addEventListener("click",function(){l=Q.construct(l.settings.viewTyp);sa()});document.querySelectorAll("#dealsViewType div").forEach(aa=>{aa.addEventListener("click",function(){var Ca=parseInt(DomUtil.data(aa,"viewtype"));Ca!==l.settings.viewTyp&&(l.settings.viewTyp=Ca===Z.TABLE?Z.TABLE:Z.BOX,l.settings.viewTyp===Z.BOX&&ca(Wa=>Wa.destroy()),document.getElementById("submitDealQuery")?.click())})}); 1647document.getElementById("clearVisited")?.addEventListener("click",function(){sessionStorage.clear();document.getElementById("submitDealQuery")?.click();databaseDeals&&K.clearDatabase(()=>{})});document.getElementById("reloadDeals")?.addEventListener("click",function(){document.getElementById("submitDealQuery")?.click()});document.getElementById("clearVisitedSetting")?.addEventListener("click",function(aa){aa.preventDefault();aa.stopPropagation();La()});document.getElementById("queryJSON")?.addEventListener("click", 1648function(){var aa=JSON.parse(JSON.stringify(l));delete aa.perPage;delete aa.settings;Object.assign(aa,M.toWire());aa.page=0;aa.priceTypes[0]===CsvType.LIGHTNING_DEAL.index&&(aa.dateRange=0);aa='<div style="width:500px;"><span>'+la._248+'</span><div><pre style="height: 300px;overflow: auto;background-color: #fff4e0;">'+JSON.stringify(aa,null,4)+"</pre><br>"+la._249+'<div style="width=100%; overflow: auto;background-color: #fff4e0;white-space: nowrap;">https://api.keepa.com/deal?key=<span style="color:red">YOUR_API_KEY</span>&selection='+ 1649encodeURIComponent(JSON.stringify(aa))+"</div></div></div>";showPopup(la._247,aa,!0)});var yc=document.getElementById("dealSearchBar"),Gc=function(){yc?.closest(".panelSearch")?.classList.toggle("-filled",yc.value.length>0)};l.titleSearch.length>0&&yc&&(yc.value=l.titleSearch);Gc();ColorTip.attach(".rangeInput__label .locked",{color:"whiteDeals",alignment:"left"});yc?.addEventListener("input",Gc);yc?.addEventListener("change",function(){Gc();O()});document.getElementById("submitDealSearch")?.addEventListener("click", 1650function(){yc&&yc.value.length&&(yc.value="",l.titleSearch="",Gc(),O())});va=["dealCheckBoxes","checkboxDeltaLastRange"].map(aa=>
1650document.getElementById(aa)).filter(Boolean);var Hc=document.getElementById("dealPriceTypesFilter"),tc=document.getElementById("dealSortType"),Dc=document.getElementById("dealDateRange"),jc=document.getElementById("panelRangeSelectionDisableCross"),Ob=document.getElementById("panelFilterSelectionDisableCross"),xc=aa=>{if(aa=document.getElementById(aa))aa.checked=!1},bd= 1651function(aa){aa.target.classList.add("active");var Ca=aa.target.id;if(Ca){switch(Ca){case "checkboxLowestEver":case "checkboxLowest90":case "checkboxLowestAll":l.isOutOfStock=!1;xc("checkboxOutOfStock");break;case "checkboxOutOfStock":l.isLowest=!1,xc("checkboxLowestEver"),l.isLowest90=!1,xc("checkboxLowest90"),l.isLowestOffer=!1,xc("checkboxLowestAll")}switch(Ca){case "checkboxMustHaveAmazonOffer":l.mustHaveAmazonOffer=aa.target.checked;l.mustHaveAmazonOffer&&(l.mustNotHaveAmazonOffer=!1,xc("checkboxMustNotHaveAmazonOffer")); 1652break;case "checkboxMustNotHaveAmazonOffer":l.mustNotHaveAmazonOffer=aa.target.checked;l.mustNotHaveAmazonOffer&&(l.mustHaveAmazonOffer=!1,xc("checkboxMustHaveAmazonOffer"));break;case "checkboxLowestEver":l.isLowest=aa.target.checked;break;case "checkboxLowest90":l.isLowest90=aa.target.checked;break;case "checkboxLowestAll":l.isLowestOffer=aa.target.checked;break;case "checkboxFilterErotic":l.filterErotic=aa.target.checked;break;case "checkboxSingleVariation":l.singleVariation=aa.target.checked; 1653break;case "checkboxHasReviews":l.hasReviews=aa.target.checked;break;case "checkboxIsPrimeExclusive":l.isPrimeExclusive=aa.target.checked;break;case "checkboxOutOfStock":l.isOutOfStock=aa.target.checked}document.getElementById("submitDealQuery")?.click()}};va.forEach(aa=>aa.addEventListener("click",bd));document.getElementById("dealMoreFilter")?.addEventListener("click",aa=>{Ha()});document.getElementById("dealMoreFilterClear")?.addEventListener("click",function(aa){aa.stopPropagation();ma.forEach(({field:Ca})=> 1654delete l[Ca]);O()});var Lc=function(aa,Ca,Wa,Va){aa&&(aa.classList.toggle("fa-toggle-on",Ca),aa.classList.toggle("fa-toggle-off",!Ca),aa.setAttribute("aria-checked",Ca?"true":"false"),aa.setAttribute("title",Ca?Wa:Va),aa.closest(".panelBox")?.classList.toggle("-off",!Ca))},Sc=function(){Lc(jc,l.isRangeEnabled,la._1425,la._1426)},Vc=function(){Lc(Ob,l.isFilterEnabled,la._1427,la._1428)};Sc();Vc();jc?.addEventListener("click",function(aa){aa.stopPropagation();l.isRangeEnabled=!l.isRangeEnabled;Sc(); 1655O()});Ob?.addEventListener("click",function(aa){aa.stopPropagation();l.isFilterEnabled=!l.isFilterEnabled;Vc();O()});Hc?.querySelectorAll(":scope > div").forEach(aa=>aa.addEventListener("click",Ca=>{Ca=Ca.target.closest("[data-type], [data-warehousecondition]");var Wa=DomUtil.data(Ca,"type");if(!graphIsRestricted(l.domainId,Wa))if(typeof Wa!=="undefined")l.priceTypes[0]=Wa,O();else if(typeof DomUtil.data(Ca,"warehousecondition")!=="undefined"){let Va=[],Xa=[];Hc.querySelectorAll("input[data-warehousecondition]").forEach(tb=> 1656{var Za=DomUtil.data(tb,"warehousecondition");Va.push(Za);tb.checked&&Xa.push(Za)});l.warehouseConditions=Va!==Xa?Xa:Va;O()}}));ColorTip.attach("#dealPriceTypesFilter .locked",{color:"whiteDeals",alignment:"left"});Dc?.addEventListener("click",function(aa){if(!hb&&(aa=aa.target.closest("[data-dateRange]"))){for(var Ca of Dc.children)Ca.classList.remove("-active"),Ca.setAttribute("aria-checked","false");aa.classList.add("-active");aa.setAttribute("aria-checked","true");Ca=aa.getAttribute("data-dateRange"); 1657l.dateRange=Ca;l.page=0;sa()}});tc?.addEventListener("click",function(aa){if(aa=aa.target.closest("[data-sort]")){for(var Ca of tc.children)Ca.classList.remove("-active"),Ca.setAttribute("aria-checked","false");aa.classList.add("-active");aa.setAttribute("aria-checked","true");Ca=0;switch(aa.getAttribute("data-sort")){case "percentage":Ca=4;if(l.sortType==0||l.sortType==4)Ca*=-1;break;case "newest":Ca=1;break;case "drop":Ca=2;l.sortType==2&&(Ca*=-1);break;case "salesRank":Ca=3;l.sortType==3&&(Ca*= 1658-1);break;case "price":Ca=5,l.sortType==5&&(Ca*=-1)}l.sortType=Ca;l.page=0;sa()}});u("deltaPercentRange",l.deltaPercentRange);u("deltaRange",l.deltaRange||l.deltaLastRange);u("currentRange",l.currentRange);u("salesRankRange",R?null:l.salesRankRange);var Xc=document.getElementById("panelRangeSelection"),pa=aa=>(aa=aa.target.closest(".rangeInput input"))&&Xc.contains(aa)?aa:null;Xc?.addEventListener("focusin",function(aa){if(aa=pa(aa))aa.value=aa.value.replace(/[^0-9.]/g,""),aa.select()});Xc?.addEventListener("focusout", 1659function(aa){if(aa=pa(aa)){{aa=aa.closest(".rangeInput").getAttribute("id");let Va=m[aa];if(Va)if(Va.needsSubscription&&!hasDataAccessSubscription)u(aa,l[aa]);else{var Ca=B(aa),Wa=l[aa]||[];u(aa,Ca);if(Ca[0]!==Wa[0]||Ca[1]!==Wa[1])l[aa]=Ca,Va.noLimit!=null?eb():O()}}}});Xc?.addEventListener("keydown",function(aa){var Ca=pa(aa);Ca&&(aa.key==="Enter"?Ca.blur():aa.key==="Escape"&&(aa=Ca.closest(".rangeInput").getAttribute("id"),u(aa,l[aa]),Ca.blur()))});document.querySelectorAll("#minRating i[data-rating]").forEach(aa=> 1660{aa.addEventListener("click",function(){var Ca=Number(DomUtil.data(aa,"rating"));T(l.minRating===Ca?Ca-10:Ca)})});va=document.getElementById("minRatingClear");Ma=function(aa){if(aa.type!=="keydown"||aa.key==="Enter"||aa.key===" ")aa.preventDefault(),T(-1)};for(var ua of["click","keydown"])va?.addEventListener(ua,Ma);var Oa=document.querySelector(".leftPanelBottomMenu");document.getElementById("leftPanelMarkAllVisited")?.addEventListener("click",function(){var aa=document.querySelectorAll("a:not(.href)"); 1661for(let Ca of aa)(aa=Ca.href)&&aa.indexOf("#!product/")!=-1&&(aa=aa.split("/"),sessionStorage[aa[aa.length-1]]=1,DomUtil.setStyles(Ca.parentElement,{opacity:getVisitedOpacity()}),databaseDeals&&setDealsItem(aa[aa.length-1],keepaTime.now()));l.settings.viewTyp===Z.TABLE&&ca(Ca=>Ca.setIsVisited(!0))});var Ua=!1;document.getElementById("leftPanelBackToTop")?.addEventListener("click",function(aa){DomUtil.hide(Oa);cb=Ua=!1;window.scrollTo({top:0,behavior:"smooth"});setTimeout(function(){cb=!0},300);aa.preventDefault(); 1662aa.stopPropagation()});var Ka=DomUtil.height(kc);ua=function(){if(cb)if(kc&&getComputedStyle(kc).display==="none")for(;Ea.length;)window.removeEventListener("scroll",Ea.pop());else window.scrollY>Ka-200?Ua||(Ua=!0,window.keepaAnim.fadeIn(Oa,{duration:500})):Ua&&(Ua=!1,window.keepaAnim.fadeOut(Oa,{duration:300}))};Ea.push(ua);window.addEventListener("scroll",ua)}function Aa(T,va){var Ma=T.current[l.priceTypes[0]],y=T.deltaPercent[l.priceTypes[0]];y=y==100?99:y;var R=y>20?24:16,qa=T.current[CsvType.SALES.index], 1663xa=qa==-1?"":" "+la._473+" "+NumberUtil.format(T.current[CsvType.SALES.index]),ja=GraphService.getWebGraphTypeAllOff();ja[CsvType.SALES.index]=1;ja=GraphService.getUrl(T.asin,storage.domain,78,28,ja,31,1);T.graphSales!=null&&(ja="data:image/png;base64,"+T.graphSales);qa=hasDataAccessSubscription&&qa!=-1&&l.priceTypes[0]!=CsvType.SALES.index?'<span name="minigraphSales" title="1 month '+CsvType.getName(CsvType.SALES.index)+" history."+xa+'" style="flex-grow: 1;text-align: right;right: 13px;height:28px; width:78px; display: inline-block;background:url('+ 1664ja+') no-repeat right"></span><br>':"";GraphService.getWebGraphTypeAllOff()[l.priceTypes[0]]=1;xa="";T.graphPrice!=null&&(xa="data:image/png;base64,"+T.graphPrice);xa=CsvType.getObject(l.priceTypes[0]).graphAPI?"background-image:url("+xa+");":"";qa=`<div class="flex" style="height:30px;"> 1665 <span title="1 month ${CsvType.getName(l.priceTypes[0])} price history" name="minigraph" style="margin-bottom:2px;height:28px;width:78px;display:inline-block;${xa}"></span>${qa} 1666 </div>`;y=`<div class="productDiscountBox"> 1667 ${`<i class="${y==0?"fa fa-arrow-circle-right fa-18 text-grey-300":"fa fa-arrow-circle-down fa-18 arrowBlue"}" style="font-size:${R+3}px !important;"></i>`}<span class="productSmallPercent-${R}">${y>999?">999%":y+"%"}</span> 1668 </div>`;var Na=l.priceTypes[0]===CsvType.LIGHTNING_DEAL.index;xa=l.priceTypes[0]===CsvType.WAREHOUSE.index;var hb=l.priceTypes[0]===CsvType.PRIME_EXCL.index,qb=ja="";if(l.priceTypes[0]===CsvType.SALES.index){var ab=T.avg[l.priceTypes[0]]<1?"":`${CsvType.format("SALES",T.avg[l.priceTypes[0]])}`;Na=`${CsvType.format("SALES",Ma)}`}else{ab=T.avg[l.priceTypes[0]]<1?"":`${Money.format(T.avg[l.priceTypes[0]],{sourceDomainId:l.domainId})}`;if(Na||xa||hb)ab=T.avg[CsvType.AMAZON.index]>0?T.avg[CsvType.AMAZON.index]: 1669T.avg[CsvType.NEW.index],ab=ab<1?"":`${Money.format(ab,{sourceDomainId:l.domainId})}`;Na=Ma==-1?la._134:`${Money.format(Ma,{sourceDomainId:l.domainId})}`;showReferencePrice(l.domainId)&&(ja=T.avg[l.priceTypes[0]]<1?"":`<span class="price__reference">${Money.format(T.avg[l.priceTypes[0]],{sourceDomainId:l.domainId,targetDomainId:l.domainId})}</span> `,qb=Ma==-1?"":`<span class="price__reference">${Money.format(Ma,{sourceDomainId:l.domainId,targetDomainId:l.domainId})}</span> `)}Ma=`<div class="productDealTable"> 1670 <span class="productPriceTableTdSmallS">${ab?`${la._385}: `:""}${ja}${ab}</span><br><span class="productPriceTableTdLargeS">${la._81}${qb}${Na}</span> 1671 </div>`;ja=T.categories==null||T.categories.length==0?'<br><span class="dealsFindRelatedDeals"> </span>':`<br><span class="dealsFindRelatedDeals" data-catIds="${JSON.stringify(T.categories)}">${la._420}</span>`;qb=`<span class="externalAmazon" style="position: absolute;color:#555;
1671cursor: alias;right: 7px;bottom: 7px;" href="${getAmazonRedirectByDomain(T.domainId,T.asin)}" title="${la._99} Amazon" target="_blank"><i class="fa fa-amazon"></i></span>`;ab="";xa&&T.warehouseCondition>0&&(ab=`<span title="${encodeHTML(T.warehouseConditionComment)}" class="wdc">${CsvType.getCondition(T.warehouseCondition)}</span><br>`); 1672xa=l.sortType!==1&&T.currentSince?T.currentSince[l.priceTypes[0]]:T.creationDate;xa=`<div class="productDealAgoBox"> 1673 ${ab} 1674 <span class="productDealAgo">${la._476} ${prettyDate(keepaTime.now()-xa)}</span>${ja} 1675 ${qb} 1676 </div>`;return Ia(T,va,`${qa}<div class="flex">${y}${Ma}</div>${xa}`,R,!1)}function Ia(T,va,Ma,y,R){y=createImageTag({imagesCSV:T.image,size:180});T.domainId==5&&(U=16);if(T.title==null)return reportBug("deals: title is null!",T.domainId+" "+T.asin),"";T.title=stripHTML(T.title).replace(/"/g,""");R=T.title+(T.itemHighlights?" | "+stripHTML(T.itemHighlights).replace(/"/g,"""):"");return'<div class="title" style="max-width: 210px;font-size: 14px">'+(R.length<=U?R:R.substr(0,U)+"\u2026")+ 1677'</div><a href="#!product/'+T.domainId+"-"+T.asin+'"><div class="productBox" id="pB'+va+'" title="'+R+'"><div class="productImageDiv"><div class="productImage" >'+y+'</div></div><div class="productSmallDescription" style="margin-left: 6px;">'+Ma+"</div></div></a>"}function Ga(T){return String(T==null?"":T).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function Ya(T,va){T=Number(T);Number.isFinite(T)&&ob(va)&&pb.set(T,String(va).trim())}function Pa(T,va){T= 1678Number(T);va=Number(va);Number.isFinite(T)&&Number.isFinite(va)&&va!==0&&va!==T&&ub.set(T,va)}function ta(T){var va=[],Ma=new Set([T]);for(T=ub.get(T);T!=null&&!Ma.has(T);)va.push(T),Ma.add(T),T=ub.get(T);return va}function ea(T,va,Ma){fb={ids:Array.isArray(T)?T:[],names:Array.isArray(va)?va:[],counts:Array.isArray(Ma)?Ma:[]};for(T=0;T<fb.ids.length;T++)Ya(fb.ids[T],fb.names[T]);Fa()}function Fa(){var {ids:T,names:va,counts:Ma}=fb,y=document.getElementById("filterBar"),R=document.getElementById("filterBarContent"); 1679if(y&&R)if(T.length===0)y.style.display="none",R.style.display="none",replaceHtml("filterScope",""),(y=document.getElementById("filterCats"))&&delete y.dataset.sig;else{y.style.display="";R.style.display="";var qa=[],xa=new Set,ja=0;for(var Na=0;Na<T.length;Na++){var hb=Number(T[Na]);if(!Number.isFinite(hb)||xa.has(hb))continue;var qb=Number(Ma[Na])||0;ja+=qb;if(qb===0)continue;var ab=ob(va[Na])?String(va[Na]).trim():pb.get(hb)||"";ab&&(xa.add(hb),qa.push({id:hb,count:qb,name:ab}))}qa.sort((Vb,cc)=> 1680Vb.name.localeCompare(cc.name));var {include:Jb,exclude:ib}=M.get(),Wb=new Set(Jb),lc=new Set(ib),ic=Vb=>Wb.has(Vb)?"included":lc.has(Vb)?"excluded":"";Na=qa.map(Vb=>{var cc=ic(Vb.id),kc=NumberUtil.format(Vb.count,0),yc=cc==="included"?la._1111:cc==="excluded"?la._1122:"",Gc=Ga(Vb.name),Hc=cc==="included"?la._1179:la._1747,tc=cc==="excluded"?la._1179:la._1095;return`<div class="catRow${cc?" -"+cc:""}"> 1681 <button type="button" class="catRow__pick" data-cat="${Vb.id}" data-act="only" 1682 title="${cc==="included"&&Jb.length===1?la._1179:la._1322}" 1683 aria-label="${Gc}, ${kc}${yc?" \u2014 "+yc:""}"> 1684 <span class="catRow__mark"><i class="fa fa-check"></i></span> 1685 <span class="catRow__name">${Gc}</span> 1686 <span class="catRow__n">${kc}</span> 1687 </button> 1688 <button type="button" class="catRow__add" data-cat="${Vb.id}" data-act="include" 1689 title="${Hc}" aria-label="${Hc}: ${Gc}"><i class="fa ${cc==="included"?"fa-minus":"fa-plus"}"></i></button> 1690 <button type="button" class="catRow__x" data-cat="${Vb.id}" data-act="exclude" 1691 title="${tc}" aria-label="${tc}: ${Gc}"><i class="fa fa-times"></i></button> 1692 </div>`}).join("");hb=Jb.concat(ib).filter(Vb=>!xa.has(Vb)).map(Vb=>{var cc=ic(Vb);var kc=pb.get(Vb)||"#"+Vb;kc=Ga(kc);return`<button type="button" class="catChip -${cc}" data-cat="${Vb}" data-act="clear" 1693 title="${la._1179}" aria-label="${kc} \u2014 ${cc==="included"?la._1111:cc==="excluded"?la._1122:""}"> 1694 <span class="catChip__name">${kc}</span><i class="fa fa-times catChip__x"></i> 1695 </button>`}).join("");qb=Jb.length>0||ib.length>0;ab=Vb=>qa.reduce((cc,kc)=>Vb.has(kc.id)?cc+kc.count:cc,0);ab=Jb.length>0?Jb.some(Vb=>!xa.has(Vb))?null:ab(Wb):ja-ab(lc);var Yb=`<i class="fa fa-th-large"></i>${la._82}`;ja=(qb?`<button type="button" class="catReset" data-reset="1"> 1696 ${Yb}<span class="catReset__n">${NumberUtil.format(ja,0)}</span> 1697 </button> 1698 <span class="catScope"> 1699 <i class="fa fa-filter"></i>${la._347}${ab==null?"":`<span class="catScope__n">${NumberUtil.format(ab,0)}</span>`} 1700 </span>`:`<span class="catScope"> 1701 ${Yb}<span class="catScope__n">${NumberUtil.format(ja,0)}</span> 1702 </span>`)+(hb?'<span class="catBar__sep" aria-hidden="true"></span>':"")+hb;hb=ja+"|"+Na;qb=document.getElementById("filterCats");if(!qb||qb.dataset.sig!==hb)if(replaceHtml("filterScope",ja),replaceHtml("filterCats",Na),qb=document.getElementById("filterCats"))qb.dataset.sig=hb,delete qb.dataset.f
1702itKey;sizeCategoryGrid(qb,qa.length);observeCategoryGrid(R,"filterCats");bb(y)}}function bb(T){T.dataset.bound||(T.dataset.bound="1",T.addEventListener("click",va=>{if(!va.target.closest("#categorySearchResults")&& 1703(va=va.target.closest("[data-cat],[data-reset]"))&&T.contains(va)){if(va.hasAttribute("data-reset"))M.reset();else{let Ma=Number(va.getAttribute("data-cat"));if(!Number.isFinite(Ma))return;switch(va.getAttribute("data-act")){case "only":M.switchTo(Ma);break;case "include":M.toggleInclude(Ma);break;case "exclude":M.toggleExclude(Ma);break;default:M.clear(Ma)}}l.page=0;Fa();db();sa()}}))}function Ra(){var T=document.getElementById("dealCategorySearch"),va=document.getElementById("dealCategorySearchBar"), 1704Ma=document.getElementById("submitDealCategorySearch"),y=document.getElementById("filterBar");if(T&&va&&Ma&&y&&!T.dataset.bound){T.dataset.bound="1";var R=null,qa=()=>{Rb=[];replaceHtml("categorySearchResults","");var ja=document.getElementById("categorySearchResults");ja&&(ja.style.display="none")},xa=()=>{va.value="";T.classList.remove("-filled");qa()};va.addEventListener("input",()=>{var ja=va.value.trim();T.classList.toggle("-filled",ja.length>0);clearTimeout(R);ja.length<3?qa():R=setTimeout(()=> 1705Sa(ja),300)});va.addEventListener("keydown",ja=>{ja.key==="Escape"&&xa()});Ma.addEventListener("click",xa);Ma.addEventListener("keydown",ja=>{if(ja.key==="Enter"||ja.key===" ")ja.preventDefault(),xa()});y.addEventListener("click",ja=>{if(ja.target.closest("#categorySearchResults .catHits__clear"))xa();else if(ja=ja.target.closest("#categorySearchResults [data-cat]"))ja=Number(ja.getAttribute("data-cat")),Number.isFinite(ja)&&(M.toggleInclude(ja),l.page=0,Fa(),db(),sa())});y.addEventListener("keydown", 1706ja=>{ja.key!=="Enter"&&ja.key!==" "||!ja.target.closest("#categorySearchResults .catHits__clear")||(ja.preventDefault(),xa())})}}function Sa(T){network.request({path:"service/search",type:"category",domainId:l.domainId,content:T}).always(function(va){var Ma=document.getElementById("dealCategorySearchBar");if(Ma&&Ma.value.trim()===T)if(va==null||va.categories==null)console.error("category search data is null");else{va=va.categories;Ma=[];for(var y in va){var R=va[y];Ya(R.catId,R.name);Pa(R.catId,R.parent)}a:for(var qa in va){y= 1707va[qa];if(y.children!=null&&y.children.length>0)for(var xa of y.children)if(va[xa])continue a;Ma.push(y.catId)}qa=[];for(let ja of Ma){xa=va[ja];if(!xa)continue;Ma=[{id:xa.catId,label:xa.name,muted:!xa.isBrowseNode}];y=xa.name;for(R=!1;xa!=null&&xa.parent!=0;){xa=va[xa.parent];if(!xa)break;xa.isBrowseNode?(R=!1,Ma.unshift({id:xa.catId,label:xa.name}),y=xa.name+y):(R||Ma.unshift({id:xa.catId,label:"\u2026",title:xa.name}),R=!0)}y.indexOf("Custom Stores")===-1&&y.indexOf("Special Feature Stores")=== 1708-1&&y.indexOf("Kindle")===-1&&qa.push({sortKey:y,steps:Ma})}qa.sort((ja,Na)=>ja.sortKey.localeCompare(Na.sortKey));Rb=qa;db(!0)}})}function db(T){var va=document.getElementById("categorySearchResults");va&&(T||va.style.display!=="none")&&(va=Rb.map(Ma=>`<div class="catHit">${Ma.steps.map(y=>{var R=M.stateOf(y.id)==="included";R=((y.muted?"italic opacity-70":"")+(R?" -picked":"")).trim();return`<span data-cat="${y.id}"${R?` class="${R}"`:""}${y.title?` title="${Ga(y.title)}"`:""}>${Ga(y.label)}</span>`}).join(" ➜ ")}</div>`).join(""), 1709replaceHtml("categorySearchResults",`<div class="catHits__head"><span class="catHits__label">${va.length===0?la._250:la._251}</span><span class="catHits__clear" role="button" tabindex="0"><i class="fa fa-times"></i> ${la._290}</span></div>${va}`),(va=document.getElementById("categorySearchResults"))&&T&&(va.style.display=""))}function eb(){L=!0;dealsTotalResults=1E4;ka("");W();D(!1);var T=document.getElementById("submitDealQuery");DomUtil.show(T);window.keepaAnim.highlight(T,{color:"#8CDDFF", 1710duration:500})}function sa(){isMobile?eb():document.getElementById("submitDealQuery")?.click()}function Qa(T,va){if(T){setTimeout(function(){ColorTip.attach(T,{color:"whiteDeals"});var R=T.lastElementChild;R&&DomUtil.setStyles(R,{width:250,top:"-18px"});
1710ColorTip.attach(T.querySelectorAll(".wdc"),{color:"yellow"})},100);T.querySelectorAll(".dealsFindRelatedDeals").forEach(R=>{R.addEventListener("click",function(qa){qa.preventDefault();qa.stopPropagation();M.reset();M.include(tryParseJSON(R.getAttribute("data-catIds"))|| 1711[]);O()})});T.querySelectorAll(".externalAmazon").forEach(R=>{R.addEventListener("click",function(qa){qa.preventDefault();qa.stopPropagation();qa=R.getAttribute("href");window.open(qa)})});T.addEventListener("mousedown",function(){var R=T.parentElement;DomUtil.setStyles(R?.parentElement,{opacity:getVisitedOpacity()});if(R=R?.getAttribute("href")?.split("/")[1])sessionStorage[R]=1,databaseDeals&&setDealsItem(R,keepaTime.now())},{once:!0});var Ma=T.querySelector(".productImage > img");if(Ma){var y= 1712Ma.getAttribute("src");Ma.addEventListener("mouseenter",function(){var R=JSON.parse(get("webGraphType"));R[l.priceTypes[0]]=1;R=GraphService.getUrl(va,storage.domain,180,180,R,365,1);Ma.setAttribute("src",R);Ma.setAttribute("title",la._477)});Ma.addEventListener("mouseleave",function(){Ma.setAttribute("src",y);Ma.setAttribute("title","")})}}}function Ta(T,va){var Ma=z[T],y='<ul><li data-type="0">'+la._478+'</li><li data-type="1">'+la._479+'</li><li data-type="2">'+la._379+"</li></ul>";return'<div class="saveSlotBox"><div class="panelBookmark"><span class="dealsSaveSlot" data-slot="'+ 1713T+'" role="button" tabindex="0" title="'+la._480+'"><span class="dealsSaveSlot__name">'+escapeHTML(va)+'</span><span class="dealsSaveSlot__count">'+(Ma==null?"":Ma)+'</span></span><span class="editSaveSlot" role="button" tabindex="0" title="'+la._481+'"><i class="fa fa-pencil"></i></span></div>'+y+"</div>"}function ba(T){var va=T?[T]:[...(document.getElementById("dealsSaveBox")?.querySelectorAll(":scope > .saveSlotBox")||[])];T=Ma=>va.flatMap(y=>[...y.querySelectorAll(Ma)]);T(".dealsSaveSlot").forEach(Ma=> 1714Ma.addEventListener("click",function(){var y=Ma.getAttribute("data-slot"),R=storage["dealsRequest.slot_"+y],qa=null;R&&(qa=tryParseJSON(R));if(qa){R=l.settings.viewTyp;l=Q.construct(R);for(let xa in qa)qa.hasOwnProperty(xa)&&(l[xa]=qa[xa]);l.page=0;l.domainId=storage.domain;l.settings=l.settings||{};l.settings.viewTyp=R;M.normalize();qa=JSON.parse(JSON.stringify(l));delete qa.construct;window.location.hash="!deals/"+encodeURIComponent(JSON.stringify(qa));t("last");V();ia();y=storage["dealsRequest.slotName_"+ 1715y];document.title=`${window.docTitlePrefix||"Keepa - "}${la._12}${y?` | ${y}`:""}`}else console.error("Failed to load slot request:",y)}));T(".editSaveSlot").forEach(Ma=>Ma.addEventListener("click",function(){window.keepaAnim.slideToggle(Ma.closest(".saveSlotBox")?.querySelector(":scope > ul"),{duration:300})}));T("li").forEach(Ma=>Ma.addEventListener("click",function(){var y=Ma.closest(".saveSlotBox"),R=y?.querySelector(".dealsSaveSlot"),qa=y?.querySelector(".dealsSaveSlot__name"),xa=R?.getAttribute("data-slot"); 1716R=Ma.getAttribute("data-type");DomUtil.hide(Ma.parentElement);if(xa!=void 0)switch(Number(R)){case 0:t("slot_"+xa);v(xa);break;case 1:if(!qa)break;let ja=qa.textContent;qa.setAttribute("contenteditable","true");qa.focus();let Na=function(hb){hb.type==="keydown"&&hb.keyCode!==13?qa.textContent.length>=20&&![8,37,38,39,40,46].includes(hb.keyCode)&&!hb.ctrlKey&&!hb.metaKey&&hb.preventDefault():(hb.preventDefault(),qa.removeAttribute("contenteditable"),qa.removeEventListener("focusout",Na),qa.removeEventListener("keydown", 1717Na),hb=qa.textContent.trim(),hb.length===0||hb.match(/^\s*$/)?hb=ja:(hb=hb.substring(0,20),storage["dealsRequest.slotName_"+xa]=hb,settings.send()),qa.textContent=hb)};qa.addEventListener("focusout",Na);qa.addEventListener("keydown",Na);break;case 2:storage.removeItem("dealsRequest.slot_"+xa),storage.removeItem("dealsRequest.slotName_"+xa),settings.send(),delete z[xa],window.keepaAnim.shrinkOut(y,700,function(){y.remove();DomUtil.show(document.getElementById("dealsSaveSlotAdd"));e()})}}))}function e(){var T= 1718document.querySelector('#leftPanel .panelBox[data-box="bookmarks"]');if(T){var va=T.querySelectorAll(".saveSlotBox").length,Ma=T.querySelector(".panelBox__summary");Ma||(Ma=document.createElement("span"),Ma.className="panelBox__summary",T.querySelector(".panelBox__header").appendChild(Ma
1718));Ma.textContent=va||""}}function x(T,va){z[T]=va;va!==void 0&&document.querySelectorAll(`.dealsSaveSlot[data-slot="${T}"] .dealsSaveSlot__count`).forEach(Ma=>{Ma.textContent=va})}function v(T){if(storage["dealsRequest.slot_"+ 1719T]!=null){var va=G("slot_"+T,!0);va.perPage=-1;[va]=ha(va);va.done(Ma=>{x(T,Ma.totalResults)}).fail(()=>{x(T,"?")})}}function C(){for(let T=0;T<30;T++)v(T)}function A(){var T="",va=0,Ma=!1;for(let y=0;y<30;y++)storage["dealsRequest.slot_"+y]!=null?(T+=Ta(y,storage["dealsRequest.slotName_"+y]||la._482+y),va++):Ma=!0;return{count:va,html:`<div id="dealsSaveBox">${T}${`<div id="dealsSaveSlotAdd" class="panelAction -add" role="button" tabindex="0" title="${la._484}"${Ma?"":' style="display:none"'}><i class="fa fa-plus-circle"></i><span>${la._483}</span></div>`}</div>`}} 1720function H(){var T=document.getElementById("dealsSaveSlotAdd");T?.addEventListener("click",function(){for(var va=0;va<30&&storage["dealsRequest.slot_"+va]!=void 0;va++);if(va<30){t("slot_"+va);let Ma=l.titleSearch==""?la._482+va:l.titleSearch;storage["dealsRequest.slotName_"+va]=Ma;T.insertAdjacentHTML("beforebegin",Ta(va,Ma));ba(T.previousElementSibling);v(va);e()}va>=29&&DomUtil.hide(T)});ba()}var Z={BOX:0,TABLE:1},ca=T=>{typeof GridDeals!=="undefined"&&T(GridDeals)},K=null,F=storage.domain,z={}, 1721g=()=>Number(storage.domain)===5?1:100,m={deltaPercentRange:{scale:()=>1,maxValue:100},deltaRange:{scale:g},currentRange:{scale:g},salesRankRange:{scale:()=>1,noLimit:-1,needsSubscription:!0}},w={},I=new Set,S=()=>{var T=1;switch(storage.domain){case "10":T=100;break;case "11":T=100;break;case "12":case "7":T=10;break;case "13":T=2}return T},ma=[{field:"salesRankDisplayGroup",label:la._391+": "+la._1559,tooltip:la._1560},{field:"websiteDisplayGroupName",label:la._1521+" "+la._1523,tooltip:la._1522}, 1722{field:"websiteDisplayGroup",label:la._1521+" "+la._1524,tooltip:la._1522},{field:"type",label:la._1110,tooltip:la._1330},{field:"manufacturer",label:la._128,tooltip:la._1319},{field:"brand",label:la._127,tooltip:la._1312},{field:"brandStoreName",label:la._1475,tooltip:la._1476},{field:"brandStoreUrlName",label:la._1491,tooltip:la._1492},{field:"model",label:la._1112,tooltip:la._1320},{field:"color",label:la._591,tooltip:la._1315},{field:"size",label:la._592,tooltip:la._1324},{field:"unitType",label:la._1400, 1723tooltip:la._1401},{field:"scent",label:la._1439,tooltip:la._1440},{field:"itemForm",label:la._1441,tooltip:la._1442},{field:"pattern",label:la._1443,tooltip:la._1444},{field:"style",label:la._1445,tooltip:la._1330},{field:"material",label:la._1447,tooltip:la._1448},{field:"itemTypeKeyword",label:la._1435,tooltip:la._1436},{field:"targetAudienceKeyword",label:la._1437,tooltip:la._1438},{field:"edition",label:la._593,tooltip:la._1316},{field:"format",label:la._595,tooltip:la._1317},{field:"author", 1724label:la._1138,tooltip:la._1310},{field:"binding",label:la._1113,tooltip:la._1311},{field:"languages",label:la._1144,tooltip:la._1318},{field:"partNumber",label:"PartNumber",tooltip:la._1321}],Q={construct:function(T){for(var va of Object.getOwnPropertyNames(this))va!="construct"&&delete this[va];this.page=0;this.domainId=localStorageSupported?storage.domain:1;this.excludeCategories=[];this.includeCategories=[];for(va=0;va<numberOfDomains;va++)this.excludeCategories[va]=[],setTimeout(function(){for(let y= 17250;y<numberOfDomains;y++)storage.removeItem("dealsExcludedCats."+y),storage.removeItem("dealExcludedCats."+y);storage.removeItem("dealExcludedCats");storage.removeItem("dealsExcludedCats")},1E4),this.includeCategories[va]=[];va=S();this.priceTypes=[CsvType.AMAZON.index];this.deltaRange=[0,2147483647];var Ma=document.getElementById("checkboxDeltaLastRange");Ma&&(Ma.checked=!1);delete this.deltaLastRange;this.deltaPercentRange=[20,80];this.salesRankRange=[-1,-1];this.currentRange=[500*va,4E4*va];this.minRating= 1726-1;this.isOutOfStock=this.isLowestOffer=this.isLowest90=this.isLowest=!1;this.titleSearch="";this.isRangeEnabled=!0;this.isFilterEnabled=!1;this.singleVariation=this.filterErotic=!0;this.mustNotHaveAmazonOffer=this.mustHaveAmazonOffer=this.isPrimeExclusive=this.hasReviews=!1;this.sortType=4;this.dateRange=1;this.warehouseConditions=[1,2,3,4,5];ma.forEach(y=>{this[y.field]=[]});this.settings={viewTyp:T===Z.TABLE?Z.TABLE:Z.BOX};return this}}
1726,l=Q.construct(),M=(()=>{var T=()=>{var ja=Number(l.domainId!= 1727null?l.domainId:storage.domainId);return Number.isInteger(ja)&&ja>=0&&ja<numberOfDomains?ja:1},va=ja=>{var Na=[];if(!Array.isArray(ja))return Na;for(let hb of ja)ja=Number(hb),Number.isFinite(ja)&&ja!==0&&Na.indexOf(ja)===-1&&Na.push(ja);return Na},Ma=ja=>{var Na=[];for(var hb=0;hb<numberOfDomains;hb++)Na[hb]=[];if(!Array.isArray(ja)||ja.length===0)return Na;if(ja.some(qb=>Array.isArray(qb)))for(hb=0;hb<numberOfDomains;hb++)Na[hb]=va(ja[hb]);else Na[T()]=va(ja);return Na},y=ja=>{ja=ja||l;ja.excludeCategories= 1728Ma(ja.excludeCategories);ja.includeCategories=Ma(ja.includeCategories);return ja},R=()=>{y();var ja=T();return{include:l.includeCategories[ja].slice(),exclude:l.excludeCategories[ja].slice()}},qa=ja=>{y();var Na=T();ja.include&&(l.includeCategories[Na]=va(ja.include));ja.exclude&&(l.excludeCategories[Na]=va(ja.exclude))},xa=(ja,Na)=>ja.filter(hb=>{var qb;(qb=hb===Na)||((qb=ta(Na).indexOf(hb)!==-1)||(qb=ta(hb).indexOf(Na)!==-1),qb=!qb);return qb});return{normalize:y,get:R,set:qa,stateOf(ja){var {include:Na, 1729exclude:hb}=R();return Na.indexOf(ja)!==-1?"included":hb.indexOf(ja)!==-1?"excluded":""},switchTo(ja){var {include:Na,exclude:hb}=R();qa({include:Na.length===1&&Na[0]===ja?[]:[ja],exclude:hb.filter(qb=>qb!==ja)})},toggleInclude(ja){var {include:Na,exclude:hb}=R();qa(Na.indexOf(ja)===-1?{include:xa(Na,ja).concat(ja),exclude:hb.filter(qb=>qb!==ja)}:{include:Na.filter(qb=>qb!==ja)})},toggleExclude(ja){var {include:Na,exclude:hb}=R();qa(hb.indexOf(ja)===-1?{exclude:hb.concat(ja),include:Na.filter(qb=> 1730qb!==ja)}:{exclude:hb.filter(qb=>qb!==ja)})},include(ja){var {include:Na,exclude:hb}=R(),qb=Array.isArray(ja)?ja:[ja];qa({include:Na.concat(qb),exclude:hb.filter(ab=>qb.indexOf(ab)===-1)})},clear(ja){var {include:Na,exclude:hb}=R();qa({include:Na.filter(qb=>qb!==ja),exclude:hb.filter(qb=>qb!==ja)})},reset(){qa({include:[],exclude:[]})},isNarrowed(){var {include:ja,exclude:Na}=R();return ja.length>0||Na.length>0},toWire(){var {include:ja,exclude:Na}=R();return{includeCategories:ja,excludeCategories:Na}}}})(), 1731na=[' <i class="fa fa-sort-numeric-asc"></i>',' <i class="fa fa-sort-numeric-desc"></i>'],U=28,L=!1,ra=null,Da=null,Ea=[],oa=[],Ja=!0,Ha=()=>{var {html:T,onSubmit:va}=ya("moreFilterForm"),Ma=showPopup(la._1250,`<div id="moreFilterFormContainer" class="popup--medium"> 1732 ${T} 1733 </div>`,!0);ColorTip.attach(".filter-text:not(:nth-child(3n)) .fa-question",{color:"yellow"});ColorTip.attach(".filter-text:nth-child(3n) .fa-question",{color:"yellow",container:"#moreFilterFormContainer"});GlobalFilterAutocomplete.initAutocompleterInputs("moreFilterForm",!1);va.finally(()=>{Ma.close();sa()}).catch(y=>{isTest&&console.error("Popup handling failed:",y)})},ya=T=>{var va=`${T}Submit`,Ma=material.getButton(va,la._225,"paper-plane"),y=`${T}Clear`,R=`<section class="block--mdc-typography" style="display:flex;justify-content:space-between;align-items:center;"> 1734 <p>${la._1258}</p> 1735 ${hasDataAccessSubscription?`<span id="${y}" class="cursor-pointer"><i class="fa fa-undo"></i> ${la._54}</span>`:'<span><i class="fa fa-lock fa-fw fa-18"></i></span>'} 1736 </section>`,qa=ma.map(xa=>{var ja=l[xa.field]?.length?l[xa.field]:[],Na=ja.some(hb=>hb.startsWith("\u271c"))?"isNoneOf":"isOneOf";ja=ja.map(hb=>hb.startsWith("\u271c")?hb.substring(1):hb);return hasDataAccessSubscription?GlobalFilterAutocomplete.getHtml(xa.field,xa.label,ja,Na,xa.tooltip,!1):`<span class="mr-4">${xa.label}</span>`}).join("");Ma=` 1737 <div id="${T}PopupWrapper"> 1738 <form id="${T}" style="width: 100%;"> 1739 ${R} 1740 ${` 1741 <div class="filter-text--wrapper"> 1742 ${qa} 1743 </div> 1744 `} 1745 <div style="margin-top: 20px;"> 1746 ${hasDataAccessSubscription?Ma:`<hr class="-pro" /><p class="mdc-typography--body2"><i class="fa fa-lock fa-fw fa-18"></i> ${LangUtil.fill(la._744,{promoPriceProMonth:SettingsSubscription.PROMO_PRICE_PRO_MONTH})}</p>`} 1747 </div> 1748 </form> 1749 </div> 1750 `;material.init(`#${T}`);return{html:Ma,onSubmit:za(T,va,y)}},za=(T,va,Ma)=>new Promise((y,R)=>{setTimeout(()=>{var qa=document.getElementById(T),xa=document.getElementById(va),ja=document.getElementById(Ma);qa&&xa&&(xa.addEventListener("click",async Na=>{Na.preventDefault();try{let hb=new FormData(qa),qb=Array.from(hb,([ab,Jb])=>({name:ab,value:Jb}));for(let {name:ab,value:Jb}of qb){let [ib,...Wb]=ab.split("-"),lc=Wb.join("-");Na=null;
1750switch(ib){case "autocomplete":case "autocompleteReal":case "autocompleteType":if(ib!== 1751"autocomplete"&&ib!=="autocompleteType")if(Jb.length){Na=qb.find(Yb=>Yb.name===`autocompleteType-${lc}`)?.value;let ic=Jb.split("###").map(Yb=>Yb.trim()).filter(Yb=>Yb&&Yb!=="No matches found");ic=ic.slice(0,GlobalFilterAutocomplete.maxValues);Na==="isNoneOf"&&(ic=ic.map(Yb=>`\u271c${Yb}`));l[lc]=ic}else l[lc]=[]}}y()}catch(hb){qa.innerHTML=`<p class="error">${la._error}</p>`,R(hb)}}),ja?.addEventListener("click",async Na=>{document.querySelectorAll(`#${T} .clear-all i`).forEach(hb=>hb.click())}))}, 17520)}),cb=!0,fb={ids:[],names:[],counts:[]},pb=new Map,ob=T=>{T=String(T==null?"":T).replace(/[\s\u200b-\u200f\ufeff]+/g,"");return T!==""&&T!=="?"},ub=new Map,Rb=[];return{init:function(){storage.domain!=F&&(z={},F=storage.domain);C();if(Ja){try{a()}catch(va){console.error(va)}try{b(Ba)}catch(va){console.error(va)}}Ja=!1;var T=document.getElementById("submitDealQuery");T&&Da&&T.removeEventListener("click",Da);Da=function(){DomUtil.hide(T);var va=window.location.hash;dealsTotalResults=1E4;L=!1;var Ma= 1753!!document.getElementById("checkboxDeltaLastRange")?.checked;Ma&&l.deltaRange?(l.deltaLastRange=l.deltaRange,delete l.deltaRange):!Ma&&l.deltaLastRange&&(l.deltaRange=l.deltaLastRange,delete l.deltaLastRange);t("last");window.location.hash="!deals/"+encodeURIComponent(JSON.stringify(l));va==window.location.hash&&V()};T&&T.addEventListener("click",Da);Ra();G("last",!1);V()},loadRequest:G,insertProductParts:Ia,lastRequest:l,formatCategories:ea}};const TrackingComponent=(()=>{var a={},b=null,c=0,d={},f="",k=!1,n=!1,q=!1,r=!1,u=!1,B="track",t=0,G=[],da=!1,Y=null,X=!1,P=[CsvType.BUY_BOX_SHIPPING.index,CsvType.AMAZON.index,CsvType.NEW.index,CsvType.USED.index],ka=[CsvType.LIGHTNING_DEAL.index,CsvType.NEW_FBA.index,CsvType.NEW_FBM_SHIPPING.index,CsvType.WAREHOUSE.index,CsvType.USED_NEW_SHIPPING.index,CsvType.USED_VERY_GOOD_SHIPPING.index,CsvType.USED_GOOD_SHIPPING.index,CsvType.USED_ACCEPTABLE_SHIPPING.index],D=l=>(l instanceof HTMLFormElement? 1754[...l.elements]:[...l]).filter(M=>M.name&&!M.disabled&&/^(?:input|select|textarea|keygen)$/i.test(M.nodeName)&&!/^(?:submit|button|image|reset|file)$/i.test(M.type)&&(M.checked||!/^(?:checkbox|radio)$/i.test(M.type))).map(M=>({name:M.name,value:M.value})),W=l=>{l&&(l.style.display==="none"||l.style.display===""&&l.isConnected&&getComputedStyle(l).display==="none"?DomUtil.show(l):DomUtil.hide(l))},N=l=>{l&&l.dispatchEvent(new Event("change",{bubbles:!0}))},ha=(l,M)=>{l&&(M==="click"?l.click():l.dispatchEvent(new CustomEvent(M, 1755{bubbles:!0})))},V=(l,M)=>{document.querySelectorAll(l).forEach(na=>{M?DomUtil.show(na):DomUtil.hide(na)})},O=()=>{document.querySelectorAll(".tracking").forEach(l=>l.remove());t=0;a={};b=null;c=0;d={};f="";u=r=q=n=k=!1;B="track";X=!1},wa=()=>{db([c]);var l=[getDomainByTld("com.mx"),getDomainByTld("com.br"),getDomainByTld("com.au")],M=getCasinLocalesFromStorage(),na=M[0]===!0,U=[],L=[],ra=continents[domainIdToContinent[c]];for(let Da=1;Da<numberOfDomains;Da++)Da!=7&&(na&&ra.indexOf(Da)>-1&&Da!=c&& 1756(M[Da]=!0),l.indexOf(Da)>-1&&!M[Da]?db([Da]):ra.indexOf(Da)>-1&&Da!=c?U.push(Da):Da!=c&&L.push(Da));U.concat(L).forEach(Da=>{ea([Da]).onLoad.done(Ea=>{Ea?.basicProducts&&(Ea.products=Ea.basicProducts);Ea=Ea?.products;Ea?.length&&Ta([Ea[0]]);db([Da])})})},La=()=>{var l=`<p class="mdc-typography--body2">${la._147}</p>`;t===1&&(l=`${da?"":`<div class="grid-wrapper-tools" style="position:initial;"><span class="tool__trackback"><span class="trigger"><i class="fa fa-angle-double-left"></i> ${la._919}</span></span></div>`} 1757 <p class="mdc-typography--body2">${la._231}<br><b>${la._163}</b></p> 1758 <p class="mdc-typography--body2">${la._232}:<br>${la._233}${f}100. ${la._234}${f}97${la._235}.</p>`);var M=Ia(),na=ma(),U=Number(get("s_trackingTtl"));na=material.getSelect("tracking-ttl","tracking-ttl",U,na,"",!0,!0);U=t===1?`<div class="tracking__list-mode-settings"><hr> 1759 <p class="mdc-typography--body2">${la._913}</p> 1760 ${material.getCheckbox("tracking-import-oos",la._816,!1,!1,"tracking-import-oos")}<br> 1761 </div>`:"";var L=material.getButton("submitTracking",b?la._681:la._110,null,"bell-o"),ra=t===1?`<div class="tracking__submit-overlay-message"> 1762 <p class="mdc-typography--body2">${la._914}</p> 1763 </div>`:"";l=`<div class="tracking${isMobile?" tracking--mobile":""}" style="display:none;"> 1764 ${l} 1765 <form id="trackingForm"> 1766 ${t===1?"":`<span class="tracking__tab-bar-toggle-hint">${la._350}</span> 1767 <div class="tracking__tab-bar-toggle"> 1768 <i class="fa fa-globe"></i> 1769 </div>`} 1770 ${M} 1771 ${U} 1772 <div class="tracking__hint"> 1773 ${q?`<p class="mdc-typography--caption tracking__hint--amazononly" style="display:none;"> 1774 <i class="fa fa-info-circle"></i> ${la._873}<br> 1775 </p>`:""} 1776 <p class="mdc-typography--caption tracking__hint--offerdata" style="display:none;"> 1777 <i class="fa fa-info-circle"></i> ${la._653}<br> 1778 </p> 1779 ${storage.sendStartLightningDealsAlert==="true"?"":`<p class="mdc-typography--body2 tracking__hint--ld" style="display:none;"><i class="fa fa-info-circle"></i>  1780 ${la._1514.replace(/#ld#/g,la._402).replace("#settings#",la._62)} 1781 </p>`}
1782 </div> 1783 <div class="tracking__warning"> 1784 ${k?"":`<p class="mdc-typography--body2 tracking__warning--isdrop"> 1785 <i class="fa fa-exclamation-triangle"></i> 1786 ${storage.accountType==0?`${la._705.replace("<br>"," ")} ${la._706}`:k?"":`${la._704.replace("<br>"," ")} ${la._706}`} 1787 </p>`} 1788 </div> 1789 <div class="tracking__buttons"> 1790 <span title="${la._881}">${la._874}:</span> ${na} ${L} 1791 </div> 1792 <hr> 1793 <div class="tracking__settings-mode"> 1794 <div>${t===1?"":`<span class="trigger--casin-popup href">» ${la._315}</span>`}</div> 1795 <div> 1796 <div title="${la._847}">${la._843}:</div> 1797 ${material.getRadio("tracking-mode-basic",la._844,!0,"tracking-mode",!1,"basic")}  1798 ${material.getRadio("tracking-mode-advanced",la._845,!1,"tracking-mode",!1,"advanced")}  1799 ${material.getRadio("tracking-mode-pro",la._846,!1,"tracking-mode",!1,"pro")}  1800 </div> 1801 </div> 1802 <div class="tracking__submit-overlay"><div class="cssload-box-loading"></div>${ra}</div> 1803 </form> 1804 </div>`;replaceHtml(B,l);material.init(".tracking");l=c;H(l);e(l);A(l);ba(l);Z(l);t!==1?v():x();z();b?bb():Ra();C()},Ba=(l,M)=>{if(typeof CsvType[l]!=="object"||CsvType[l].isEnabled!==!0||CsvType[l].isTrackable!==!0)return"";var na=CsvType[l],U=na.index;if(t===1)var L="percent";else if(na.currency)a:switch(L=getCurrencyCodeByDomain(c).toLowerCase(),L){case "brl":L="usd";break a;case "aud":case "cad":case "mxn":L="usd";break a}else L="hashtag";var ra=`csvtype-${M}-${U}-threshold`;L=material.getInputNumberPattern(ra, 1805ra,CsvType.getName(U),"","","","off",L);c===getDomainByTld("com.br")&&(L=material.getInputNumberPattern(ra,ra,CsvType.getName(U),"","","","off","","",`<i class="mdc-text-field__icon mdc-text-field__icon--custom">${getCurrencyByDomain(c)}</i>`));ra=ia(l,M);var Da=`--csvtype-color:${na.color};--csvtype-color-bg:${na.bg};`;if(l.indexOf("NEW_")===0||U===CsvType.COUNT_NEW_FBA.index||U===CsvType.COUNT_NEW_FBM.index)Da=`--csvtype-color:${CsvType.NEW.color};--csvtype-color-bg:${CsvType.NEW.bg};`;l.indexOf("USED_")=== 18060&&(Da=`--csvtype-color:${CsvType.USED.color};--csvtype-color-bg:${CsvType.USED.bg};`);l.indexOf("REFURBISHED_")===0&&(Da=`--csvtype-color:${CsvType.REFURBISHED.color};--csvtype-color-bg:${CsvType.REFURBISHED.bg};`);var Ea="";na.isOfferData&&U!==CsvType.BUY_BOX_SHIPPING.index&&(Ea+=" tracking__block--offer-data");var oa="";l==="AMAZON"&&M===getDomainByTld("in")&&(oa='<div class="tracking__block-overlay--disable" title="Not available for amazon.in"></div>');graphIsRestricted(M,na.index)&&(oa=`<div class="tracking__block-overlay--disable" title="${la._895}"></div>`); 1807l=M===c?` <span class="trigger trigger--switch-isdrop" title="${la._850}"><span>${la._95}</span> <i class="fa fa-fw fa-retweet"></i></span>`:` <span class="trigger--switch-isdrop switch-${U}-isdrop"><span>${la._95}</span>`;var Ja="";na.isTrackableStock&&(Ja=`<div class="tracking__stock-options" data-mode="advanced"> 1808 ${material.getCheckbox(`csvtype-${M}-${U}-oos`,la._134,!1,!1,`csvtype-${M}-${U}-oos`,0,-1)} 1809 ${material.getCheckbox(`csvtype-${M}-${U}-backinstock`,la._462,!1,!1,`csvtype-${M}-${U}-backinstock`,1,-1)} 1810 </div>`,Ea+=" tracking__block--notify-if");return`<div class="tracking__block${Ea}" style="${Da}" data-type="${U}"> 1811 ${Ja} 1812 ${L}${l} 1813 <p class="mdc-text-field-helper-text mdc-text-field-helper-text--persistent"> 1814 ${CsvType.getDescriptionTracking(U)} 1815 </p> 1816 ${ra} 1817 <input type="hidden" name="csvtype-${M}-${U}-isdrop" value="1" /> 1818 ${oa} 1819 </div>`},fa=(l,M)=>{if(typeof CsvType[l]!=="object"||CsvType[l].isEnabled!==!0||CsvType[l].isTrackable!==!0)return"";var na=CsvType[l].index,U="";switch(l){case "LIGHTNING_DEAL":l="",disableUpcomingLightningDeal||(l=`${material.getCheckbox(`csvtype-${M}-${na}-upcoming`,la._839,!1,!1,`csvtype-${M}-${na}-upcoming`,1,-1)}<br>`),U+=`${l} 1820 ${material.getCheckbox(`csvtype-${M}-${na}-backinstock`,la._840,!1,!1,`csvtype-${M}-${na}-backinstock`,1,-1)}`}return U.length===0?"":`<div class="tracking__block-switches"${disableUpcomingLightningDeal?' style="height: 52px;"':""}> 1821 ${U} 1822 </div>`},ia=(l,M)=>{if(t===1)return"";var na=Ya(l,M);if(na==null)return"";var U=Ha=>CsvType[l].currency?Money.format(Ha,ra):CsvType[l].index===CsvType.RATING.index?parseFloat(Ha/10).toFixed(1):NumberUtil.format(Ha,0),L=CsvType[l].currency?f:"#",ra={sourceDomainId:c,targetDomainId:c,skipSymbol:!0};M=CsvType[l].currency?la._488:la._853;var Da=CsvType[l].currency?la._851:la._852,Ea="";na.decrease.length?na.decrease.forEach(Ha=>{var ya=U(Ha.value);Ea+=`<tr class="tracking__suggestion-item" data-value="${ya}"><td>${Ha.label}</td><td>${L} ${ya}</td></tr>`}): 1823Ea+=`<tr class="tracking__suggestion-item--emtpy"><td colspan="2">${Da}</td></tr>`;var oa="";na.increase.length?na.increase.forEach(Ha=>{var ya=U(Ha.value);oa+=`<tr class="tracking__suggestion-item" data-value="${ya}"><td>${Ha.label}</td><td>${L} ${ya}</td></tr>`}):oa+=`<tr class="tracking__suggestion-item--emtpy"><td colspan="2">${Da}</td></tr>`;Da=`<tr class="tracking__suggestion-item--current"><td>${la._344}</td><td>-</td></tr>`;na.current!=null&&na.current>-1&&(Da=`<tr class="tracking__suggestion-item--current"><td>${la._344}</td><td>${L} ${U(na.current)}</td></tr>`); 1824na=Math.max(na.decrease.length,na.increase.length);var Ja="";na>7&&(Ja+=` tracking__suggestion--${na-7}more`);Ja+="USED USED_NEW_SHIPPING USED_VERY_GOOD_SHIPPING USED_GOOD_SHIPPING USED_ACCEPTABLE_SHIPPING WAREHOUSE COUNT_USED COUNT_REVIEWS REFURBISHED COUNT_REFURBISHED".split(" ").includes(l)?" tracking__suggestion--right":" tracking__suggestion--left";return`<div class="tracking__suggestion mdc-elevation--z2${Ja}"> 1825 <div class="tracking__suggestion--decrease"> 1826 <table> 1827 ${Da} 1828 <tr> 1829 <th>${la._854} <i class="fa fa-long-arrow-down"></i></th> 1830 <th>${M}</th> 1831 </tr> 1832 ${Ea} 1833 </table> 1834 </div> 1835 <div class="tracking__suggestion--increase"> 1836 <table> 1837 ${Da} 1838 <tr> 1839 <th>${la._855} <i class="fa fa-long-arrow-up"></i></th> 1840 <th>${M}</th> 1841 </tr> 1842 ${oa} 1843 </table> 1844 </div> 1845 </div>`},Aa=l=>{var M="",na="";l!==c&&(M=`<div class="tracking__sync-switch">${material.getCheckbox(`syncdata-${l}`,"Sync tracking settings from main locale",!1,!1,`syncdata-${l}`,1)}</div>`,na='<div class="tracking__sync-overlay"></div>');return`<hr> 1846 ${M} 1847 <section> 1848 <div> 1849 <div data-mode="basic"> 1850 ${Ba("BUY_BOX_SHIPPING",l)} 1851 </div> 1852 </div> 1853 <div style="padding: 10px; padding-left:0px; flex: 0 1 calc((100% / 3)*2); margin-top: 12px;">
1854 <span style="border-left: 2px #ff74d7 solid; display: table-cell; padding-left: 10px; vertical-align: middle;">${la._997}<br> 1855 <span style="font-size:smaller;">${la._998}</span></span> 1856 </div> 1857 </section> 1858 <section> 1859 <div> 1860 <div data-mode="basic"> 1861 ${Ba("AMAZON",l)} 1862 </div> 1863 <div data-mode="advanced"> 1864 ${fa("LIGHTNING_DEAL",l)} 1865 ${Ba("LIGHTNING_DEAL",l)} 1866 </div> 1867 ${l===c?`<div class="tracking__block--meta" data-mode="advanced"> 1868 ${material.getInput(!1,"","metadata-memo",la._808,!1,"metadata-memo","","",!0,"","")}<br> 1869 ${material.getInput(!1,"","metadata-tags",la._807,!1,"metadata-tags","","",!0,"","")} 1870 </div>`:""} 1871 1872 </div> 1873 <div> 1874 <div data-mode="basic"> 1875 ${Ba("NEW",l)} 1876 </div> 1877 <div data-mode="advanced"> 1878 ${fa("NEW",l)} 1879 ${Ba("NEW_FBA",l)} 1880 ${Ba("NEW_FBM_SHIPPING",l)} 1881 </div> 1882 <div data-mode="pro"> 1883 ${Ba("COUNT_NEW",l)} 1884 ${Ba("COUNT_NEW_FBA",l)} 1885 ${Ba("COUNT_NEW_FBM",l)} 1886 </div> 1887 </div> 1888 <div> 1889 <div data-mode="basic"> 1890 ${Ba("USED",l)} 1891 </div> 1892 <div data-mode="advanced"> 1893 ${fa("USED",l)} 1894 ${Ba("WAREHOUSE",l)} 1895 ${Ba("USED_NEW_SHIPPING",l)} 1896 ${Ba("USED_VERY_GOOD_SHIPPING",l)} 1897 ${Ba("USED_GOOD_SHIPPING",l)} 1898 ${Ba("USED_ACCEPTABLE_SHIPPING",l)} 1899 </div> 1900 <div data-mode="pro"> 1901 ${Ba("COUNT_USED",l)} 1902 </div> 1903 </div> 1904 </section> 1905 <div data-mode="pro"> 1906 <hr> 1907 <p class="mdc-typography--body2">${la._841.replace("#ratingCount#",la._1563)}</p> 1908 <section> 1909 <div> 1910 ${Ba("SALES",l)} 1911 </div> 1912 <div> 1913 ${Ba("RATING",l)} 1914 </div> 1915 <div> 1916 ${Ba("COUNT_REVIEWS",l)} 1917 </div> 1918 </section> 1919 <hr> 1920 <p class="mdc-typography--body2">${la._842}</p> 1921 <section> 1922 <div> 1923 ${Ba("BUY_BOX_USED_SHIPPING",l)} 1924 ${Ba("LISTPRICE",l)} 1925 </div> 1926 <div> 1927 ${Ba("COLLECTIBLE",l)} 1928 ${Ba("COUNT_COLLECTIBLE",l)} 1929 </div> 1930 <div> 1931 ${Ba("REFURBISHED",l)} 1932 ${fa("REFURBISHED",l)} 1933 ${Ba("REFURBISHED_SHIPPING",l)} 1934 ${Ba("COUNT_REFURBISHED",l)} 1935 </div> 1936 </section> 1937 </div> 1938 ${na}`},Ia=()=>{var l={id:"tracking__tab-bar",mode:"text",tabs:[{tab:{id:`tracking__tab--${c}`,label:`<img src="${flags[c]}" /> .${getTldByDomain(c).replace("com.","").replace("co.","")}`},panel:{id:`tracking__panel--${c}`,content:Aa(c)},isActive:!0}],panelsClass:"tracking__panel"};if(t!==1){let M=domainIdToContinent[c];continents[M].forEach(na=>{na!==c&&l.tabs.push({tab:{id:`tracking__tab--${na}`,label:`<img src="${flags[na]}" /> .${getTldByDomain(na).replace("com.","").replace("co.","")}`},panel:{id:`tracking__panel--${na}`, 1939content:""}})});continents.forEach((na,U)=>{U!==M&&na.forEach(L=>{L!==c&&l.tabs.push({tab:{id:`tracking__tab--${L}`,label:`<img src="${flags[L]}" /> .${getTldByDomain(L).replace("com.","").replace("co.","")}`},panel:{id:`tracking__panel--${L}`,content:""}})})})}return material.getTabs(l)},Ga=()=>{var l=Deferred(),M=material.getButton("multilocale__submit",la._848,null,"globe"),na=material.getButton("multilocale__cancel",la._380,"ban",null,!1,!0),U=[13,14],L=[la._664,la._665,la._353,la._354,la._663], 1940ra="";continents.forEach((Da,Ea)=>{var oa="";U.length&&(Da=Da.filter(Ja=>!U.includes(Ja)||Ja===c));Da.length!==0&&(Da.forEach(Ja=>{oa+=material.getCheckbox(`multilocale-${Ja}`,`<img src="${flags[Ja]}" /> .${getTldByDomain(Ja).replace("com.","").replace("co.","")}`,!1,!1,"multilocale[]",Ja);oa+=`<span class="tracking__multilocale-casin-data tracking__multilocale-casin-data--${Ja}"><i class="fa fa-spinner fa-pulse"></i></span>`}),ra+=oa?`<div> 1941 <span class="tracking__multilocale-select-all"><i class="fa fa-fw fa-caret-down"></i> ${L[Ea]}</span> 1942 ${oa} 1943 </div>`:"")});M=`<div class="tracking__popup"> 1944 <form id="tracking__form--multilocale"> 1945 <div class="tracking__multilocale-options"> 1946 ${ra} 1947 </div> 1948 <div>${M} ${na}</div> 1949 <p class="mdc-typography--caption">${la._349}</p> 1950 </form> 1951 </div>`;material.init("#tracking__form--multilocale");setTimeout(()=>{var Da=document.getElementById("tracking__form--multilocale");if(Da){Da.querySelectorAll(`input[value="${c}"]`).forEach(Ha=>{Ha.checked=!0;Ha.disabled=!0});var Ea=document.getElementById("tracking__tab-bar");Ea&&Ea.querySelectorAll(".mdc-tab").forEach(Ha=>{DomUtil.isVisible(Ha)&&(Ha=Ha.id.replace("tracking__tab--",""),Da.querySelectorAll(`input[value="${Ha}"]`).forEach(ya=>{ya.checked=!0}))});Da.querySelectorAll(".tracking__multilocale-select-all").forEach(Ha=> 1952{Ha.addEventListener("click",()=>{var ya=Ha.closest("div");ya&&(ya.querySelector('input[type="checkbox"]:not(:checked)')?ya.querySelectorAll('input[type="checkbox"]').forEach(za=>{za.checked=!0}):ya.querySelectorAll('input[type="checkbox"]:not(:disabled)').forEach(za=>{za.checked=!1}
1952))})});var oa=document.getElementById("multilocale__submit"),Ja=document.getElementById("multilocale__cancel");Ja?.addEventListener("click",Ha=>{Ha.preventDefault();l.resolve()});oa?.addEventListener("click",Ha=>{Ha.preventDefault(); 1953oa.disabled=!0;Ja&&(Ja.disabled=!0);var ya=[];Da.querySelectorAll("input:checked:not(:disabled)").forEach(za=>{ya.push(Number(za.value))});ea(ya,!0).onLoad.done(za=>{typeof za!=="undefined"&&Ta(za);l.resolve({enableDomainIds:ya})}).fail(()=>{l.resolve({enableDomainIds:ya})})})}},0);return{onSubmit:l.promise(),html:M}},Ya=(l,M)=>{var na=M===a.domainId?a:d[M];if(typeof na==="undefined")return{decrease:[],increase:[],current:null};var U=na.csv[CsvType[l].index],L=na.stats[CsvType[l].index]?na.stats[CsvType[l].index]: 1954null,ra=[],Da=[];na={sourceDomainId:na.domainId,targetDomainId:c,keepUnit:!0};var Ea=null;if(U!==null){var oa=CsvType[l].currency?Money.format(1,{sourceDomainId:c,targetDomainId:c,skipSymbol:!0}):1;CsvType[l].index===CsvType.RATING.index&&(oa=parseFloat(oa/10).toFixed(1));let Ja=[3,5,7,10,20],Ha=Number(get("s_percent"));Ja.indexOf(Ha)===-1&&Ja.push(Ha);let ya=[];Ea=getLast(U,CsvType[l]);
1954CsvType[l].currency&&M!==c&&(Ea=Money.raw(Ea,na));Ea>0&&(U=Ea-1,ra.push({label:`${la._856} (${CsvType[l].currency? 1955`${f} `:""}-${oa})`,value:U}),ya.push(U));L&&(L.lowest.val>0&&(L.lowest.val<Ea||Ea===-1)&&(U=Math.floor(L.lowest.val),CsvType[l].currency&&M!==c&&(U=Money.raw(U,na)),ya.indexOf(U)===-1&&(ra.push({label:la._859,value:U}),ya.push(U))),L.lowest90.val>0&&(L.lowest90.val<Ea||Ea===-1)&&(U=Math.floor(L.lowest90.val),CsvType[l].currency&&M!==c&&(U=Money.raw(U,na)),ya.indexOf(U)===-1&&(ra.push({label:`${la._383} 3 ${la._878}`,value:U}),ya.push(U))),L.lowest180.val>0&&(L.lowest180.val<Ea||Ea===-1)&&(U=Math.floor(L.lowest180.val), 1956CsvType[l].currency&&M!==c&&(U=Money.raw(U,na)),ya.indexOf(U)===-1&&(ra.push({label:`${la._383} 6 ${la._878}`,value:U}),ya.push(U))),L.lowest365.val>0&&(L.lowest365.val<Ea||Ea===-1)&&(U=Math.floor(L.lowest365.val),CsvType[l].currency&&M!==c&&(U=Money.raw(U,na)),ya.indexOf(U)===-1&&(ra.push({label:`${la._383} 1 ${la._879}`,value:U}),ya.push(U))),L.avg.val>0&&(L.avg.val<Ea||Ea===-1)&&(U=Math.floor(L.avg.val),CsvType[l].currency&&M!==c&&(U=Money.raw(U,na)),ya.indexOf(U)===-1&&(ra.push({label:`90 ${la._857}`, 1957value:U}),ya.push(U))),L.avg180.val>0&&(L.avg180.val<Ea||Ea===-1)&&(U=Math.floor(L.avg180.val),CsvType[l].currency&&M!==c&&(U=Money.raw(U,na)),ya.indexOf(U)===-1&&(ra.push({label:`180 ${la._857}`,value:U}),ya.push(U))));Ea>0&&Ja.forEach(za=>{var cb=Math.floor(Ea-Ea*za/100);if(ya.indexOf(cb)===-1||za===Ha)ra.push({label:`-${za}%`,value:cb}),ya.push(cb)});ra.sort((za,cb)=>za.value>cb.value?-1:za.value<cb.value?1:0);ya=[];Ea>0&&(U=Ea+1,Da.push({label:`Any (${CsvType[l].currency?`${f} `:""}+${oa})`,value:U}), 1958ya.push(U));L&&(L.highest.val>0&&(L.highest.val>Ea||Ea===-1)&&(oa=Math.ceil(L.highest.val),CsvType[l].currency&&M!==c&&(oa=Money.raw(oa,na)),ya.indexOf(oa)===-1&&(Da.push({label:la._858,value:oa}),ya.push(oa))),L.highest90.val>0&&(L.highest90.val>Ea||Ea===-1)&&(oa=Math.floor(L.highest90.val),CsvType[l].currency&&M!==c&&(oa=Money.raw(oa,na)),ya.indexOf(oa)===-1&&(Da.push({label:`${la._384} 3 ${la._878}`,value:oa}),ya.push(oa))),L.highest180.val>0&&(L.highest180.val>Ea||Ea===-1)&&(oa=Math.floor(L.highest180.val), 1959CsvType[l].currency&&M!==c&&(oa=Money.raw(oa,na)),ya.indexOf(oa)===-1&&(Da.push({label:`${la._384} 6 ${la._878}`,value:oa}),ya.push(oa))),L.highest365.val>0&&(L.highest365.val>Ea||Ea===-1)&&(oa=Math.floor(L.highest365.val),CsvType[l].currency&&M!==c&&(oa=Money.raw(oa,na)),ya.indexOf(oa)===-1&&(Da.push({label:`${la._384} 1 ${la._879}`,value:oa}),ya.push(oa))),L.avg.val>0&&(L.avg.val>Ea||Ea===-1)&&(oa=Math.ceil(L.avg.val),CsvType[l].currency&&M!==c&&(oa=Money.raw(oa,na)),ya.indexOf(oa)===-1&&(Da.push({label:`90 ${la._857}`, 1960value:oa}),ya.push(oa))),L.avg180.val>0&&(L.avg180.val>Ea||Ea===-1)&&(L=Math.ceil(L.avg180.val),CsvType[l].currency&&M!==c&&(L=Money.raw(L,na)),ya.indexOf(L)===-1&&(Da.push({label:`180 ${la._857}`,value:L}),ya.push(L))));Ea>0&&Ja.forEach(za=>{var cb=Math.ceil(Ea+Ea*za/100);if(ya.indexOf(cb)===-1||za===Ha)Da.push({label:`+${za}%`,value:cb}),ya.push(cb)});Da.sort((za,cb)=>za.value>cb.value?1:za.value<cb.value?-1:0);CsvType[l].index===CsvType.RATING.index&&(Da=Da.filter(za=>za.value<=50))}return{decrease:ra, 1961increase:Da,current:Ea}},Pa=()=>{var l=document.getElementById("trackingForm");l=[...(l?l.querySelectorAll(".tracking__block--offer-data .mdc-text-field__input:not(:disabled)"):[])].some(M=>M.value);V(".tracking__hint--offerdata",l)},ta=()=>{var l=document.querySelector(`input[name="csvtype-${c}-${CsvType.AMAZON.index}-threshold"]`)?.value,M=document.querySelector(`input[name="csvtype-${c}-${CsvType.NEW.index}-threshold"]`)?.value;V(".tracking__hint--amazononly",!!l?.length&&!M?.length)},ea=(l,M)=> 1962{var na=Deferred(),U={};l.forEach(L=>{typeof d[L]==="undefined"&&(U[L]=[a.asin])});Object.keys(U).length>0?(l={path:"product",type:"casin",offerPages:0,history:!0,maxAge:60,refreshProduct:!1},Object.keys(U).length!==1||M?na=networkHelper.loadASINs(l,U,""):(l.asin=a.asin,l.domainId=Object.keys(U)[0],na=network.request(l))):na.resolve();return{onLoad:na.promise()}},Fa=(l,M)=>{if(l=DomUtil.el(l))l.value=M??"",(l=l.nextElementSibling)&&l.matches("label")&&l.classList.toggle("mdc-floating-label--float-above", 1963String(M??"").length>0),Pa()},bb=()=>{var l="basic",M=b.notifyIf||[],na=b.thresholdValues||[],U=na.filter(ra=>ra.thresholdValueCSV[ra.thresholdValueCSV.length-1]>=0&&ra.domain>0).map(ra=>ra.domain).concat(M.map(ra=>ra.domain)).filter(ra=>ra!==c);U=Array.from(new Set(U));var L=()=>
1963{U.forEach(Ja=>{I(Ja,!0,!0);db([Ja],document.getElementById(`tracking__tab--${Ja}`),!0)});var ra=!1,Da=!1;na.forEach(Ja=>{var Ha=CsvType.getObject(Ja.csvType);CsvType.getObjectName(Ja.csvType);var ya=Ja.thresholdValueCSV[Ja.thresholdValueCSV.length- 19641];if(!(ya<0)){var za=document.querySelectorAll(`input[name="csvtype-${Ja.domain}-${Ja.csvType}-threshold"]`);if(za.length!==1)isTest&&![CsvType.EBAY_NEW_SHIPPING.index,CsvType.EBAY_USED_SHIPPING.index].includes(Ja.csvType)&&console.warn("missing input for threshold",Ja);else{za=za[0];if(Ha.currency){let cb=Ha=c;c!==Ja.domain&&Ja.domain===a.domainId&&(Ha=a.domainId);ya=Money.format(ya,{sourceDomainId:Ha,targetDomainId:cb,skipSymbol:!0});Ja.csvType===CsvType.AMAZON.index?ra=!0:[CsvType.NEW.index,CsvType.NEW_FBA.index, 1965CsvType.NEW_FBM_SHIPPING.index].includes(Ja.csvType)&&(Da=!0)}else ya=Ja.csvType===CsvType.RATING.index?Ja.domain===c&&ya<10?ya.toFixed(1):parseFloat((ya/10).toFixed(1)):NumberUtil.format(ya,0);Fa(za,ya);ya=za.closest(".tracking__block");graphIsRestricted(Ja.domain,Ja.csvType)&&ya?.querySelectorAll(".tracking__block-overlay--disable").forEach(cb=>cb.remove());Ja.isDrop||Ja.domain!==c||ya?.querySelectorAll(".trigger--switch-isdrop").forEach(cb=>cb.click());l!=="basic"||P.includes(Ja.csvType)||(l="advanced"); 1966P.includes(Ja.csvType)||ka.includes(Ja.csvType)||(l="pro")}}});q&&ra&&!Da&&(V(".tracking__hint--amazononly",!0),setTimeout(S,1));M.forEach(Ja=>{switch(Ja.notifyIfType){case 0:var Ha=document.querySelectorAll(`input[name="csvtype-${Ja.domain}-${Ja.csvType}-oos"]`);if(Ha.length!==1){isTest&&console.warn("missing input for oos",Ja);return}Ha[0].checked=!0;N(Ha[0]);break;case 1:Ha=document.querySelectorAll(`input[name="csvtype-${Ja.domain}-${Ja.csvType}-backinstock"]`);if(Ha.length!==1){isTest&&console.warn("missing input for backinstock", 1967Ja);return}Ha[0].checked=!0;N(Ha[0]);break;default:isTest&&console.warn("missing notifyIf implementation for notifyIf",Ja)}l==="basic"&&M.length>0&&(l="advanced")});var Ea="",oa="";try{let Ja=JSON.parse(b.metaData);typeof Ja.memo!=="undefined"&&(Ea=Ja.memo);if(typeof Ja.tags!=="undefined"){let Ha=Ja.tags;typeof Ja.tags==="string"&&(Ha=[Ja.tags]);Ha.length>0&&(Ha=Ha.join(" "));oa=Ha}}catch(Ja){}Fa(document.querySelector('input[name="metadata-memo"]'),Ea);Fa(document.querySelector('input[name="metadata-tags"]'), 1968oa);(Ea.length||oa.length)&&l==="basic"&&(l="advanced");if(Ea=document.getElementById(`tracking-mode-${l}-radio`))Ea.checked=!0,N(Ea);document.addEventListener("tracking:mode-applied",()=>{if(U.length){let Ja=document.getElementById(`tracking__panel--${c}`),Ha=Ja?D(Ja.querySelectorAll('input[type="text"], input[name$="-backinstock"], input[name$="-oos"]')):[],ya=["metadata-memo","metadata-tags"];Ha=Ha.map(za=>ya.includes(za.name)?!1:za.value).filter(za=>za!==!1);U.forEach(za=>{var cb=document.getElementById(`tracking__panel--${za}`), 1969fb=(cb?D(cb.querySelectorAll('input[type="text"], input[name$="-backinstock"], input[name$="-oos"]')):[]).map(pb=>pb.value);fb.length===Ha.length&&Ha.every((pb,ob)=>pb===fb[ob])&&document.querySelectorAll(`input[name="syncdata-${za}"]`).forEach(pb=>{pb.checked=!0;N(pb)})})}},{once:!0});V(".tracking",!0)};ea(U,!0).onLoad.done(ra=>{typeof ra!=="undefined"&&Ta(ra);setTimeout(L,0)}).fail(()=>{setTimeout(L,0)})},Ra=()=>{var l=get("s_trackingMode"),M=Number(get("s_percent")),na=SettingsUtil.getMerchantTrack(), 1970U=storage.sendUpcomingLightningDealsAlert!=="false",L=storage.sendStartLightningDealsAlert!=="false",ra=a.AMAZON_LAST!=-1?a.AMAZON_LAST:a.MARKET_NEW_LAST!=-1?a.MARKET_NEW_LAST:a.MARKET_USED_LAST!=-1?a.MARKET_USED_LAST:-1,Da=Ha=>{if(t!==1){let ya={sourceDomainId:c,targetDomainId:c,skipSymbol:!0};return Ha<0?Money.format(1E7,ya):Money.format(Math.floor(Ha-Ha*M/100),ya)}return NumberUtil.format(M,0)},Ea=!1,oa=!1,Ja=(Ha,ya)=>{if(Ha=document.querySelector(`input[name="csvtype-${c}-${Ha}-threshold"]`))Ha.value= 1971ya};na[CsvType.AMAZON.index]&&!q&&(Ja(CsvType.AMAZON.index,Da(ra)),Ea=!0);na[CsvType.BUY_BOX_SHIPPING.index]&&!n&&Ja(CsvType.BUY_BOX_SHIPPING.index,Da(ra));na[CsvType.NEW.index]&&!r&&(Ja(CsvType.NEW.index,Da(a.MARKET_NEW_LAST!=-1?a.MARKET_NEW_LAST:ra)),oa=!0);na[CsvType.USED.index]&&!u&&Ja(CsvType.USED.index,Da(a.MARKET_USED_LAST!=-1?a.MARKET_USED_LAST:ra));q&&Ea&&!oa&&(V(".tracking__hint--amazononly",!0),setTimeout(S,1));U&&document.querySelectorAll(`input[name="csvtype-${c}-${CsvType.LIGHTNING_DEAL.index}-upcoming"]`).forEach(Ha=> 1972{Ha.checked=!0;N(Ha)});L&&document.querySelectorAll(`input[name="csvtype-${c}-${CsvType.LIGHTNING_DEAL.index}-backinstock"]`).forEach(Ha=>{Ha.checked=!0;N(Ha)});V(".tracking",!0);["advanced","pro"].includes(l)&&(l=document.getElementById(`tracking-mode-${l}-radio`))&&(l.checked=!0,N(l))},Sa=()=>{X=!1;var l=document.getElementById("submitTracking");l&&(l.disabled=!1,l.innerHTML=`${b?la._681:la._110}  <i class="fa fa-bell-o"></i>`);V(".tracking__submit-overlay",!1)},db=(l,M,na)=>{l.forEach(U=> 1973{var L=DomUtil.el(M)||document.querySelector(`.tracking__multilocale-casin-data--${U}`);if(L){var ra=U===c?a:d[U];if(typeof ra==="undefined")na||(L.innerHTML=" ");else{var Da=ra.stats[CsvType.BUY_BOX_SHIPPING.index],Ea=ra.stats[CsvType.AMAZON.index],oa=ra.stats[CsvType.NEW.index],Ja=ra.stats[CsvType.USED.index],Ha=-1,ya=ra=-1,za=-1;Da&&(Ha=Da.current.val?Da.current.val:Da.current);
1973Ea&&(ra=Ea.current.val?Ea.current.val:Ea.current);oa&&(ya=oa.current.val?oa.current.val:oa.current);Ja&&(za=Ja.current.val? 1974Ja.current.val:Ja.current);Ha<0&&ra<0&&ya<0&&za<0?na||(L.innerHTML=" "):(U={sourceDomainId:U,targetDomainId:c},na?(Da=`${Ha>0?`${CsvType.getName(CsvType.BUY_BOX_SHIPPING.index)}: ${Money.format(Ha,U)} `:""}`,Da+=`${ra>0?`${Da?" - ":""}${CsvType.getName(CsvType.AMAZON.index)}: ${Money.format(ra,U)} `:""}`,Da+=`${ya>0?`${Da?" - ":""}${CsvType.getName(CsvType.NEW.index)}: ${Money.format(ya,U)} `:""}`,Da+=`${za>0?`${Da?" - ":""}${CsvType.getName(CsvType.USED.index)}: ${Money.format(za,U)}`:""}`, 1975L.setAttribute("title",Da)):(ra=` 1976 ${Ha>0?`<span title="${CsvType.getName(CsvType.BUY_BOX_SHIPPING.index)}">${Money.format(Ha,U)}</span>`:'<span style="display:none;"></span>'} 1977 ${ra>0?`<span title="${CsvType.getName(CsvType.AMAZON.index)}">${Money.format(ra,U)}</span>`:'<span style="display:none;"></span>'} 1978 ${ya>0?`<span title="${CsvType.getName(CsvType.NEW.index)}">${Money.format(ya,U)}</span>`:'<span style="display:none;"></span>'} 1979 ${za>0?`<span title="${CsvType.getName(CsvType.USED.index)}">${Money.format(za,U)}</span>`:'<span style="display:none;"></span>'} 1980 `,L.innerHTML=ra))}}})},eb=l=>{var M=(za,cb)=>{var fb=CsvType.getObject(cb);za=za.replace(/(\d)\.(\d\d)/g,"$1$2");za=za.replace(/(\d)\.(\d)/g,"$1$2");za=za.replace(/(\d),(\d)/g,"$1$2");fb.currency?za=za.replace(/^0+(?=\d)/,""):cb===CsvType.RATING.index&&(za=za.replace(/(\d)\.(\d)/g,"$1$2"));return za},na=!1,U={memo:"",tags:[]},L={},ra={},Da=!0,Ea=t===1,oa=document.getElementById("trackingForm");(oa?D(oa):[]).forEach(za=>{if(!["tracking-mode","tracking-ttl"].includes(za.name)&&!za.name.includes("syncdata"))if(za.name=== 1981"tracking-overwrite-existing")Ea=!0;else if(za.name==="tracking-import-oos")Da=!1;else{var cb=za.value,fb=!0;if(za.name==="metadata-memo")U.memo=cb.slice(0,100);else if(za.name==="metadata-tags"){cb=cb.replace(/\s\s+/g," ");if(cb.length)for(cb=cb.split(" ");cb.join('","').length>200;)cb.pop();else cb=[];U.tags=Array.from(new Set(cb))}else{var pb=za.name.split("-"),ob=Number(pb[1]),ub=Number(pb[2]),Rb=pb[3];pb=[ob,ub].join("-");switch(Rb){case "threshold":cb=M(cb,ub);cb.length&&(za=(b&&b.thresholdValues|| 1982[]).find(T=>T.csvType===ub&&T.domain===ob&&T.thresholdValueCSV[T.thresholdValueCSV.length-1]>=0),!graphIsRestricted(ob,ub)||za)&&(L[pb]={domain:ob,csvType:ub,isDrop:fb,thresholdValue:cb},t===1&&(L[pb].thresholdValue=null,L[pb].minDeltaPercentage=-1*cb));break;case "isdrop":fb=k&&cb!=="1"?!1:!0;L[pb]&&(L[pb].isDrop=fb,t!==1||fb||(L[pb].minDeltaPercentage*=-1));break;case "upcoming":na=!0;break;case "backinstock":ra[pb+"-1"]={domain:ob,csvType:ub,notifyIfType:1};break;case "oos":ra[pb+"-0"]={domain:ob, 1983csvType:ub,notifyIfType:0};break;default:isTest&&console.warn("missing input handling",za,Rb)}}}});document.querySelector('input[name="tracking-mode"]:checked')?.value==="basic"&&(na=storage.sendUpcomingLightningDealsAlert!=="false",storage.sendStartLightningDealsAlert!=="false"&&document.querySelectorAll("#tracking__tab-bar .mdc-tab").forEach(za=>{DomUtil.isVisible(za)&&(za=za.id.replace("tracking__tab--",""),ra[[za,CsvType.LIGHTNING_DEAL.index].join("-")]={domain:za,csvType:CsvType.LIGHTNING_DEAL.index, 1984notifyIfType:1})}));delete L[`${getDomainByTld("in")}-${CsvType.AMAZON.index}`];delete ra[`${getDomainByTld("in")}-${CsvType.AMAZON.index}`];!disableEbayPriceAlerts&&userData&&userData.useEbay&&globalEbayArray[c]===!0&&(L[`${c}-${CsvType.AMAZON.index}`]?(oa=L[`${c}-${CsvType.AMAZON.index}`],L[`${c}-${CsvType.EBAY_NEW_SHIPPING.index}`]={domain:oa.domain,csvType:CsvType.EBAY_NEW_SHIPPING.index,isDrop:oa.isDrop,thresholdValue:oa.thresholdValue},t===1&&(L[`${c}-${CsvType.EBAY_NEW_SHIPPING.index}`].minDeltaPercentage= 1985oa.minDeltaPercentage)):L[`${c}-${CsvType.NEW.index}`]&&(oa=L[`${c}-${CsvType.NEW.index}`],L[`${c}-${CsvType.EBAY_NEW_SHIPPING.index}`]={domain:oa.domain,csvType:CsvType.EBAY_NEW_SHIPPING.index,isDrop:oa.isDrop,thresholdValue:oa.thresholdValue},t===1&&(L[`${c}-${CsvType.EBAY_NEW_SHIPPING.index}`].minDeltaPercentage=oa.minDeltaPercentage)),L[`${c}-${CsvType.USED.index}`]&&(oa=L[`${c}-${CsvType.USED.index}`],L[`${c}-${CsvType.EBAY_USED_SHIPPING.index}`]={domain:oa.domain,csvType:CsvType.EBAY_USED_SHIPPING.index, 1986isDrop:oa.isDrop,thresholdValue:oa.thresholdValue},t===1&&(L[`${c}-${CsvType.EBAY_USED_SHIPPING.index}`].minDeltaPercentage=oa.minDeltaPercentage)));oa=ma();var Ja=Q(),Ha=Number(document.querySelector('[name="tracking-ttl"]')?.value);typeof oa.find(za=>za.value==Ha)==="undefined"&&(Ha=Ja);oa={asin:a.asin,desiredPrices:[],lightningDealsAlerts:na,mainDomainId:c,metaData:JSON.stringify(U),notifyIf:[],ttl:Ha,minChangeBetweenNotifications:null,overwriteExistingTrackings:!0,removeTrackingWhenDeleted:!1, 1987removeTrackingWhenPurchased:!1,skipIfNotInStock:!0,desiredPricesInMainCurrency:!0,expireNotify:!0,individualNotificationInterval:-1,isOneTimeImport:!0,notificationType:[]};for(var ya in L)oa.desiredPrices.push(L[ya]);for(let za in ra)oa.notifyIf.push(ra[za]);oa.notifyIf.length===0&&(oa.notifyIf=null);ya="addTracking";t===1&&(ya="listImport",delete oa.asin,oa.asinList=G,oa.skipIfNotInStock=Da,oa.over
1987writeExistingTrackings=Ea);isTest&&console.info("%ctrackingRequest","color:#018786;font-weight:bold;", 1988{path:"track",type:ya,trackingRequest:oa});network.request({path:"track",type:ya,trackingRequest:oa}).done(za=>{t===1&&isTest&&console.log(za);X=!1;if(za.error==null)Qa(za);else switch(za.error.type){case "userNotKnown":registerAnonymous().done(()=>{m(l)}).fail(fb=>{sa(za,fb)});break;case "productNotKnown":let cb=()=>{var fb=t===1?"The ASINs below are invalid and can not be tracked.<br><br>"+za.error.details.split(",").join(", "):"Product is invalid and can not be tracked.";showPopup("Tracking Error", 1989`<p class="mdc-typography--body2">${fb}</p>`,!0)};t===1&&da?(Y.close(),setTimeout(()=>{cb()},500)):(cb(),Sa());break;case "maxTrackingReached":t===1&&da?(Y.close(),setTimeout(()=>{TrackingUtil.maxTrackingReachedPopup(za?.maxTrackingAllowed)},500)):(TrackingUtil.maxTrackingReachedPopup(za?.maxTrackingAllowed),Sa());break;default:sa(za)}}).fail(za=>{sa(za)})},sa=(l,M)=>{isTest&&console.info("%csendTrackingFailed","color:#018786;font-weight:bold;",l);var na=l?.error?.type;M?reportBug("track failed: anonymous registration failed"): 1990na!=="userNotKnown"&&reportBug(`track failed: error.type '${na}'`,JSON.stringify(l));t===1&&da?(replaceHtml(B,`<div class="tracking__warning"><p class="mdc-typography--body2">${la._error}</p></div>`),V(".tracking__warning p",!0)):(setTimeout(()=>showPopup(la._3,la._error,!0),50),Sa())},Qa=l=>{l.hash&&(typeof addon=="function"&&iframe.isIframe&&addon("resync",void 0),handleSettingsRequest(l,!0),document.getElementById("tabTrack")?.click());var M=storage.token?`r/${storage.token}manage`:"#!manage"; 1991l="";storage.accountType==1&&typeof addon!="function"&&(l=`<p class="mdc-typography--body2"> 1992 ${la._289}:<br>» <a href="/${M}" class="href">${rootURL}${M}</a> 1993 </p>`);M=`${la._287} 1994 <a class="href" target="_parent" href="//${location.hostname}/#!manage">${la._20}</a> 1995 ${la._288}`;t===1&&(M=la._223);l=`<div class="tracking${isMobile?" tracking--mobile":""}"> 1996 <p class="mdc-typography--body2 tracking__paragraph--success"> 1997 <i class="fa fa-check-circle-o" ></i> ${M} 1998 </p> 1999 <div id="notification-channels"></div> 2000 ${l} 2001 </div>`;if(M=document.getElementById(B))M.innerHTML=l;SettingsNotification.init()},Ta=l=>{for(let M in l)typeof l[M]==="object"&&l[M]!=null&&l[M].domainId&&(l[M].stats==null&&(l[M].stats=getStatistics(l[M])),d[l[M].domainId]=l[M])},ba=l=>{var M=document.getElementById(`tracking__panel--${l}`);if(M){var na=M.querySelectorAll('input[type="checkbox"]');na.forEach(U=>U.addEventListener("change",()=>{var L=U.checked;switch(U.name){case `csvtype-${l}-${CsvType.LIGHTNING_DEAL.index}-backinstock`:storage.sendStartLightningDealsAlert!== 2002"true"&&V(".tracking__hint--ld",L);break;case `syncdata-${l}`:L?(M.querySelectorAll(".tracking__sync-overlay").forEach(ra=>DomUtil.show(ra)),w(l)):M.querySelectorAll(".tracking__sync-overlay").forEach(ra=>DomUtil.hide(ra))}setTimeout(S,1)}));na.forEach(U=>N(U))}},e=l=>{var M=document.getElementById(`tracking__panel--${l}`);if(M){var na=l===c?"click":"pseudoclick";M.querySelectorAll(".trigger--switch-isdrop").forEach(U=>{U.addEventListener(na,()=>{var L=U.closest(".tracking__block");if(L){var ra=DomUtil.data(L, 2003"type"),Da=L.querySelector(`input[name="csvtype-${l}-${ra}-isdrop"]`),Ea=Da?.value==1;Da&&(Da.value=Ea?0:1);Da=la._703;k||(Da=`<span class="unavailable">${Da}</span>`);var oa=U.querySelector("span");oa&&(oa.innerHTML=Ea?Da:la._95);if(l===c){Ea=Ea?la._849:la._850;if(Da=U.querySelector(".colorTipContent"))Da.innerHTML=Ea;document.querySelectorAll(`.switch-${ra}-isdrop`).forEach(Ja=>ha(Ja,"pseudoclick"))}W(L.querySelector(".tracking__suggestion--decrease"));W(L.querySelector(".tracking__suggestion--increase")); 2004!k&&(L=!!document.querySelector('input[name$="-isdrop"][value="0"]'),V(".tracking__warning--isdrop",L),ra=document.getElementById("submitTracking"))&&(ra.disabled=L);setTimeout(S,1)}})})}},x=()=>{da||document.querySelectorAll(`#${B} .tool__trackback`).forEach(l=>{l.addEventListener("click",()=>{var M=B.replace("-tracking","");DomUtil.show(document.getElementById(`grid-tools-${M.replace("grid-wrapper-","")}`));DomUtil.show(document.getElementById(M));DomUtil.show(document.getElementById(`${M}-filter`)); 2005DomUtil.hide(document.getElementById(`${M}-tracking`));setTimeout(S,1)})})},v=()=>{var l=tabSwitcher("tracking__tab-bar");V("#tracking__tab-bar .mdc-tab:not(.mdc-tab--active)",!1);
2005l.listen("MDCTabBar:change",({detail:M})=>{if(M=document.querySelector(`.tracking .tracking__panel .panel:nth-child(${Number(M.activeTabIndex)+1})`))M=Number(M.id.replace("tracking__panel--","")),w(M),setTimeout(S,1)});document.querySelectorAll(".tracking__tab-bar-toggle, .tracking__tab-bar-toggle-hint").forEach(M=>{M.addEventListener("click", 2006na=>{if(X)na.preventDefault(),na.stopPropagation();else{na=Ga();var U=showPopup(`${la._351}:`,na.html,!0);wa();setTimeout(S,1);na.onSubmit.done(L=>{U.promise.resolve(L)});U.promise.done(L=>{U.close();setTimeout(S,1);var ra=!1;if(L&&L.enableDomainIds){for(let Da=1;Da<numberOfDomains;Da++)if(Da!=7&&Da!==c){let Ea=DomUtil.isVisible(document.getElementById(`tracking__tab--${Da}`)),oa=L.enableDomainIds.indexOf(Da)>-1;oa&&!Ea?I(Da,!0):!oa&&Ea&&(I(Da,!1),ra=!0)}N(document.querySelector('input[name="tracking-mode"]:checked')); 2007ra&&(l.activeTabIndex=0,l.updatePanel(0))}}).fail(L=>{})}})});document.querySelectorAll(".trigger--casin-popup").forEach(M=>{M.addEventListener("click",()=>{comparePricesOverlay(a.asin,a.domainId)})})},C=()=>{setTimeout(()=>{document.getElementById("submitTracking")?.addEventListener("click",l=>{m(l)})},0)},A=l=>{var M=document.getElementById(`tracking__panel--${l}`);M&&(M.querySelectorAll('input[name$="threshold"]').forEach(na=>{na.addEventListener("focus",()=>{M.querySelectorAll(".tracking__suggestion").forEach(L=> 2008DomUtil.hide(L));var U=na.closest(".tracking__block")?.querySelector(".tracking__suggestion");U&&(DomUtil.setStyles(U,{display:"block"}),U.querySelectorAll("tr").forEach(L=>L.classList.remove("active")),U.querySelectorAll(`tr[data-value="${na.value}"]`).forEach(L=>L.classList.add("active")))})}),l===c&&document.getElementById("trackingForm")?.addEventListener("click",()=>{document.querySelectorAll(".tracking__suggestion").forEach(na=>DomUtil.hide(na))}),M.querySelectorAll(".tracking__block .mdc-text-field, .tracking__suggestion").forEach(na=> 2009{na.addEventListener("click",U=>{U.stopPropagation()})}),M.querySelectorAll(".tracking__suggestion-item").forEach(na=>{na.addEventListener("click",()=>{var U=DomUtil.data(na,"value"),L=na.closest(".tracking__block"),ra=DomUtil.data(L,"type"),Da=document.querySelector(`input[name="csvtype-${l}-${ra}-threshold"]`);Fa(Da,U);L?.querySelector(".tracking__suggestion")?.querySelectorAll("tr").forEach(Ea=>Ea.classList.remove("active"));na.classList.add("active");q&&l===c&&[CsvType.AMAZON.index,CsvType.NEW.index].includes(ra)&& 2010(ta(),setTimeout(S,1))})}))},H=l=>{var M=document.getElementById(`tracking__panel--${l}`);M&&M.querySelectorAll('input[name$="threshold"]').forEach(na=>{na.addEventListener("focusout",()=>{var U=na.name.split("-");U=Number(U[2]);na.value.length>0&&(t!==1?CsvType.getObject(U).currency?na.value=Money.format(Money.unformat(na.value),{sourceDomainId:c,targetDomainId:c,isDivided:!0,skipSymbol:!0}):na.value=U===CsvType.RATING.index?parseFloat(Money.unformat(na.value)).toFixed(1):NumberUtil.format(Money.unformat(na.value), 20110):na.value=NumberUtil.format(Money.unformat(na.value),0));q&&l===c&&[CsvType.AMAZON.index,CsvType.NEW.index].includes(U)&&(ta(),setTimeout(S,1));Pa()})})},Z=l=>{var M=document.getElementById(`tracking__panel--${l}`);M&&(ColorTip.attach(M.querySelectorAll(".trigger"),{color:"yellow"}),ColorTip.attach(M.querySelectorAll(".tracking__block-overlay--disable"),{color:"yellow"}),l===c&&(ColorTip.attach(document.querySelectorAll(".tracking__buttons [title]"),{color:"yellow align-left"}),ColorTip.attach(document.querySelectorAll(".tracking__settings-mode [title]"), 2012{color:"yellow align-left"})))},ca=0,K=(l,M=!0)=>{var na=[...document.querySelectorAll('[data-mode="basic"]')],U=[...document.querySelectorAll('[data-mode="advanced"]')],L=[...document.querySelectorAll('[data-mode="pro"]')],ra=U.filter(cb=>cb.matches(".tracking__stock-options")),Da=U.filter(cb=>!ra.includes(cb)),Ea=++ca,oa=M&&!iframe.isIframe,Ja=0,Ha=()=>{Ja===0&&Ea===ca&&document.dispatchEvent(new CustomEvent("tracking:mode-applied",{detail:l}))};M=cb=>cb.forEach(fb=>{window.keepaAnim.stop(fb);DomUtil.setStyles(fb, 2013{opacity:"",display:""})});M(Da);M(L);M(ra);M=cb=>cb.forEach(fb=>{fb.removeAttribute("hidden");oa?(Ja++,window.keepaAnim.fadeIn(fb,{duration:600,complete:()=>{Ja--;Ha()}})):DomUtil.show(fb)});var ya=cb=>cb.forEach(fb=>{oa?(Ja++,window.keepaAnim.fadeOut(fb,{duration:200,complete:()=>{Ea===ca&&fb.setAttribute("hidden","true");Ja--;Ha()}})):(fb.setAttribute("hidden","true"),DomUtil.hide(fb))}),za=(cb,fb)=>cb.forEach(pb=>{pb.querySelectorAll("input").forEach(ob=>{ob.disabled=fb})});
2013l==="advanced"?(na.forEach(cb=> 2014DomUtil.show(cb)),M(Da),ya(L),M(ra),za(U,!1),za(L,!0)):l==="pro"?(na.forEach(cb=>DomUtil.show(cb)),M(Da),M(L),M(ra),za(U,!1),za(L,!1)):(na.forEach(cb=>DomUtil.show(cb)),ya(Da),ya(L),ya(ra),za(U,!0),za(L,!0));iframe.isIframe&&setTimeout(S,1);Pa();oa&&Ja!==0||Ha()},F=null,z=()=>{var l;F?.abort();F=new AbortController;document.querySelectorAll('input[name="tracking-mode"]').forEach(na=>{na.addEventListener("change",()=>{var U=na.value;clearTimeout(l);l=setTimeout(()=>K(U,!0),0)},{signal:F.signal})}); 2015var M=document.querySelector('input[name="tracking-mode"]:checked')?.value;K(M,!1)},g=()=>{document.getElementById("updateTracking")?.addEventListener("click",()=>{La()});document.getElementById("deleteTracking")?.addEventListener("click",()=>{network.request({path:"track",asinBatch:[a.asin],type:"deleteTracking"}).done(()=>{replaceHtml(B,`<div class="tracking${isMobile?" tracking--mobile":""}"> 2016 <p class="mdc-typography--body2">${la._437}</p> 2017 </div>`);setTimeout(function(){La()},8E3)}).fail(showErrorPopup)})},m=l=>{l.preventDefault();isTest&&console.info("%csubmitTracking","color:#018786;font-weight:bold;","... ... ...");if(!k&&document.querySelector('input[name$="-isdrop"][value="0"]')||X)return!1;X=!0;var M=document.getElementById("submitTracking");M&&(M.focus(),M.disabled=!0,M.innerHTML=`${la._45}  <i class="fa fa-spinner fa-spin"></i>`);t!==1&&document.querySelectorAll('input[type="checkbox"][name^="syncdata-"]').forEach(na=> 2018N(na));V(".tracking__submit-overlay",!0);eb(l)},w=l=>{var M=document.getElementById(`tracking__panel--${c}`),na=document.getElementById(`tracking__panel--${l}`);M&&na&&na.querySelector(`input[name="syncdata-${l}"]`)?.checked&&(M.querySelectorAll('input:not([type="checkbox"])').forEach(U=>{var L=U.getAttribute("type");if(U.name){var ra=U.name.split("-");ra[1]=l;var Da=Number(ra[2]);if(ra=na.querySelector(`input[name="${ra.join("-")}"]`))switch(L){case "hidden":U.value!==ra.value&&ra.closest(".tracking__block")?.querySelectorAll(".trigger--switch-isdrop").forEach(Ea=> 2019ha(Ea,"pseudoclick"));break;case "text":U=U.value;L=(b&&b.thresholdValues||[]).find(Ea=>Ea.csvType===Da&&Ea.domain===l&&Ea.thresholdValueCSV[Ea.thresholdValueCSV.length-1]>=0);graphIsRestricted(l,Da)&&!L||Fa(ra,U);break;default:isTest&&console.warn("missing sync handling",L)}}}),M.querySelectorAll('input[type="checkbox"]').forEach(U=>{if(U.name){var L=U.name.split("-");L[1]=l;if(L=na.querySelector(`input[name="${L.join("-")}"]`))L.checked=U.checked,N(L)}}))},I=(l,M,na)=>{var U=`tracking__panel--${l}`, 2020L=`tracking__tab--${l}`;if(M){window.keepaAnim.fadeIn(document.getElementById(L),{display:"table-cell",duration:400});replaceHtml(U,Aa(l));material.init(`#${U}`);H(l);e(l);A(l);ba(l);Z(l);if(M=document.querySelector(`input[name="csvtype-${l}-${CsvType.LIGHTNING_DEAL.index}-upcoming"]`))M.disabled=!0,DomUtil.setStyles(M.closest(".mdc-form-field"),{visibility:"hidden"});!na&&(na=document.querySelector(`input[name="syncdata-${l}"]`))&&(na.checked=!0,N(na));db([l],document.getElementById(L),!0)}else window.keepaAnim.fadeOut(document.getElementById(L)), 2021replaceHtml(U,"")},S=(l,M)=>{iframe.isIframe&&addon(l,M)},ma=()=>[{label:`2 ${la._876}`,value:336},{label:`1 ${la._877}`,value:720},{label:`3 ${la._878}`,value:2160},{label:`6 ${la._878}`,value:4320},{label:`1 ${la._879}`,value:8760,default:!0},{label:`2 ${la._880}`,value:17520},{label:`3 ${la._880}`,value:26280},{label:`10 ${la._880}`,value:87600}],Q=()=>ma().find(l=>l.default===!0).value;return{addonResizeHook:S,getDefaultTtl:Q,getTtlOptions:ma,init:l=>{O();a=l.products[0];a.stats==null&&(a.stats= 2022getStatistics(a));c=a.domainId;k=storage.accountType!==0&&hasDataAccessSubscription;if(a.csv[CsvType.BUY_BOX_SHIPPING.index]===null||a.csv[CsvType.BUY_BOX_SHIPPING.index].length===3&&a.csv[CsvType.BUY_BOX_SHIPPING.index][1]==-1)n=!0;if(!a.csv[CsvType.AMAZON.index]||a.csv[CsvType.AMAZON.index].length===2&&a.csv[CsvType.AMAZON.index][1]==-1)q=!0;if(!a.csv[CsvType.NEW.index]||a.csv[CsvType.NEW.index].length===2&&a.csv[CsvType.NEW.index][1]==-1)r=!0;if(!a.csv[CsvType.USED.index]||a.csv[CsvType.USED.index].length=== 20232&&a.csv[CsvType.USED.index][1]==-1)u=!0;f=getCurrencyByDomain(c);a.tracking?(b=a.tracking,l=!1,b.thresholdValues&&b.thresholdValues.length&&(l=b.thresholdValues.some(M=>M.isDrop!==!0)),k=k||l,c=b.mainDomainId,l=`<div class="tracking${isMobile?" tracking--mobile":""}"> 2024 <p class="mdc-typography--body2">${la._436}</p> 2025 <div class="tracking__buttons"> 2026 ${material.getButton("updateTracking",la._434,null,"pencil")}  2027 ${material.getButton("deleteTracking",la._435,null,"trash-o",!1,!0)} 2028 </div>
2029 </div>`,replaceHtml(B,l),g()):La()},initList:l=>{O();t=1;G=[];da=!1;Y=null;c=Number(l.domainId);G=l.asinList||[];da=l.showAsPopup||!1;B=l.containerId;f=getCurrencyByDomain(c);k=storage.accountType!==0&&hasDataAccessSubscription;da&&(Y=showPopup(la._916.replace("#selectedAsinCount#",`<b>${G.length}</b>`),'<div id="tracklist"></div>',!0));La()},setCasinData:Ta}})();const Seller=function(){var a=b=>{try{let c=graph.prepare(b.domainId);c.asin=b.sellerId;c.graphIndex=4;c.updateCSV=[];c.series=graph.getMerchantSeriesTemplates();let d=[];d[MerchantType.RATING.index]=b.csv[MerchantType.RATING.index];d[MerchantType.RATING_COUNT.index]=b.csv[MerchantType.RATING_COUNT.index];d[MerchantType.LISTINGS_COUNT.index]=b.totalStorefrontAsinsCSV;let f=document.getElementById("sellerGraph");c.csv=d;c.type="merchant";c.objectType=MerchantType;c.$container=f;DomUtil.show(c.$container); 2030c.parameter.offsetLeft=-30;c.parameter.width=float2int(DomUtil.width(f.parentElement))-170+"px";c.parameter.height="250px";graph.create(c)}catch(c){console.log(c)}};return{init:(b,c)=>{network.request({path:"pro/seller",domainId:b,seller:c,page:0,perPage:0,storefront:1440,history:!0}).done(function(d){DomUtil.hide(document.getElementById("loadingIcon"));if(d.merchants&&d.merchants[c]){var f=d.merchants[c];f.positiveRating=f.positiveRating||[0,0,0,0];f.ratingCount=f.ratingCount||[];var k=getLast(f.totalStorefrontAsinsCSV, 2031MerchantType.LISTINGS_COUNT),n=getLastTime(f.totalStorefrontAsinsCSV,MerchantType.LISTINGS_COUNT),q=d.listSize;d=0;k>-1&&(d=GridConfig.getRowCountOptions("asin"),d=Math.max(...d.values),d=Math.min(q,d));q=encodeURIComponent(JSON.stringify({f:{sellerIds:{filter:c,type:"isOneOf"}},t:"g"}));var r=`${getBaseUrl()}#!finder/${q}`;q=SellerUtil.isSellerIdAmazon(c,b)?"":`<a class="card-cta -pro" id="${c}" 2032 href="https://www.amazon.${getTldByDomain(b)}/gp/aag/details/?seller=${c}" 2033 target="_blank" rel="noopener" title="${la._646} Amazon">${la._646} Amazon <i class="fa fa-external-link"></i></a>`;var u=(t,G,da)=>G?`<div class="seller-facts__label">${t}</div> 2034 <div class="seller-facts__value${da?" -mono":""}">${escapeHTML(G)}</div>`:"";q=`<div class="card -featured -pro"> 2035 <div class="seller-card__head"> 2036 <h4 class="card-title">${escapeHTML(f.businessName||f.sellerName||c)}</h4> 2037 ${q} 2038 </div> 2039 <div class="seller-facts"> 2040 ${u(la._618,c,!0)} 2041 ${f.businessName&&f.sellerName?u(la._1753,f.sellerName):""} 2042 ${u(la._786,f.address?.join(", "))} 2043 ${u(la._1207,f.tradeNumber)} 2044 ${u(la._1208,f.vatID)} 2045 ${u(la._1209,f.phoneNumber)} 2046 ${u(la._5,f.email)} 2047 ${u(la._1210,f.businessType)} 2048 ${u(la._1211,f.shareCapital)} 2049 ${u(la._1212,f.representative)} 2050 ${u(la._1213,f.customerServicesAddress?.join(", "))} 2051 </div> 2052 </div>`;u=(t,G,da)=>`<div class="seller-stat"> 2053 <div class="seller-stat__label">${t}</div> 2054 <div class="seller-stat__value">${G}</div> 2055 ${da?`<div class="seller-stat__note">${da}</div>`:""} 2056 </div>`;n=k>-1?`${la._47} ${(new Date(keepaTime.minutesToEpoch(n))).formatDate("M j, Y")}`:"";r=`<div class="card"> 2057 <div class="seller-stats"> 2058 ${u(la._440,`${f.positiveRating[3]}%`,la._1150)} 2059 ${u(la._1563,NumberUtil.format(f.ratingCount[3]),la._1150)} 2060 ${u(la._1192,k>-1?NumberUtil.format(k):"?",n)} 2061 ${u(la._1195,f.hasFBA?la._254:la._255)} 2062 ${u(LangUtil.fill(la._1572,{condition:la._93}),`${f.buyBoxNewOwnershipRate}%`)} 2063 ${u(LangUtil.fill(la._1572,{condition:la._94}),`${f.buyBoxUsedOwnershipRate}%`)} 2064 ${u(LangUtil.fill(la._1571),f.avgBuyBoxCompetitors>0?NumberUtil.format(f.avgBuyBoxCompetitors,2):"–")} 2065 ${u(la._1196,(new Date(keepaTime.minutesToEpoch(f.trackedSince))).formatDate("M j, Y"))} 2066 </div> 2067 ${d>0?`<div style="margin-top:18px;"> 2068 <a class="card-action" href="${r}" target="_blank" rel="noopener"> 2069 <i class="fa fa-table"></i>${la._1194} 2070 </a> 2071 </div>`:""} 2072 </div>`;u=`<div class="card"> 2073 <h4 class="card-title">${la._1766}</h4> 2074 <table class="seller-ratings"> 2075 <thead> 2076 <tr> 2077 <th></th> 2078 <th>${la._1150}</th> 2079 <th>30 ${la._244}</th> 2080 <th>90 ${la._244}</th> 2081 <th>365 ${la._244}</th> 2082 </tr> 2083 </thead> 2084 <tbody> 2085 <tr> 2086 <td>${la._440}</td> 2087 <td class="-primary">${f.positiveRating[3]}%</td> 2088 <td>${f.positiveRating[0]}%</td> 2089 <td>${f.positiveRating[1]}%</td> 2090 <td>${f.positiveRating[2]}%</td> 2091 </tr> 2092 <tr> 2093 <td>${la._1563}</td> 2094 <td class="-primary">${NumberUtil.format(f.ratingCount[3])}</td> 2095 <td>${NumberUtil.format(f.ratingCount[0])}</td> 2096 <td>${NumberUtil.format(f.ratingCount[1])}</td> 2097 <td>${NumberUtil.format(f.ratingCount[2])}</td> 2098 </tr> 2099 </tbody> 2100 </table> 2101 <div id="sellerGraph" class="graph seller-section__graph"></div> 2102 </div>`;var B=f.recentFeedback?.length?`<div class="card"> 2103 <h4 class="card-title">${la._1198}</h4> 2104 <ul class="seller-feedback"> 2105 ${f.recentFeedback.map(t=>`<li>
2106 <span class="whitespace-nowrap">${getStarsFromRating(t.rating)}</span> 2107 <span class="seller-feedback__date">${(new Date(keepaTime.minutesToEpoch(t.date))).formatDate("M j, Y")}</span> 2108 </li>`).join("")} 2109 </ul> 2110 </div>`:"";k=(t,G,da)=>`<div class="card"> 2111 <h4 class="card-title">${t}</h4> 2112 <p class="card-desc seller-section__desc">${G}</p> 2113 <div id="${da}" class="on-white seller-section__grid"></div> 2114 </div>`;n=f.sellerName??f.sellerId;q=`${q} 2115 <h3 class="group-header">${la._1768}</h3> 2116 ${r} 2117 ${u} 2118 ${B}`;if(f.competitors?.length||f.sellerCategoryStatistics?.length||f.sellerBrandStatistics?.length)q+=`<h3 class="group-header">${la._1767}</h3>`;f.competitors?.length&&(q+=k(la._1574,LangUtil.fill(la._1575,{seller:n}),"grid-container-seller-competitors"));f.sellerCategoryStatistics?.length&&(q+=k(la._1199,LangUtil.fill(la._1200,{seller:n}),"grid-container-seller-category-statistic"));f.sellerBrandStatistics?.length&&(q+=k(la._1201,LangUtil.fill(la._1202,{seller:n}),"grid-container-seller-brand-statistic")); 2119d=material.getTabs({tabs:[{tab:{icon:"bar-chart",label:la._1205},panel:{id:"sellerMetrics",content:q},isActive:!0},d>0?{tab:{icon:"table",label:la._1206},panel:{id:"sellerStorefront"}}:null],panelsClass:"dataContent"});replaceHtml("sellerPage",d);tabSwitcher().listen("MDCTabBar:change",({detail:t})=>{t.activeTabIndex==1&&(t=document.getElementById("sellerStorefront"),t&&t.innerHTML.length>50||(replaceHtml("sellerStorefront",'<div class="card">\n <div id="grid-container-storefront" class="on-white"></div>\n </div>'), 2120GridStorefront.init(f,"grid-container-storefront")))});if(d=document.getElementById("sellerName"))d.textContent=f.sellerName??f.sellerId;a(f);f.competitors?.length&&GridSellerCompetitors.init(f,"grid-container-seller-competitors");f.sellerCategoryStatistics?.length&&GridSellerCategoryStatistic.init(f,"grid-container-seller-category-statistic");f.sellerBrandStatistics?.length&&GridSellerBrandStatistic.init(f,"grid-container-seller-brand-statistic")}else d=`<div class="card"><p class="card-desc">${LangUtil.fill(la._414, 2121{sellerId:c,tld:getTldByDomain(b)})}</p></div>`,replaceHtml("sellerPage",d)}).fail(function(d){DomUtil.hide(document.getElementById("loadingIcon"));if(d.status==429)QuotaUI.handleExceeded();else if(d&&d.status){let f=Error(`Seller initialization failed: ${d.status}`);f.status=d.status;showErrorPopup(f)}else showErrorPopup(d)})}}}();let compareCache="",comparePricesOverlayActive=!1,dataProduct="",graphShareURL="",prevTitle="",refreshedOnce=!1,generatingProduct=!1,shareChartOverlayActive=!1; 2122function parseCurrentProductPrices(a,b,c){b&&b!=void 0||(b=a.domainId);var d=(t,G)=>t!=="null"&&t!==-1?Money.format(t,G):"",f={sourceDomainId:b,targetDomainId:b};c=[{price:getLast(a.csv[CsvType.BUY_BOX_SHIPPING.index],CsvType.BUY_BOX_SHIPPING),label:"Buy Box: ",value:"priceBuyBox"},{price:a.AMAZON_LAST,label:"Amazon: ",value:"priceAmazon"},{price:a.MARKET_NEW_LAST,label:la._93+":",value:"priceNew"},{price:a.MARKET_USED_LAST,label:la._94+":",value:"priceUsed"}].map(t=>{var G=d(t.price,f),da=showReferencePrice(b)? 2123d(t.price,{sourceDomainId:b}):"";return{...t,formatted:G,target:da}});var k=showReferencePrice(b)?'<span class="price__reference" style="text-align:right;"><span>':"<span>",n=showReferencePrice(b)?"</span></span>":"</span>",q="";c.forEach((t,G)=>{t.formatted&&(q+=`<span class="font-sans-wide text-xs text-grey-a700">${G===0?t.label:" "+t.label}</span><span class="productTableDescriptionPriceAlt ${t.value}">${t.target}${k}${t.formatted}${n}</span>`)});try{var r=getValueAtTime(a.csv[CsvType.LIGHTNING_DEAL.index], 2124keepaTime.now(),CsvType.LIGHTNING_DEAL);if(r>0){var u=Money.format(r,{sourceDomainId:a.domainId,targetDomainId:a.domainId});c="";showReferencePrice(b)&&(c=Money.format(r,{sourceDomainId:a.domainId}));q+=' <span class="font-sans-wide text-xs text-grey-a700">'+CsvType.getName(CsvType.LIGHTNING_DEAL.index)+':</span><span class="productTableDescriptionPrice" style="color:'+CsvType.LIGHTNING_DEAL.color+'">'+c+k+u+n+"</span>"}}catch(t){console.error(t)}u=getLastWithShipping(a.csv[CsvType.EBAY_NEW_SHIPPING.index], 2125CsvType.EBAY_NEW_SHIPPING);r=getLastWithShipping(a.csv[CsvType.EBAY_USED_SHIPPING.index],CsvType.EBAY_USED_SHIPPING);isAmazonOrAWS()&&(r=u=-1);var B=keepaTime.now();c=!1;if(a.lastEbayUpdate<=0||a.lastEbayUpdate>0&&B-a.lastEbayUpdate>40320)c=!0;if(!c&&u[0]>0){a=Money.format(u[0]+u[1],{sourceDomainId:b,targetDomainId:b});B=u[1]==0?la._567:Money.format(u[0],{sourceDomainId:b,targetDomainId:b})+(u[1]>0?" + "+Money.format(u[1],{sourceDomainId:b,targetDomainId:b,skipSymbol:!0})+" "+la._541:"");let t="", 2126G="";showReferencePrice(b)&&(G=u[1]==0?la._567+"\n":Money.format(u[0],{sourceDomainId:b})+(u[1]>0?" + "+Money.format(u[1],{sourceDomainId:b,skipSymbol:!0})+" "+la._541:"")+"\n",t="<span>"+Money.format(u[0]+u[1],{sourceDomainId:b})+"</span>");q+=' <span class="font-sans-wide text-xs text-grey-a700">'+CsvType.getName(CsvType.EBAY_NEW_SHIPPING.index)+':</span><span class="productTableDescriptionPrice priceEbayNew" title="'+G+B+'" style="color:'+CsvType.EBAY_NEW_SHIPPING.color+'">'+t+k+a+n+"</span>"}!c&& 2127r[0]>0&&(a=Money.format(r[0]+r[1],{sourceDomainId:b,targetDomainId:b}),u=r[1]==0?la._567:Money.format(r[0],{sourceDomainId:b,targetDomainId:b})+(r[1]>0?" + "+Money.format(r[1],{sourceDomainId:b,targetDomainId:b,skipSymbol:!0})+" "+la._541:""),B=c="",showReferencePrice(b)&&(B=r[1]==0?la._567+"\n":Money.format(r[0],{sourceDomainId:b})+(r[1]>0?" + "+Money.format(r[1],{sourceDomainId:b,skipSymbol:!0})+" "+la._541:"")+"\n",c="<span>"+Money.format(r[0]+r[1],{sourceDomainId:b})+"</span>"),q+=' <span class="font-sans-wide text-xs text-grey-a700">'+ 2128CsvType.getName(CsvType.EBAY_USED_SHIPPING.index)+':</span><span class="productTableDescriptionPrice priceEbayUsed" title="'+B+u+'" style="color:'+CsvType.EBAY_USED_SHIPPING.color+'">'+c+k+a+n+"</span>");return q} 2129function closeProductOverlay(){var a=document.querySelector("#productOverlay #graph"),b=DomUtil.data(a,"domainId"),c=a?.dataset.asin;graph.remove(b,c,DomUtil.data(a,"index"));graph.remove(b,c,1);
2129DomUtil.hide(document.getElementById("overlayShadow"));var d=document.getElementById("productOverlay");a=function(){DomUtil.setStyles(d,{transform:""});replaceHtml("detailProductPage","");document.getElementById("detailProductPage")?.remove()};isMobile?(a(),DomUtil.hide(d)):window.keepaAnim.slideUpOut(d,250, 2130a);unbindOverlayClick();unbindOverlayEscape();overlayClosed=!0;document.title=prevTitle;window.location.href=preOverlayUrl;QuotaUI.setupWidget()}function productUpdate(){refreshedOnce=!1;if(document.getElementById("detailProductPage"))loadProduct(0);else if(!generatingProduct){generatingProduct=!0;try{generateProduct()}finally{generatingProduct=!1}}} 2131function addLightningDealBox(a){var b=CsvType.LIGHTNING_DEAL.index;b=a.csv?a.csv[b]:null;if(b!=null){let k=b.length;if(k>3&&b[k-1]==-1&&b[k-3]==-1){var c=0;try{for(;b[k-5]==-1;)k-=2;c=b[k-2];let n=k;for(;c<keepaTime.now()&&n+2<=b.length;)n+=2,c=b[n-2]}catch(n){console.error(n,b,k)}if(!(keepaTime.now()>c)){var d=(new Date(keepaTime.minutesToEpoch(c))).formatDate("M j, G:i"),f="";k>5&&b[k-5]>0&&(c=Date.now()/6E4-(b[k-6]+offsetMinutes),a=Money.format(b[k-5],{sourceDomainId:a.domainId,targetDomainId:a.domainId}), 2132f=`<br><span style="color:#303030;font-size:12px;">${la._649} (${prettyDate(c)}) ${la._650} ${a}</span>`);setTimeout(function(){var n=`<div style="color:tomato;font-size:19px;width:100%;text-align:center;margin-top:20px"> 2133 <span><i class="fa fa-bolt"></i> ${la._560}! <span style="color: #6b4a4a;">${la._648} ${d}</span> <i class="fa fa-bolt" ></i></span> 2134 ${f} 2135 </div>`;document.getElementById("subGraphHover")?.insertAdjacentHTML("beforebegin",n);addon()},0)}}}}function getProductFromList(a,b){var c=null;if(b!=null)for(let d=0;d<b.length;d++){let f=b[d];if(f.asin===a){c=f;break}}return c} 2136function loadProduct(a){var b=lastSubUrl.split("-");if(b.length!==2)replaceHtml("productTableDescription",`Error:<br>${la._216}`);else{var c=b[0]+"-"+b[1],d=b[0],f=b[1];b=f.match(verifyRegExp.asin);if(!b||b[1].length<10)replaceHtml("productTableDescription",`Error:<br>${la._216}`);else if(f=b[1],d.match(verifyRegExp.domainId)){d=Number(d);comparePricesOverlayActive=!1;compareCache="";shareChartOverlayActive=!1;DomUtil.hide(document.getElementById("productTableImageBox"));var k=network.request({path:"user/tracking", 2137asin:f}),n=function(q){if(document.getElementById("productTableDescription"))if(q.products){urlStore.set(c).catch(()=>{});var r=!1,u=!1,B=!1;for(let D=0;D<q.products.length;D++){var t=q.products[D];t!=null&&(t.ASIN=f,t.MANUFACTURER=t.manufacturer,t.TITLE=t.title,t.LASTUPDATE=t.lastUpdate,t.TYPE=t.productType,isTest||t.productType!=ProductType.INVALID&&t.productType!=ProductType.VARIATION_PARENT?t=hydrateCsvFields(t):q.products.length==1&&(B=!0))}q.products.length>1&&(t=getProductFromList(f,q.products)); 2138if(t==null)replaceHtml("productTableDescription",la._121);else if(t.productType==ProductType.VARIATION_PARENT||t.asin==t.parentAsin)if(typeof t.variations=="undefined"||t.variations==null)replaceHtml("productTableDescription",la._121);else if(B="<div>Please select a specific variation of this product:</div><br>",typeof q.products!="undefined")replaceHtml("productTableDescription",`${B}<div id="variationGrid" class="on-white" data-wrapper="detailProductPage"></div>`),DomUtil.setStyles(document.getElementById("productTableDescription"), 2139{overflowY:"auto"}),network.withGrid(()=>{GridVariation.init(q.products,"variationGrid",!1)});else if(t.variations==null)replaceHtml("productTableDescription",la._121);else{for(var G in t.variations)B+='<br><a href="#!product/'+d+"-"+t.variations[G].asin+'">Variation '+G+"</a>";replaceHtml("productTableDescription",B);DomUtil.setStyles(document.getElementById("productTableDescription"),{overflowY:"auto"})}else if([ProductType.DOWNLOADABLE,ProductType.EBOOK].includes(t.productType)?r=!0:t.productType== 2140ProductType.INACCESSIBLE?u=!0:t.productType==ProductType.INVALID&&(B=!0),DomUtil.show(document.getElementById("productTableImageBox")),t=q.products[0],t.timeStamp=Date.now(),t.ASIN==null)replaceHtml("productTableDescription",'<i class="fa fa-exclamation-circle tomato fa-lg"></i> '+la._341);else{var da=keepaTime.now(),Y=[];t.stats=getStatistics(t);G=D=>D==null||D.length==2&&D[1]==-1;var X=!0;if(t.csv==null||t.csv[0]==null||G(t.csv[CsvType.AMAZON.index])&&G(t.csv[CsvType.NEW.index])&&G(t.csv[CsvType.USED.index])&& 2141t.csv[CsvType.COLLECTIBLE.index]==null&&t.csv[CsvType.REFURBISHED.index]==null&&G(t.csv[CsvType.SALES.index]))X=!1;graphShareURL=GraphService.getShareUrl(t.asin,d);var {mainHTML:P,thumbsHTML:ka}=function(D){var W=new Set([".gif",".jpg",".png",".jpeg"]),N=D.videos?.filter(V=>V.creator==="Main").slice(0,2)??[];D=(D.images?D.images.map(V=>V.l||V.m):[]).slice(0,7)??[];if(D.length===0&&N.length===0)return{mainHTML:`<img src="${imgCDNUrl}no-img.gif" alt="${la._905}" />`,thumbsHTML:""};var ha=V=>{if(!V)return{filename:"invalid-source", 2142filetype:".jpg"};var O=V.lastIndexOf(".");if(O===-1)return{filename:V,filetype:".jpg"};var wa=V.substring(0,O);V=V.substring(O).toLowerCase();return{filename:wa,filetype:W.has(V)?V:".jpg"}};N=[...D.map((V,O)=>({type:"image",id:O,source:V})),...N.map((V,O)=>({type:"video",id:`${O}V`,source:V.image}))];D=N.map(({id:V,source:O})=>{var {filename:wa,filetype:La}=ha(O);return`<div id="${V}" class="productThumb" style="background: url('${`${imageServer}${wa}._SL75_${La}`}') center center no-repeat;"></div>`}).join(""); 2143return{mainHTML:`<div id="mainImageDiv">${N.map(({id:V,source:O})=>{var {filename:wa,filetype:La}=ha(O);return`<img id="i${V}" src="${`${imageServer}${wa}${La}`}" style="display: none; max-height: calc(100% - 100px); max-width: calc(100% - 100px);" />`}).join("")}</div>`,thumbsHTML:D}}(t);replaceHtml("productTableImageBoxThumbs",ka);replaceHtml("productTableImageBoxMain",P);r&&prependProductInfo(la._666);u&&prependProductInfo(la._669);B?X?(replaceHtml("productTableDescription",'<div style="color:tomato;font-size: 16px;"><i class="fa fa-exclamation-triangle"></i> '+ 2144la._341+'</div><br>Below is our <strong>outdated</strong> historical data for this product:<br><br><div id="priceHistory" class="active"><div class="graph unselectable" id="graph"></div></div>'),B=document.getElementById("graph"),G=graph.prepare(d),G.csv=t.csv,G.salesRanks=t.salesRanks,G.syncedGraphs=Y,Y.push(G),G.salesRankCategoryTrees=t.salesRankCategoryTrees,G.salesRankReference=t.salesRankReference,G.salesRankCategories=t.salesRankCategories,G.asin=t.ASIN,G.graphIndex=0,G.stats=t.stats,G.buyBoxSellerIdHistory= 2145t.buyBoxSellerIdHistory,G.buyBoxUsedHistory=t.buyBoxUsedHistory,G.offers=t.offers,G.$container=B,DomUtil.show(G.$container),G.parameter.width=float2int(DomUtil.width(B.parentElement))-200+"px",G.parameter.interval=(da-t.trackingSince)/60,G.parameter.forceInterval=!0,graph.create(G),addSubGraphMenu(t,d,Y),DomUtil.hide(document.getElementById("casinLine"))):replaceHtml("productTableDescription",la._341):k.always(function(D){t.communityTrackings=D?.communityTrackings??0;t.tracking=D?.tracking??null; 2146t.trackingInfos=getTrackingInfos(t);addLightningDealBox(t);var W=t.csv[CsvType.RATING.index],N=t.csv[CsvType.COUNT_REVIEWS.index];D="";if(!r&&!u&&W!=null&&N!=null){D=W[W.length-1]>-1?W[W.length-1]:0;N=N[N.length-1]>-1?N[N.length-1]:0;W=(D/10).toFixed(1);var ha="",V=t.stats[CsvType.RATING.index];V&&V.avg&&V.avg.val>0&&V.avg.val!=D&&(ha=V.avg.val>D?"down":"up",ha=' <i title="'+(V.avg.val<D?la._72:la._73)+'" class="fa fa-arrow-circle-'+ha+'" ></i>');D=`${getStarsFromRating(D)} <span style="color:#cea000">${W}${ha}</span> `; 2147N=`(${la._71.replace("#count#",CsvType.format("COUNT_REVIEWS",N))})`;D=` <span style="white-space: nowrap;" class="small">${D}${N}</span>`}N=t.itemHighlights?" | "+stripHTML(t.itemHighlights):"";D='<div id="productInfoBox">'+('<div class="font-sans text-lg">
2147'+stripHTML(t.TITLE)+N+D+"</div>");prevTitle=document.title;W=document.createElement("div");W.innerHTML=stripHTML(t.TITLE)+N;document.title=docTitlePrefix+W.innerHTML;N=t.MANUFACTURER&&t.MANUFACTURER!=="null"?`${la._122}${t.MANUFACTURER}`: 2148"";W=(W=t.variations?.find(Pa=>Pa.asin===t.ASIN))?`<span class="italic">${W.attributes.map(Pa=>Pa.value).join(", ")}</span>`:"";ha=[["UPC",t.upcList],["EAN",t.eanList],["GTIN",t.gtinList]].map(([Pa,ta])=>(ta=Array.isArray(ta)?ta.find(Boolean):ta)?`${Pa}: ${ta}`:null).find(Boolean);D+=`<div class="pb-4 font-sans-wide text-xxs">${[N,W,`<span style="color: #999;">ASIN: ${t.ASIN}${ha?" "+ha:""}</span>`].filter(Boolean).join(" ")}</div>`;r||u||(D+=parseCurrentProductPrices(t,d));getCurrencyByDomain(d); 2149N=Date.now()/6E4-(t.LASTUPDATE+offsetHours*60);W="";r||u||typeof t.lastPriceChange=="undefined"||(W=Date.now()/6E4-(t.lastPriceChange+offsetHours*60),W=", "+la._532+": "+prettyDate(W));ha=N>60?' <i id="refreshProduct" title="'+la._217+'" class="fa fa-refresh fa-rotate-90" style="cursor: pointer;"></i> ':"";D+='<span style="font-size: 12px; color: #999;">  ('+la._123+" "+prettyDate(N)+ha+W+")</span>";N='<img class="amznLogo" src="'+imgCDNUrl+"amazon/small/"+getTldByDomain(d)+ 2150'.png">';W="";if(!r&&!u&&globalEbayArray[t.domainId]){W="#888";if(da-getLastTime(t.csv[CsvType.EBAY_NEW_SHIPPING.index],CsvType.EBAY_NEW_SHIPPING)<20160||da-getLastTime(t.csv[CsvType.EBAY_USED_SHIPPING.index],CsvType.EBAY_USED_SHIPPING)<20160)W="#000";W=' <a id="ebayA" href="'+getEbayRedirectByDomain(t.domainId,t.upcList,t.eanList,t.title,!0)+'" rel="ebay" title="'+la._1055+'"style="display: inline-block;font-size: 23px;line-height: 20px;transform: scale(1.2,1);color:'+W+'"><span>e</span><span style="margin-left: -2px;">b</span><span style="margin-left: -2px;">a</span><span style="margin-left: -2px;">y</span></a>'}ha= 2151storage.domain!=7?'<li class="tabItem" class="hidden" id="tabMore" rel="more">Data</li>':"";var O=t.variations!=null&&t.variations.length>0;O=(V=t.domainId==14)||!O?"":`<li class="tabItem" class="hidden" id="tabVariation" rel="more">${la._747}</li>`;var wa=`<li class="tabSubItem" data-box="#MoreTab2">${la._1084}</li>`,La=`<li class="tabSubItem" data-box="#MoreTab3">${la._1085}</li>`,Ba=`<li class="tabSubItem" data-box="#MoreTab4">${la._1086}</li>`,fa=null;if(!r&&!u&&t.categories&&t.categories.length> 21520&&!V)try{var ia=JSON.parse(JSON.stringify(dealWrapperInstance.get().loadRequest("last")));ia.includeCategories==null&&(ia.includeCategories=[]);ia.includeCategories[t.domainId]=t.categories;ia.dateRange=4;fa="https://keepa.com/#!deals/"+encodeURIComponent(JSON.stringify(ia))}catch(Pa){reportBug(Pa)}ia=fa!=null?'<li class="tabItem tabDeals"><a href="'+fa+'">→ '+la._420+"</a></li>":"";D+='</div><div class="tabBox"><div><ul id="tabHead" class="flex"><li class="tabItem active" id="tabGraph" rel="graph">'+ 2153la._124+"</li>"+(V||r||u?"":'<li class="tabItem" id="tabTrack" rel="track">'+la._125+"</li>")+ha+O+'<li class="tabItem" id="tabAmazon"><a href="'+getAmazonRedirectByDomain(d,t.ASIN)+'" rel="amazon"><span style="margin-left:20px"></span>'+N+"</a>"+W+"</li>"+ia+'</ul></div><div id="tabContent"><div id="priceHistory" class="active"><div class="graph unselectable" id="graph"></div></div><div class="productTrack" id="track"></div><div class="productInfos" id="infos"></div><div class="productLoadingTab" id="loadingTab"></div><div id="more" class="hidden" style="margin-right: 0px;position: relative;min-height:60px;"><div><ul id="tabHeadSub">'+ 2154`<li class="tabSubItem active" data-box="#MoreTab1">${la._1083}</li>`+(r||u?"":wa)+(r||u?"":La)+(r||u?"":Ba)+'</ul></div><div id="loadingIconAdv" style="position: absolute !important;left: 185px;top: 80px;"><div id="loadingProgress"></div></div>'+`${storage.accountType==0?`<div class="text-pro-primary" style="margin:15px 0;font-weight:500;font-style:italic;">${la._925}</div><br>`:""}`+'<div style="margin-top: 20px;"><div class="active" id="MoreTab1"'+(isMobile?' style="overflow-x: auto;"':"")+'></div><div class="hidden" id="MoreTab2"></div><div class="hidden" id="MoreTab3"></div><div class="hidden" id="MoreTab4"></div></div></div><div id="variation"></div></div></div>'; 2155replaceHtml("productTableDescription",D);ColorTip.attach(".priceEbayNew, .priceEbayUsed, #ebayA",{color:"dodger-blue"});var Aa=document.getElementById("tabContent"),Ia=document.getElementById("tabHead");document.getElementById("ebayA")?.addEventListener("click",function(){this.getAttribute("href").includes("campid")&&(storage.lastEbayClick=keepaTime.now(),settings.send())},{once:!0});refreshedOnce||document.getElementById("refreshProduct")?.addEventListener("click",function(){refreshedOnce=!0;this.classList.add("fa-spin"); 2156loadProduct(1)},{once:!0});r||u||setTimeout(function(){storage.previewCasin&&function(){callCasin(function(Pa){comparePricesLine(t.ASIN,d,Pa)},t.ASIN,d,!0)}()},1);var Ga=()=>Aa.querySelectorAll(":scope > .active").forEach(Pa=>{DomUtil.hide(Pa);Pa.classList.remove("active")}),Ya=()=>
2156[...Ia.children].forEach(Pa=>Pa.classList.remove("active"));document.getElementById("tabGraph")?.addEventListener("click",function(){if(!this.classList.contains("active")){Ga();var Pa=document.getElementById("priceHistory"); 2157Pa.classList.add("active");window.keepaAnim.fadeIn(Pa);Ya();this.classList.add("active");DomUtil.show(document.getElementById("subGraphButtons"))}});document.getElementById("tabTrack")?.addEventListener("click",function(){if(!this.classList.contains("active")){document.querySelector("#track .tracking")||(TrackingComponent.init(q),DomUtil.show(document.getElementById("grid-tools-variation")),DomUtil.show(document.getElementById("grid-wrapper-variation")),DomUtil.show(document.getElementById("grid-wrapper-variation-filter"))); 2158DomUtil.hide(document.getElementById("priceHistory"));Ga();var Pa=document.getElementById("track");Pa.classList.add("active");window.keepaAnim.fadeIn(Pa);Ya();this.classList.add("active")}});document.getElementById("tabMore")?.addEventListener("click",function(){if(!this.classList.contains("active")){DomUtil.setStyles(Aa,{height:""});var Pa=DomUtil.width(Aa);DomUtil.hide(document.getElementById("subGraphButtons"));DomUtil.hide(document.getElementById("refreshProductBox"));Ga();var ta=document.getElementById("more"); 2159ta.classList.add("active");window.keepaAnim.fadeIn(ta);DomUtil.setWidth(ta,Pa-40);Ya();this.classList.add("active");iframe.loadDataOffers("MoreTab1",t)}});document.getElementById("tabHeadSub")?.addEventListener("click",function(Pa){Pa=Pa.target;if(!Pa.classList.contains("active")){for(var ta of Pa.parentElement?.children??[])ta!==Pa&&ta.classList.remove("active");Pa.classList.add("active");if(ta=(ta=DomUtil.data(Pa,"box"))?document.querySelector(ta):null){for(let ea of ta.parentElement?.children?? 2160[])ea!==ta&&ea.classList.contains("active")&&(ea.classList.remove("active"),ea.classList.add("hidden"));ta.classList.remove("hidden");ta.classList.add("active")}iframe.loadDataOffers(ta?.id,t);addon("resize",50+float2int(DomUtil.height(document.getElementById("initPage"))))}});document.getElementById("tabVariation")?.addEventListener("click",function(){if(!this.classList.contains("active")){DomUtil.setStyles(Aa,{height:""});var Pa=DomUtil.width(Aa);Ga();var ta=document.getElementById("variation"); 2161ta.classList.add("active");window.keepaAnim.fadeIn(ta);DomUtil.setWidth(ta,Pa);Ya();this.classList.add("active");iframe.loadVariationMatrix(t)}});t.stats||(t.stats=getStatistics(t));dataProduct=t;X?(D=document.getElementById("graph"),ia=graph.prepare(d),ia.csv=t.csv,ia.p=t,ia.salesRanks=t.salesRanks,ia.salesRankCategoryTrees=t.salesRankCategoryTrees,ia.isParentSalesRank=t.isParentSalesRank,ia.monthlySold=t.monthlySold,ia.monthlySoldHistory=t.monthlySoldHistory,ia.lastSoldUpdate=t.lastSoldUpdate,ia.salesRankReference= 2162t.salesRankReference,ia.salesRankCategories=t.salesRankCategories,ia.asin=t.ASIN,ia.graphIndex=0,ia.syncedGraphs=Y,Y.push(ia),ia.stats=t.stats,ia.buyBoxSellerIdHistory=t.buyBoxSellerIdHistory,ia.buyBoxUsedHistory=t.buyBoxUsedHistory,ia.offers=t.offers,ia.$container=D,DomUtil.show(ia.$container),t.tracking!=null&&(ia.parameter.tracking=t.tracking),D&&(ia.parameter.width=float2int(DomUtil.width(D.parentElement))-200+"px"),enableBuyBoxCouponGraph&&(D=mergePriceWithCoupon(t.csv[CsvType.BUY_BOX_SHIPPING.index], 2163!0,t.couponHistory,!0),ia.buyBoxWithCouponHistory=D),graph.create(ia),addSubGraphMenu(t,d,Y)):(ia=`<span style="color:tomato; margin-left: 20px;"><i class="fa fa-exclamation-triangle"></i> ${la._156}</span>`,D=document.getElementById("graph"),D.innerHTML=ia,DomUtil.show(D));addThumbEvents(t);TrackingComponent.init(q);triggerTrack&&(document.getElementById("tabTrack")?.click(),triggerTrack=!1);QuotaUI.setupWidget(!0)})}}else replaceHtml("productTableDescription",la._341)};network.request({path:"product", 2164type:"ws",history:!0,domainId:d,asin:f,maxAge:3,refreshProduct:a==1}).done(function(q){keepaTime.now();q.basicProducts!=null&&(q.products=q.basicProducts);q.variationProducts!=null&&(q.products=q.variationProducts);n(q)}).fail(function(q){replaceHtml("productTableDescription",`server not responding: <br>${la._error}`)})}else replaceHtml("productTableDescription",`Error:<br>${la._213}`)}} 2165function hideMoreDataGraph(a,b){var c=graph.getGraphObject(a,b,1,!1);c&&DomUtil.setStyles(c.$container,{pointerEvents:"none"});window.keepaAnim.fadeOut(document.getElementById("moreDataGraph"),{complete:function(){var d=graph.getGraphObject(a,b,0,!1);d&&(DomUtil.setHeight(d.$container,d.parameter.height),d.plot.resize(),graph.redraw(d,!0,!1),addon())}})} 2166function shrinkMainGraphForSubGraph(a){if(!keepaApp&&DomUtil.height(a.$container)!=300){let b=Math.min(DomUtil.height(a.$container),300),c=float2int(DomUtil.height(a.$container.querySelector(".legend > table")));b=Math.max(b,c);float2int(DomUtil.height(a.$container))!=b&&DomUtil.setHeight(a.$container,b);a.plot.resize();graph.redraw(a,!0,!0)}}
2167function revealSubGraph(a,b){addon("resize",float2int(DomUtil.height(document.getElementById("initPage"))+DomUtil.height(a)));DomUtil.setStyles(a,{pointerEvents:"auto"});window.keepaAnim.fadeIn(a,{complete:function(){graph.syncGraphAlignment(b)}})} 2168function showMoreDataGraph(a,b,c){var d=graph.getGraphObject(b,a.ASIN,0,!1);if(typeof d=="undefined"||d==null)console.error("maingraph undefined");else{shrinkMainGraphForSubGraph(d);var f=document.getElementById("moreDataGraph");f&&(f.children.length>0?revealSubGraph(f,d):(b=graph.prepare(b),b.csv=a.csv,b.asin=a.ASIN,b.syncedGraphs=c,c.push(b),b.axes.x[0].show=!0,keepaApp||(b.axes.x[0].tickFormatter=function(){return""}),b.graphIndex=1,b.stats=a.stats,b.$container=f,b.preProcessedCSV=!0,keepaApp|| 2169DomUtil.show(b.$container),b.parameter.width=d.parameter.width,b.parameter.height="190px",keepaApp&&(b.parameter.height=window.innerHeight-80),a.tracking!=null&&(b.parameter.tracking=a.tracking),graph.create(b),setTimeout(addon,1)))}} 2170function hideSalesRankGraph(a,b){var c=graph.getGraphObject(a,b,2,!1);typeof c!="undefined"&&(c&&DomUtil.setStyles(c.$container,{pointerEvents:"none"}),window.keepaAnim.fadeOut(c.$container,{complete:function(){var d=graph.getGraphObject(a,b,0,!1);d&&(DomUtil.setHeight(d.$container,d.parameter.height),d.plot.resize(),graph.redraw(d,!0,!1),addon())}}))} 2171function showSalesRankGraph(a,b,c){try{if((typeof a.salesRanks=="undefined"||a.salesRanks==null)&&a.monthlySoldHistory==null||a.csv[CsvType.SALES.index].length==2&&a.csv[CsvType.SALES.index][1]==-2)return;let B=graph.getGraphObject(b,a.ASIN,0,!1);if(typeof B=="undefined"||B==null){console.error("maingraph undefined");return}let t=graph.prepare(b);t.syncedGraphs=c;t.asin=a.ASIN;t.type="subRanks";t.axes.x[0].show=!0;keepaApp||(t.axes.x[0].tickFormatter=function(){return""});typeof a.salesRankCategoryTrees== 2172"undefined"&&(a.salesRankCategoryTrees={});typeof a.salesRankCategories=="undefined"&&(a.salesRankCategories={});for(var d=-2;d<0;d++)if(a.salesRankReference==d&&typeof a.salesRankCategoryTrees[d]=="undefined"){var f=""+d;a.salesRankCategoryTrees[f]=[{catId:d,name:la._1104}];a.salesRankCategories[f]={domainId:a.domainId,catId:f,name:d==-2?"Launchpad":la._1104,children:[],parent:-1,highestRank:0,productCount:0}}d={};f={};let G={};for(var k in a.salesRankCategoryTrees)f["#"+k]=a.salesRankCategoryTrees[k]; 2173for(var n in a.salesRankCategories)G["#"+n]=a.salesRankCategories[n];if(a.salesRanks!=null)for(let P in a.salesRanks)d["#"+P]=a.salesRanks[P];if(Object.keys(a.salesRankCategoryTrees).length===0&&a.salesRankCategoryTrees.constructor===Object)return;k=[];for(var q in d)k[q]=d[q];k["#"+a.salesRankReference]=a.csv[CsvType.SALES.index];q=[];var r=getCategorySalesRanks(f,G,k);if(r.length==0)return;n=0;d=[];d["#"+a.salesRankReference]=a.csv[CsvType.SALES.index];if(a.salesRanks!=null)for(let P of r)typeof a.salesRanks[P.cr.catId]!= 2174"undefined"&&(d["#"+P.cr.catId]=a.salesRanks[P.cr.catId],q.push({data:a.salesRanks[P.cr.catId],catId:P.cr.catId}),n++);t.allRanksOrdered=q;t.csv=Object.assign({},d);t.csv["#monthlySold"]=a.monthlySoldHistory;var u=t.axes.y[t.axes.y.length-1].index;u=2;r=!0;let da=[t.axes.y[0]];for(let P in k)da.push({index:u++,tickDecimals:0,min:0,alignTicksWithAxis:0,position:"right",tickFormatter:function(ka,D){return"#"+NumberUtil.format(ka)},transform:storage.salesRankInverse==="0"?null:function(ka){return-ka}, 2175inverseTransform:storage.salesRankInverse==="0"?null:function(ka){return-ka},tickColor:"rgba(0, 255, 0, 0.13)",show:r,defaultShow:r}),r=!1;a.monthlySoldHistory!=null&&da.push({index:u++,tickDecimals:0,min:0,alignTicksWithAxis:0,position:"left",tickFormatter:function(P,ka){return'<span style="white-space: nowrap;">'+P+"</span>"},tickColor:"rgba(250,178,1,0.13)",show:!0,defaultShow:!0});shrinkMainGraphForSubGraph(B);let Y=document.getElementById("salesRankGraph");if(Y.children.length>0){revealSubGraph(Y, 2176B);return}c.push(t);let X=[0,0];if(a.salesRankReferenceHistory!=null&&a.trackingSince<changeV5){X=[...a.salesRankReferenceHistory];c=[];for(u=0;u<a.salesRankReferenceHistory.length;u+=2){let P=a.salesRankReferenceHistory[u+1];isNaN(Number(P))||(G["#"+P]?X[u+1]=G["#"+P].name:c.push(P))}c.length>0&&network.request({path:"pro/category",type:"name",domainId:b,categoryIds:c}).done(P=>{for(let D=0;D<a.salesRankReferenceHistory.length;D+=2){var ka=a.salesRankReferenceHistory[D+1];(ka=P.categories?.[ka]?? 2177P.categoryNames?.[ka])&&(X[D+1]=ka.name||ka)}})}t.axes.y=da;t.graphIndex=2;t.$container=Y;t.salesRanks=d;t.salesRankCategoryTrees=f;t.salesRankReference="#"+a.salesRankReference;t.salesRankCategories=G;t.salesRankReferenceHistory=X;t.preProcessedCSV=!0;t.monthlySold=a.monthlySold;t.monthlySoldHistory=a.monthlySoldHistory;t.parameter.width=B.parameter.width;t.parameter.height="125px";keepaApp&&(t.parameter.height=window.innerHeight-80);keepaApp||DomUtil.show(t.$container);graph.create(t)}catch(B){reportBug(B, 2178a.asin+" "+a.domainId),console.log(B)}setTimeout(addon,1)}function hideCouponGraph(a,b){var c=graph.getGraphObject(a,b,3,!1);typeof c!="undefined"&&(c&&DomUtil.setStyles(c.$container,{pointerEvents:"none"}),window.keepaAnim.fadeOut(c.$container,{complete:function(){var d=graph.getGraphObject(a,b,0,!1);d&&(DomUtil.setHeight(d.$container,d.parameter.height),d.plot.resize(),graph.redraw(d,!0,!1),addon())}}))} 2179function showCouponGraph(a,b,c){try{if(typeof a.couponHistory=="undefined"||a.couponHistory==null)return;let d=graph.getGraphObject(b,a.ASIN,0,!1);if(typeof d=="undefined"||d==null){console.error("maingraph undefined");return}let f=graph.prepare(b);f.syncedGraphs=c;f.asin=a.ASIN;f.type="couponHistory";f.objectType=CouponType;f.axes.x[0].show=!0;
2179keepaApp||(f.axes.x[0].tickFormatter=function(){return""});let k=a.couponHistory.reduce((G,da,Y)=>Y%3===0?[...G,a.couponHistory[Y],a.couponHistory[Y+2]=== 21800?-1:a.couponHistory[Y+2]*-1]:G,[]),n=a.couponHistory.reduce((G,da,Y)=>Y%3===0&&a.couponHistory[Y+1]<=0?[...G,a.couponHistory[Y],a.couponHistory[Y+1]===0?-1:a.couponHistory[Y+1]*-1]:G,[]),q=a.couponHistory.reduce((G,da,Y)=>Y%3===0&&a.couponHistory[Y+1]>=0?[...G,a.couponHistory[Y],a.couponHistory[Y+1]===0?-1:a.couponHistory[Y+1]]:G,[]),r={[CouponType.getObjectName(CouponType.SNS.index)]:k,[CouponType.getObjectName(CouponType.OTPCT.index)]:n,[CouponType.getObjectName(CouponType.OTABS.index)]:q};f.csv= 2181Object.assign({},r);let u=f.axes.y[f.axes.y.length-1].index;u=2;let B=[f.axes.y[0]];for(let G in r)B.push({index:u++,tickDecimals:0,min:0,alignTicksWithAxis:0,position:CouponType[G].index==CouponType.OTABS.index?"left":"right",tickFormatter:function(da,Y){return CouponType[G].currency?Money.format(da,{sourceDomainId:b,targetDomainId:b,isDivided:!0,noDigits:!0}).replace(" "," "):'<span style="white-space: nowrap;">'+da+"%</span>"},tickColor:"rgba(102, 153, 204, 0.13)",show:!0,defaultShow:!0}); 2182shrinkMainGraphForSubGraph(d);let t=document.getElementById("couponGraph");if(t.children.length>0){revealSubGraph(t,d);return}c.push(f);f.axes.y=B;f.graphIndex=3;f.$container=t;f.couponHistories=r;f.preProcessedCSV=!0;f.parameter.width=d.parameter.width;f.parameter.height="100px";keepaApp&&(f.parameter.height=window.innerHeight-80);keepaApp||DomUtil.show(f.$container);graph.create(f)}catch(d){reportBug(d,a.asin+" "+a.domainId),console.log(d)}setTimeout(addon,1)} 2183function addSubGraphMenu(a,b,c){if(keepaApp){if(hasDataAccessSubscription)try{showSalesRankGraph(a,b,c)}catch(V){isTest?console.log(V):reportBug(V)}showMoreDataGraph(a,b,c)}else{var d=[ProductType.DOWNLOADABLE,ProductType.EBOOK].includes(a.productType),f=a.productType==ProductType.INACCESSIBLE,k=d||f?"":a.tracking==null&&a.communityTrackings?`<span class="shareChart" id="communityTracking">${a.communityTrackings>1?a.communityTrackings+" "+la._424:a.tracking!=null?la._426:"1 "+la._425}</span>`:a.tracking!= 2184null?`<span class="shareChart" id="trackingInfos"><span class="statsDate">${a.communityTrackings}</span> <i class="fa fa-users fa-18"></i> ${la._421}</span>`:"",n=d||f||storage.previewCasin?"":'<span class="shareChart " id="compareChart"><i class="fa fa-globe fa-18"></i> '+la._315+"</span>",q=storage.previewCasin?'<i id="compareChart" title="'+la._315+'" class="fa fa-globe fa-18" style="font-size: 37px !important;margin-right: 20px;opacity: 0.4;"></i><div id="loadingIconCasin" style="text-align:center;clear: both;"></div>': 2185"",r='<div class="legendTip"></div><div style="font-size: 10px;margin-left:30px;color:#7d7d7d;margin-bottom:-5px;position:relative;width: 600px;">'+(isMobile?"":la._509)+"<br>"+la._510+"</div>",u=enableCouponGraph?'<div id="couponGraph" class="graph" style="display:none;margin-top: 10px;"></div>
2185':"",B=`<span class="shareChart" id="graphControls"> 2186 <i class="fa fa-cog fa-18"></i> ${la._1408} 2187 </span>`,t=document.getElementById("graph");if(t){t.insertAdjacentHTML("afterend",` 2188 ${u} 2189 <div id="salesRankGraph" class="graph" style="display:none;margin-top: 10px;"></div> 2190 <div id="moreDataGraph" class="graph" style="display:none;margin-top: 10px;"></div> 2191 ${r} 2192 <div id="subGraphHover" style="position: relative;"> 2193 <div class="flex subGraphHoverAlignment"> 2194 <div></div> 2195 <div id="graphControlsContent" class="hidden"></div> 2196 <!--<div></div>--><!-- this will align it to the right --> 2197 </div> 2198 <div class="flex subGraphHoverAlignment"> 2199 <div></div> 2200 <div id="statisticsContent" class="hidden"></div> 2201 <div></div> 2202 </div> 2203 ${k?'\n\t\t\t<div class="flex subGraphHoverAlignment">\n\t\t\t\t<div></div>\n\t\t\t\t<div id="trackingInfosContent" class="hidden"></div>\n\t\t\t\t<div></div>\n\t\t\t</div>':""} 2204 </div> 2205 <div id="casinLine" class="flex"> 2206 ${q} 2207 <div id="subGraphButtons"> 2208 ${k} 2209 <span class="shareChart" id="statistics"> 2210 <i class="fa fa-bar-chart fa-18"></i> ${la._382} 2211 </span> 2212 ${n} 2213 <span class="shareChart" id="shareChart"> 2214 <i class="fa fa-share fa-18"></i> ${la._313} 2215 </span> 2216 ${B} 2217 </div> 2218 </div> 2219 `);var G=document.querySelectorAll(".toggleSalesRankGraph");k=document.getElementById("salesRankGraph");k.addEventListener("mouseenter",()=>{G.forEach(V=>DomUtil.setStyles(V,{background:"#e9f6ea",borderRadius:"16px",boxShadow:"0px 0px 7px 2px #e9f6ea"}))});k.addEventListener("mouseleave",()=>{G.forEach(V=>DomUtil.setStyles(V,{background:"#fff",boxShadow:"0px 0px 7px 2px #fff"}))});try{storage.showSalesRankGraph==="1"&&hasDataAccessSubscription&&showSalesRankGraph(a,b,c)}catch(V){isTest?console.log(V): 2220reportBug(V)}if(enableCouponGraph)try{storage.showCouponGraph==="1"&&hasDataAccessSubscription&&showCouponGraph(a,b,c)}catch(V){isTest?console.log(V):reportBug(V)}storage.moreData=="1"&&hasDataAccessSubscription?showMoreDataGraph(a,b,c):storage.moreData!="1"||hasDataAccessSubscription||(storage.moreData="0",hideMoreDataGraph(b,a.asin),settings.send());document.getElementById("compareChart")?.addEventListener("click",function(){comparePricesOverlay(a.ASIN,b)});if(a.trackingInfos){k="";let V=["<th></th>"], 2221O=[`<td class="statsRow1" style="width: 80px;">${la._423}</td>`];[CsvType.BUY_BOX_SHIPPING,CsvType.AMAZON,CsvType.NEW,CsvType.NEW_FBA,CsvType.NEW_FBM_SHIPPING,CsvType.USED,CsvType.WAREHOUSE,CsvType.USED_NEW_SHIPPING,CsvType.USED_VERY_GOOD_SHIPPING,CsvType.USED_GOOD_SHIPPING,CsvType.USED_ACCEPTABLE_SHIPPING].forEach(wa=>{var La={[CsvType.NEW_FBA.index]:CsvType.NEW,[CsvType.NEW_FBM_SHIPPING.index]:CsvType.NEW,[CsvType.USED_NEW_SHIPPING.index]:CsvType.USED,[CsvType.USED_VERY_GOOD_SHIPPING.index]:CsvType.USED, 2222[CsvType.USED_GOOD_SHIPPING.index]:CsvType.USED,[CsvType.USED_ACCEPTABLE_SHIPPING.index]:CsvType.USED}[wa.index]??wa,Ba=a.trackingInfos?.[wa.index]?.current;Ba&&Ba.val!=null&&Ba.val!==-1&&(V.push(`<th>${CsvType.getName(wa.index)}</th>`),wa=`<span style="white-space: nowrap">${Money.format(Ba.val,{sourceDomainId:b,targetDomainId:b})}</span>`,Ba=typeof Ba.date==="number"?keepaTime.now()-Ba.date:null,Ba=Ba!==null?prettyDate(Ba):la._83,O.push(`<td class="statsRow" style="border-color:${La.color};background:${La.bg}"> 2223 ${wa}<br><span class="statsDate">${Ba}</span> 2224 </td>`))});k=`<table id="trackingInfoTable" class="advanced"> 2225 <thead> 2226 <tr> 2227 ${V.join("")} 2228 </tr> 2229 </thead> 2230 <tbody> 2231 <tr> 2232 ${O.join("")} 2233 </tr> 2234 </tbody> 2235 </table>`;n=a.communityTrackings>1?`${a.communityTrackings} ${la._424}`:a.tracking?la._426:a.communityTrackings===1?`1 ${la._425}`:la._427;q="";if(r=a.tracking?.metaData)try{var da=JSON.parse(r);r=(r=da?.memo)?`<div style="padding:5px 10px;"><i class="fa fa-sticky-note fa-fw text-grey-300"></i> <span>${r}</span></div>`:"";da=da?.tags;
2235var Y=Array.isArray(da)?da:typeof da==="string"&&da.length>0?[da]:[];let wa=Y.length>0?Y.join(" "):"";Y=wa?`<div style="padding:5px 10px;"><i class="fa fa-tag fa-fw text-grey-300"></i> span>${wa}</span></div>`: 2236"";if(r||Y)q=`<div style="max-width:500px">${r}${Y}</div><hr>`}catch(wa){}replaceHtml("trackingInfosContent",` 2237 ${q} 2238 ${k} 2239 <div style="padding:10px;">${n}</div> 2240 `)}else replaceHtml("trackingInfosContent","");try{let V=a.stats;function O(Ba,fa,ia){var Aa="";try{if(V[fa]===void 0)return"";V[fa][ia]&&V[fa][ia]!=-1&&V[fa][ia].val!=-1&&V[fa][ia]!==-2?ia=="avgDrops"?Aa=`${V[fa][ia]}<br><span class="statsDate">${la._397}</span>`:(Ba==5?V[fa][ia].val&&(Aa="#"+NumberUtil.format(V[fa][ia].val)):Aa=Money.format(V[fa][ia].val,{sourceDomainId:b,targetDomainId:b}),Aa=ia=="avg"?Aa+`<br><span class="statsDate">${la._386.replace("X",V[fa].avg.days)}</span>`:ia=="avg180"? 2241Aa+`<br><span class="statsDate">${la._386.replace("X","180")}</span>`:ia=="current"?Aa+`<br><span class="statsDate">${prettyDate(keepaTime.now()-V[fa][ia].date)}</span>`:Aa+`<br><span class="statsDate">${(new Date(keepaTime.minutesToEpoch(V[fa][ia].date))).formatDate("M j, Y")}</span>`):Aa=V[fa].current===-2?'<span style="color: #666;"><i class="fa fa-lock"></i></span>':ia=="current"?`<span style="font-size:11px;">${d||f?"-":la._134}</span>`:'<span style="font-size:11px;">-</span>'}catch(Ia){return console.log(Ia), 2242""}return`<td class="statsRow${Ba}"> 2243 ${Aa} 2244 </td>`}var X=keepaTime.now()-a.trackingSince>4296?`<tr><td class="statsRow1"></td> 2245 ${O(2,"amazon","avg180")} 2246 ${O(3,"mnew","avg180")} 2247 ${O(4,"mused","avg180")} 2248 ${O(5,"salesrank","avg180")} 2249 </tr>`:"",P=V.salesrank.current===-2?`<span style="color:#666;display:inline-block;font-size:11px;padding:5px 15px;"><i class="fa fa-lock"></i> = ${stripTags(la._996)}</span>`:"";replaceHtml("statisticsContent",`<table id="statsTable"> 2250 <tr> 2251 <th></th> 2252 <th rel="2">Amazon</th> 2253 <th rel="3">${la._93}</th> 2254 <th rel="4">${la._94}</th> 2255 <th rel="5">${la._391}</th> 2256 </tr> 2257 <tr> 2258 <td style="color: rgb(60, 179, 113);" class="statsRow1">${la._383}<br></td> 2259 ${O(2,"amazon","lowest")} 2260 ${O(3,"mnew","lowest")} 2261 ${O(4,"mused","lowest")} 2262 ${O(5,"salesrank","lowest")} 2263 </tr> 2264 <tr> 2265 <td class="statsRow1">${la._344}</td> 2266 ${O(2,"amazon","current")} 2267 ${O(3,"mnew","current")} 2268 ${O(4,"mused","current")} 2269 ${O(5,"salesrank","current")} 2270 </tr> 2271 <tr> 2272 <td style="color: tomato" class="statsRow1">${la._384}</td> 2273 ${O(2,"amazon","highest")} 2274 ${O(3,"mnew","highest")} 2275 ${O(4,"mused","highest")} 2276 ${O(5,"salesrank","highest")} 2277 </tr> 2278 <tr> 2279 <td class="statsRow1">${la._385}</td> 2280 ${O(2,"amazon","avg")} 2281 ${O(3,"mnew","avg")} 2282 ${O(4,"mused","avg")} 2283 ${O(5,"salesrank","avg")} 2284 </tr> 2285 ${X} 2286 <tr> 2287 <td class="statsRow1">${la._396}<br><span style="font-size:11px;">90 ${la._857}</span></td> 2288 ${O(2,"amazon","avgDrops")} 2289 ${O(3,"mnew","avgDrops")} 2290 ${O(4,"mused","avgDrops")} 2291 ${O(5,"salesrank","avgDrops")} 2292 </tr> 2293 </table>${P}`);let wa=document.getElementById("statsTable");function La(Ba,fa){try{if(V[fa]===void 0||V[fa].lowest<0&&V[fa].current!==-2)wa?.querySelectorAll(".statsRow"+Ba).forEach(ia=>DomUtil.hide(ia)),wa?.querySelectorAll('th[rel="'+Ba+'"]').forEach(ia=>DomUtil.hide(ia))}catch(ia){console.error(V,Ba,fa,ia)}}La(2,"amazon");La(3,"mnew");La(4,"mused");La(5,"salesrank")}catch(V){}document.getElementById("shareChart")?.addEventListener("click",function(){shareChart()});var ka=document.getElementById("statisticsContent"), 2294D=document.getElementById("trackingInfosContent");X=document.getElementById("statistics");X?.addEventListener("mouseenter",function(){DomUtil.show(ka)});X?.addEventListener("mouseleave",function(){DomUtil.hide(ka)});X=document.getElementById("trackingInfos");X?.addEventListener("mouseenter",function(){DomUtil.show(D)});X?.addEventListener("mouseleave",function(){DomUtil.hide(D)});X=hasDataAccessSubscription?"":" disabled";P=hasDataAccessSubscription?"":' <i class="fa fa-lock fa-fw fa-18"></i>'; 2295Y=hasDataAccessSubscription?"":`<p class="mdc-typography--body2"><i class="fa fa-lock fa-fw fa-18"></i> 
2295${LangUtil.fill(la._744,{promoPriceProMonth:SettingsSubscription.PROMO_PRICE_PRO_MONTH})}</p>`;replaceHtml("graphControlsContent",`<div> 2296 <p class="mdc-typography--subtitle1 m-b-10"> ${la._1408}</p> 2297 <div> 2298 <label> 2299 <input type="checkbox" checked disabled> 2300 <span> ${la._97}</span> 2301 </label> 2302 <p class="mdc-typography--caption">${la._1409}</p> 2303 </div> 2304 ${enableCouponGraph?`<div> 2305 <label> 2306 <input type="checkbox" id="graphControlCoupon"${storage.showCouponGraph==="1"&&hasDataAccessSubscription?" checked":""}${X}> 2307 <span> ${la._1410}${P}</span> 2308 </label> 2309 <p class="mdc-typography--caption">${la._1411}</p> 2310 </div>`:""} 2311 <div> 2312 <label> 2313 <input type="checkbox" id="graphControlSubRanks"${storage.showSalesRankGraph==="1"&&hasDataAccessSubscription?" checked":""}${X}> 2314 <span> ${la._1412}${P}</span> 2315 </label> 2316 <p class="mdc-typography--caption">${la._1413}</p> 2317 </div> 2318 <div> 2319 <label> 2320 <input type="checkbox" id="graphControlOfferCount"${storage.moreData==="1"&&hasDataAccessSubscription?" checked":""}${X}> 2321 <span> ${la._1414}${P}</span> 2322 </label> 2323 <p class="mdc-typography--caption">${la._1415}</p> 2324 </div> 2325 <p class="mdc-typography--body2"><i class="fa fa-lightbulb-o fa-fw fa-18"></i> ${la._1416}</p> 2326 ${Y} 2327 </div>`);
2327var W=document.querySelector("#graphControlsContent"),N=document.querySelector("#graphControls");X=document.querySelector("#graphControlCoupon");P=document.querySelector("#graphControlSubRanks");Y=document.querySelector("#graphControlOfferCount");var ha=document.querySelectorAll(".toggleSalesRankGraph");N&&N.addEventListener("click",()=>{W.classList.toggle("hidden")});window.addEventListener("click",V=>{N&&!N.contains(V.target)&&W&&!W.contains(V.target)&&W.classList.add("hidden")});X&&X.addEventListener("change", 2328function(){this.checked&&hasDataAccessSubscription?(storage.showCouponGraph="1",showCouponGraph(a,b,c)):(storage.showCouponGraph="0",hideCouponGraph(b,a.asin));settings.send()});P&&P.addEventListener("change",function(){this.checked&&hasDataAccessSubscription?(storage.showSalesRankGraph="1",showSalesRankGraph(a,b,c),ha.forEach(V=>V.style.color="#8FBC8F")):(storage.showSalesRankGraph="0",hideSalesRankGraph(b,a.asin),ha.forEach(V=>V.style.color="#666"));settings.send()});Y&&Y.addEventListener("change", 2329function(){this.checked&&hasDataAccessSubscription?(storage.moreData="1",showMoreDataGraph(a,b,c)):(storage.moreData="0",hideMoreDataGraph(b,a.asin));settings.send()})}}} 2330function getTrackingInfos(a){if(!a?.tracking)return null;var b=c=>{var d={date:0,val:-1},f=a.tracking,k=f?.thresholdValues;
2330if(k)for(let q of Object.values(k)){var n=q.thresholdValueCSV;q.csvType===c&&q.domain===a.domainId&&n?.length>=2&&(k=n[n.length-2],n=n[n.length-1],f.createDate>0&&(d.val=Money.raw(n,{sourceDomainId:f.mainDomainId,targetDomainId:a.domainId,keepUnit:!0,noDigits:!0}),d.date=k,k=(offsetMinutes+k)*6E4,a.CDATE=a.CDATE===void 0?k:Math.min(a.CDATE,k)))}return{current:d.val<1?-1:d}};return{[CsvType.BUY_BOX_SHIPPING.index]:b(CsvType.BUY_BOX_SHIPPING.index), 2331[CsvType.AMAZON.index]:b(CsvType.AMAZON.index),[CsvType.NEW.index]:b(CsvType.NEW.index),[CsvType.NEW_FBA.index]:b(CsvType.NEW_FBA.index),[CsvType.NEW_FBM_SHIPPING.index]:b(CsvType.NEW_FBM_SHIPPING.index),[CsvType.USED.index]:b(CsvType.USED.index),[CsvType.WAREHOUSE.index]:b(CsvType.WAREHOUSE.index),[CsvType.USED_NEW_SHIPPING.index]:b(CsvType.USED_NEW_SHIPPING.index),[CsvType.USED_VERY_GOOD_SHIPPING.index]:b(CsvType.USED_VERY_GOOD_SHIPPING.index),[CsvType.USED_GOOD_SHIPPING.index]:b(CsvType.USED_GOOD_SHIPPING.index), 2332[CsvType.USED_ACCEPTABLE_SHIPPING.index]:b(CsvType.USED_ACCEPTABLE_SHIPPING.index)}} 2333function statsCSV(a,b,c){if(a!=null){var d=CsvType.getObject(b);if(d!=null){var f=d.isWithShipping,k=f?3:2,n=f?2:1,q=keepaTime.now(),r=q-a[0],u=q-129600,B=q-259200,t=q-525600,G={date:0,val:0},da={date:0,val:getValueAtTime(a,u,d)},Y={date:0,val:getValueAtTime(a,B,d)},X={date:0,val:getValueAtTime(a,t,d)},P={date:0,val:99999999999},ka={date:0,val:da.val},D={date:0,val:Y.val},W={date:0,val:X.val},N={date:0,val:0},ha=90,V=-1,O=0;r<129600&&(ha=Math.floor(r/1440));for(var wa=ha*24*60,La=-1,Ba=1,fa=a.length;Ba< 2334fa;Ba+=k){let Aa=a[Ba];if(Aa!=""&&Aa!=-1){Aa=Number(Aa);if(f){var ia=Number(a[Ba-2]);Aa+=ia<0?0:ia}ia=Number(a[Ba-1]);G.val<=Aa&&(G.val=Aa,G.date=ia);da.val<=Aa&&da.val>-1&&ia>u&&(da.val=Aa,da.date=ia);Y.val<=Aa&&Y.val>-1&&ia>B&&(Y.val=Aa,Y.date=ia);X.val<=Aa&&X.val>-1&&ia>t&&(X.val=Aa,X.date=ia);P.val>=Aa&&(P.val=Aa,P.date=ia);ka.val>=Aa&&ia>u&&(ka.val=Aa,ka.date=ia);D.val>=Aa&&ia>B&&(D.val=Aa,D.date=ia);W.val>=Aa&&ia>t&&(W.val=Aa,W.date=ia);if(!(r<1440))if(q-Number(a[Ba-1])<wa){if(Ba!=1){Aa<La&& 2335(b==CsvType.SALES.index?(ia=La/Aa,(La<1E4||La<5E4&&ia>1.03||ia>1.05)&&O++):O++);La=Aa;
2335if(V<0)if(Number(a[Ba-k])<0)V=0;else{V=(wa-(q-Number(a[Ba-1])))/1440;ia=Number(a[Ba-k]);if(f){let Ia=Number(a[Ba-2]);ia+=Ia<0?0:Ia}V*=Number(ia)}if(Ba+n==fa){if(a[Ba-k]<0)continue;V+=(q-a[fa-k])/24*Aa}else V+=Aa*(Number(a[Ba+n])-Number(a[Ba-1])/1440)}}else La=Aa,Ba==fa-n&&a[Ba]!=-1&&(V=Number(a[Ba]))}}O>0&&(O=Math.round(O/ha*3000.5)/100,O=O<5?O.toFixed(1):O.toFixed(0));b=Number(a[a.length-n]);f&&b>-1&&(f=Number(a[a.length- 23361]),b+=f<0?0:f);N.val=b;N.date=a[a.length-k];k=getWeightedMean(a,keepaTime.now(),180,d,c);f=getWeightedMean(a,keepaTime.now(),30,d,c);a=getWeightedMean(a,keepaTime.now(),90,d,c);return{avg:a<0?-1:{days:90,val:a},avg30:f<0?-1:{days:30,val:f},avg180:k<0?-1:{days:180,val:k},avgDrops:O,current:N.val<0?N.val==-2?-2:-1:N,highest:G.val<0?-1:G,highest90:da.val<0?-1:da,highest180:Y.val<0?-1:Y,highest365:X.val<0?-1:X,hoursSinceFirstRecord:r/60,lowest:P.val==99999999999||P.val<0?-1:P,lowest90:ka.val==99999999999|| 2337ka.val<0?-1:ka,lowest180:D.val==99999999999||D.val<0?-1:D,lowest365:W.val==99999999999||W.val<0?-1:W,pctToAvg:a<0?-1:a}}}}function getStatistics(a){var b=[ProductType.DOWNLOADABLE,ProductType.EBOOK].includes(a.productType),c=a.productType==ProductType.INACCESSIBLE,d={};for(let f in a.csv)d[f]=statsCSV(a.csv[f],f,a.domainId),(b||c)&&d[f]&&f!=3&&(d[f].current=-1);d.amazon=d[CsvType.AMAZON.index];d.mnew=d[CsvType.NEW.index];d.mused=d[CsvType.USED.index];d.salesrank=d[CsvType.SALES.index];return d} 2338function addThumbEvents(a){var b=d=>{document.querySelectorAll("#mainImageDiv img").forEach(q=>DomUtil.hide(q));DomUtil.show(document.getElementById("i"+d.target.id));var f=document.getElementById("mainImageDiv"),k=document.getElementById("productTableDescription"),n=document.getElementById("productTableImageBoxMain");DomUtil.height(document.getElementById("productOverlay"))>0&&DomUtil.setStyles(f,{position:"fixed"});DomUtil.setHeight(f,float2int(window.innerHeight)-150);DomUtil.setWidth(n,float2int(DomUtil.width(k))+ 233948);DomUtil.setHeight(n,float2int(DomUtil.height(k))+15);DomUtil.show(n);d.preventDefault();d.stopPropagation()},c=d=>{DomUtil.hide(document.getElementById("i"+d.target.id));DomUtil.hide(document.getElementById("productTableImageBoxMain"));d.preventDefault();d.stopPropagation()};"ontouchstart"in document.documentElement?document.querySelectorAll(".productThumb").forEach(d=>{d.addEventListener("touchstart",b);d.addEventListener("touchend",c)}):(typeof a.images!="undefined"&&document.querySelectorAll(".productThumb").forEach(d=> 2340d.addEventListener("click",()=>{var f=a.images.map(q=>imageServer+(q.l||q.m)),k=(a.aPlus||[]).flatMap(q=>q.module||[]).flatMap(q=>q.image||[]),n=a.csv[CsvType.COUNT_REVIEWS.index];openImageGallery({title:a.title,domainId:a.domainId,asin:(n?.[n.length-1]>-1?n[n.length-1]:0)>0?a.asin:null,images:[...f,...k]})})),document.querySelectorAll(".productThumb").forEach(d=>{d.addEventListener("mouseenter",b);d.addEventListener("mouseleave",c)}))} 2341function shareChart(){if(!shareChartOverlayActive){shareChartOverlayActive=!0;document.getElementById("tabGraph")?.click();var a='<div id="overlayShadowTop2" class="hidden"></div><div id="shareChartOverlay" class="hidden"><div class="card -shadow-md" style="text-align:justify; color: #444; width: 500px !important;"> <div id="shareChartOverlay-close"><i class="fa fa-times-circle fa-2x"></i></div><div><i class="fa fa-share fa-lg fa-2x"></i><div style="font-size: 18px; margin: 0 0 20px;display: inline-block; color: #111"> '+ 2342la._313+'</div></div><img style="height:200px;margin-bottom: 10px;" src="'+graphShareURL+'"</img><hr style="border-color:#38F !important">'+la._297+'<br><input class="selectable" id="shareChartInput" type="text" rel="site" autocomplete="off" class="site" role="textbox" readonly="readonly" style="display: inline-block; "></div></div>';document.getElementById("shareChart").insertAdjacentHTML("beforebegin",a);a=document.getElementById("shareChartInput");a.value=graphShareURL;a.addEventListener("click", 2343function(){this.select()});var b=document.getElementById("shareChartOverlay");window.keepaAnim.shrinkIn(b,150);
2343var c=document.getElementById("overlayShadowTop2");DomUtil.show(c);a=function(){shareChartOverlayActive=!1;DomUtil.hide(c);window.keepaAnim.shrinkOut(b,150,function(){b.remove()});addon()};c.addEventListener("click",a);document.getElementById("shareChartOverlay-close")?.addEventListener("click",a);try{iframe.getIframeHeight()<80+DomUtil.height(b)&&addon("resize",80+float2int(DomUtil.height(b)))}catch(d){}}} 2344function comparePricesLine(a,b,c){function d(W){n=f[W];var N='<img src="'+flags[W]+'">';n!=null&&n.hasReviews&&(X+='<a target="_blank" title="'+la._546.replace("#amazonUrl#","Amazon."+getTldByDomain(W))+'" href="http://www.amazon.'+getTldByDomain(W)+"/product-reviews/"+a+'">'+N+"</a>",P=!0);if(!(n==null||n.AMAZON_LAST<0&&n.MARKET_NEW_LAST<0&&n.MARKET_USED_LAST<0&&n.BUY_BOX_LAST<0&&n.BUY_BOX_USED_LAST<0)){var ha=currencyDomainId>0?currencyDomainId:b;r=n.AMAZON_LAST<0?"":Money.format(n.values[0],{sourceDomainId:ha, 2345targetDomainId:ha,skipSymbol:!0});u=n.MARKET_NEW_LAST<0?"":Money.format(n.values[1],{sourceDomainId:ha,targetDomainId:ha,skipSymbol:!0});B=n.MARKET_USED_LAST<0?"":Money.format(n.values[2],{sourceDomainId:ha,targetDomainId:ha,skipSymbol:!0});t=n.BUY_BOX_LAST<0?"":Money.format(n.values[3],{sourceDomainId:ha,targetDomainId:ha,skipSymbol:!0});G=n.BUY_BOX_USED_LAST<0?"":Money.format(n.values[3],{sourceDomainId:ha,targetDomainId:ha,skipSymbol:!0});da=!0;var V='data-domain="'+W+'"',O=typeof loadProductIFrame== 2346"function"?"http://www.amazon."+getTldByDomain(W)+"/dp/"+a:getAmazonRedirectByDomain(W,a),wa=` style="${r.length==0?"display:none;":"color:"+CsvType.AMAZON.color+";"+(W==c.lowestAmazonDomain?"box-shadow: 0 3px 4px -3px #000;font-weight: bold;":"")}"`,La=` style="${u.length==0?"display:none;":"color:"+CsvType.NEW.color+";"+(W==c.lowestNewDomain?"box-shadow: 0 3px 4px -3px #000;font-weight: bold;":"")}"`,Ba=` style="${B.length==0?"display:none;":"color:"+CsvType.USED.color+";"+(W==c.lowestUsedDomain? 2347"box-shadow: 0 3px 4px -3px #000;font-weight: bold;":"")}"`,fa=` style="${t.length==0?"display:none;":"color:"+CsvType.BUY_BOX_SHIPPING.color+";"+(W==c.lowestBBDomain?"box-shadow: 0 3px 4px -3px #000;font-weight: bold;":"")}"`;W=` style="${G.length==0?"display:none;":"color:"+CsvType.BUY_BOX_USED_SHIPPING.color+";"+(W==c.lowestBBUsedDomain?"box-shadow: 0 3px 4px -3px #000;font-weight: bold;":"")}"`;var ia=n.csv[CsvType.LIGHTNING_DEAL.index],Aa=getValueAtTime(ia,keepaTime.now(),CsvType.LIGHTNING_DEAL); 2348ha=Money.format(Aa,{sourceDomainId:ha,targetDomainId:ha,skipSymbol:!0});ha=getLastTime(ia,CsvType.LIGHTNING_DEAL)<keepaTime.now()?'<span style="display:none;"></span>':`<span style="color:red;" title="${CsvType.getName(CsvType.LIGHTNING_DEAL.index)}"> <i class="fa fa-bolt" ></i> 2349 ${Aa<0?'<i class="fa fa-clock-o" ></i>':`${ha}`} <i class="fa fa-bolt" ></i> 2350 </span>`;Y+=`<span ${V}><a target="_blank" href="${O}">${N}${ha}<span${fa} title="${CsvType.getName(CsvType.BUY_BOX_SHIPPING.index)}">${t}</span><span${wa} title="${CsvType.getName(CsvType.AMAZON.index)}">${r}</span><span${La} title="${CsvType.getName(CsvType.NEW.index)}">${u}</span>`+(CsvType.BUY_BOX_USED_SHIPPING.isEnabled?`<span${W} title="${CsvType.getName(CsvType.BUY_BOX_USED_SHIPPING.index)}">${G}</span>`:"")+`<span${Ba} title="${CsvType.getName(CsvType.USED.index)}">${B}</span>`+"</a></span>"}} 2351var f={};for(var k=0;k<c.length;k++){var n=c[k];if(n==null)continue;if(n.productType==ProductType.INACCESSIBLE||n.productType==ProductType.INVALID||n.productType==ProductType.VARIATION_PARENT){c[k]=null;continue}n=hydrateCsvFields(n);f[n.domainId]=n;var q=getCsvSeries(n.csv,CsvType.COUNT_REVIEWS.index);n.hasReviews=q.length&&q[q.length-1]>0}calcComparePrices(c,b);var r,u,B,t,G,da=!1,Y="",X=k="",P=!1;q='<span class="casinReview"><span>'+la._533+": </span>";var ka=currencyDomainId>0?getCurrencyByDomain(currencyDomainId): 2352getCurrencyByDomain(b);var D=`<span class="casinLineContinent"><div><span class="casinLineLabel">${la._352} ${ka}</span>`;d(1);d(6);d(11);da?(P&&(X=q+X+"</span>",D+=X),Y=D+"</div><div>"+Y+"</div></span>"):Y="";X="";k+=Y;Y="";P=da=!1;D=`<span class="casinLineContinent"><div><span class="casinLineLabel">${la._353} ${ka}</span>`;d(2);d(3);d(4);d(8);d(9);d(14);da?(P&&(X=q+X+"</span>",D+=X),Y=D+"</div><div>"+Y+"</div></span>"):Y="";X="";k+=Y;Y="";P=da=!1;D=`<span class="casinLineContinent"><div><span class="casinLineLabel">${la._354} ${ka}</span>`;
2353d(5);d(10);da||P?(P&&(X=q+X+"</span>",D+=X),Y=D+"</div><div>"+Y+"</div></span>"):Y="";X="";k+=Y;Y="";P=da=!1;D=`<span class="casinLineContinent"><div><span class="casinLineLabel">${la._663} ${ka}</span>`;d(13);da?(P&&(X=q+X+"</span>",D+=X),Y=D+"</div><div>"+Y+"</div></span>"):Y="";X="";k+=Y;Y="";P=da=!1;D="";document.getElementById("compareChart")?.insertAdjacentHTML("afterend",k);ColorTip.attach(".casinReview > a",{color:"yellow"});addon();setTimeout(addon,450)} 2354function comparePricesOverlay(a,b){if(!comparePricesOverlayActive){comparePricesOverlayActive=!0;document.getElementById("grid-container-casin")&&document.getElementById("overlayShadowTop3")?.click();var c=getCasinLocalesFromStorage(),d=`<span id="casinLocales" style="opacity:${c[0]===!0?"0.3":"1"}">`,f=LocaleType.getByRegionOrder(!0);for(let n in f){let q=f[n];(q+"").length>2?(n>0&&(d+="</span> "),d+=`<span><span>${q}</span>`):d+=`<input type="checkbox" data-domain="${q}" id="casinLocaleRadio${q}"${c[q]=== 2355!0?' checked="checked"':""}>${getTldByDomain(q)} `}c=`<div id="overlayShadowTop3" class="hidden"></div> 2356 <div id="comparePricesOverlay" class="customCheckbox" style="display:none;width:90%;"> 2357 <div class="card -shadow-md" style="width:98%;position:relative;"> 2358 <div id="comparePricesOverlay-close"><i class="fa fa-times-circle fa-2x"></i></div> 2359 <div><i class="fa fa-globe fa-lg fa-2x"></i> 2360 <div style="font-size:18px; margin:0 10px 20px;display:inline-block;color:#111;">${la._317}</div> 2361 </div> 2362 <div class="flex flexWrap"> 2363 <div id="grid-container-casin" class="on-white"></div> 2364 <div style="flex-grow:2;margin-left:20px;min-width:400px;"><div class="graph" id="compareGraphHolder"></div></div> 2365 </div> 2366 <hr style="border-color:#38F !important;"> 2367 <div style="min-width:600px;">${la._318}</div> 2368 <br>${`<div class="casin-settings">${la._657}  2369 <span><input type="checkbox" id="casinLimitedRadio"${c[0]===!0?' checked="checked"':""}>${la._656}</span> 2370 ${d+"</span></span>"} 2371 </div>`} 2372 <br> 2373 <div style="text-align: center;"><input type="checkbox" id="previewCasinRadio"'${storage.previewCasin?' checked="checked"':""}"> ${la._511}</div> 2374 </div> 2375 </div> 2376 `;document.getElementById("tabContentIFrame")?.insertAdjacentHTML("beforeend",c);document.getElementById("tabContent")?.insertAdjacentHTML("beforeend",c);document.getElementById("comparePricesInput")?.addEventListener("click",function(){this.select()});document.getElementById("previewCasinRadio")?.addEventListener("click",function(){this.checked?storage.previewCasin=1:storage.removeItem("previewCasin");settings.send()});document.getElementById("casinLimitedRadio")?.addEventListener("click",function(){var n= 2377getCasinLocalesFromStorage(),q=document.getElementById("casinLocales");this.checked?(n[0]=!0,DomUtil.setStyles(q,{opacity:"0.3"})):(n[0]=!1,DomUtil.setStyles(q,{opacity:"1"}),window.keepaAnim.highlight(q));storage.casinLocales=JSON.stringify(n);settings.send()});for(c=1;c<numberOfDomains;c++)c!=7&&document.getElementById("casinLocaleRadio"+c)?.addEventListener("click",function(){var n=DomUtil.data(this,"domain"),q=getCasinLocalesFromStorage();q[Number(n)]=this.checked?!0:!1;storage.casinLocales=JSON.stringify(q); 2378settings.send()});var k=document.getElementById("comparePricesOverlay");window.keepaAnim.shrinkIn(k,150,function(){var n=document.getElementById("overlayShadowTop3");DomUtil.show(n);var q=function(){comparePricesOverlayActive=!1;DomUtil.hide(n);window.keepaAnim.shrinkOut(k,150,function(){k.remove()});addon();graph.remove(b,a,3)};n?.addEventListener("click",q);document.getElementById("comparePricesOverlay-close")?.addEventListener("click",q);var r=function(u){var B=[];for(var t=0;t<u.length;t++){var G= 2379u[t];if(G!=null){G.converted||(G.converted=[]);for(var da in CsvType)if(typeof CsvType[da]=="object"&&CsvType[da].isEnabled){let D=CsvType[da].index;G.csv==null||G.csv[D]==null||G.csv[D].length==0||G.csv[D].length==2&&G.csv[D][1]<0&&G.csv[D][1]!=-2||(B[D]=!0,!G.converted[da]&&CsvType[da].currency&&exchangeCurrencyCSV(G.csv[D],CsvType[da],G.domainId,b),G.converted[da]=!0)}}}t=null;G="";da=CsvType.getObjectsSorted();for(let D of da)typeof D==="object"&&B[D.index]&&!graphIsRestricted(b,D.index)&&(t== 2380null&&(t=D),G+='<span rel="'+CsvType.getObjectName(D.index)+'">'+CsvType.getName(D.index)+"</span> ");if(t!=null){B='<div class="flex flexWrap" id="casTypes">'+G+"</div>";var Y=document.getElementById("compareGraphHolder");if(Y){Y.insertAdjacentHTML("beforebegin",B);var X=document.getElementById("casTypes");if(X){X.firstElementChild?.classList.add("active");X.addEventListener("click",function(D){if(D.target.nodeName=="SPAN"){D=D.target;var W=CsvType[D.getAttribute("rel")];[...(D.parentElement?.children??
2381[])].forEach(N=>N.classList.remove("active"));D.classList.add("active");ka(u,W)}});var P=null,ka=function(D,W){try{var N=null;P!=null&&(N=P.parameter);graph.remove(b,a,3);P=graph.prepare(b);N!=null&&(P.parameter=N,P.parameter.forceInterval=!0);P.asin=a;P.graphIndex=3;P.updateCSV=[];P.series=graph.getLocaleSeriesTemplates(CsvType.getObjectName(W.index));N=[];let ha=[];for(let V=0;V<D.length;V++){let O=D[V];if(O==null)continue;if(typeof P.series[LocaleType.getName(O.domainId)]==="undefined")continue; 2382let wa=getStatistics(O);typeof wa[W.index]!="undefined"&&O.productType!=ProductType.INACCESSIBLE&&O.productType!=ProductType.INVALID&&O.productType!=ProductType.VARIATION_PARENT&&(ha[O.domainId]=wa[W.index],N[O.domainId]=O.csv[W.index],P.updateCSV[O.domainId]=O.csv[CsvType.EXTRA_INFO_UPDATES.index],P.series[LocaleType.getName(O.domainId)].isDisabled=!1,graphIsRestricted(O.domainId,W.index)&&(P.series[LocaleType.getName(O.domainId)].series.label+=' <i class="fa fa-lock"></i> '))}P.stats= 2383ha;P.csv=N;P.csvType=W.index;P.type="locales";P.objectType=LocaleType;P.$container=Y;DomUtil.show(P.$container);P.preResizeHook=function(){DomUtil.hide(X)};P.resizeHook=function(){DomUtil.setStyles(X,{width:P.parameter.width});DomUtil.show(X,"flex")};P.parameter.offsetLeft=-30;P.preResizeHook();P.parameter.width=float2int(DomUtil.width(Y.parentElement))-170+"px";P.resizeHook();P.parameter.height="250px";graph.create(P)}catch(ha){console.log(ha)}};ka(u,t)}}}};callCasin(u=>{var B=!1;for(let G=0;G<u.length;G++){var t= 2384u[G];t!=null&&(t.productType==ProductType.INACCESSIBLE||t.productType==ProductType.INVALID||t.productType==ProductType.VARIATION_PARENT?u[G]=null:(t=hydrateCsvFields(t),B=!0))}B&&(calcComparePrices(u,b),setTimeout(function(){r(u);network.withGrid(()=>{GridCasin.init(u,b,"grid-container-casin").always(()=>{addon("resize",float2int(Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.documentElement.clientHeight)))})})}, 23850))},a,b,!1)})}} 2386function callCasin(a,b,c,d){var f=document.getElementById("loadingIconCasin");d&&DomUtil.show(f);var k=getCasinLocalesFromStorage(),n={};c=continents[domainIdToContinent[c]];for(let q=1;q<numberOfDomains;q++)if(q!=7){if(k[0]===!0){let r=!1;for(let u=0;u<c.length&&!r;u++)c[u]==q&&(r=!0);if(!r)continue}else if(k&&!k[q])continue;n[q]=[b]}Object.keys(n).length===0?d&&DomUtil.hide(f):networkHelper.loadASINs({path:"product",type:"casin",offerPages:0,history:!0,maxAge:60,refreshProduct:!1},n,"").done(function(q){d&& 2387DomUtil.hide(f);a&&a(q);typeof TrackingComponent==="object"&&typeof TrackingComponent.setCasinData==="function"&&TrackingComponent.setCasinData(q)}).fail(function(){d&&DomUtil.hide(f)})} 2388function calcComparePrices(a,b,c){a.lowestAmazon=99999999999;a.lowestNew=99999999999;a.lowestUsed=99999999999;a.lowestBB=99999999999;a.lowestBBUsed=99999999999;for(let f=0;f<a.length;++f){var d=a[f];if(d!=null){d.values=[d.AMAZON_LAST,d.MARKET_NEW_LAST,d.MARKET_USED_LAST,d.BUY_BOX_LAST,d.BUY_BOX_USED_LAST];for(let k=0;k<5;k++)d.values[k]<0||(d.values[k]=Money.raw(d.values[k],{sourceDomainId:d.domainId,targetDomainId:c>0?c:currencyDomainId>0?currencyDomainId:b,keepUnit:!0}));d=a[f];d.values[0]!=-1&& 2389d.values[0]<a.lowestAmazon&&(a.lowestAmazon=d.values[0],a.lowestAmazonDomain=d.domainId);d.values[1]!=-1&&d.values[1]<a.lowestNew&&(a.lowestNew=d.values[1],a.lowestNewDomain=d.domainId);d.values[2]!=-1&&d.values[2]<a.lowestUsed&&(a.lowestUsed=d.values[2],a.lowestUsedDomain=d.domainId);d.values[3]!=-1&&d.values[3]<a.lowestBB&&(a.lowestBB=d.values[3],a.lowestBBDomain=d.domainId);d.values[4]!=-1&&d.values[4]<a.lowestBBUsed&&(a.lowestBBUsed=d.values[4],a.lowestBBUsedDomain=d.domainId)}}};const StripeAPI=(()=>{var a=[],b=null,c=()=>{if(b)return b;b=Deferred();if(typeof Stripe!=="undefined")return b.resolve();var f=document.createElement("script");f.src="https://js.stripe.com/v3/";f.onload=()=>b.resolve();f.onerror=()=>{var k=b;b=null;k.reject(Error("Failed to load Stripe.js: "+f.src))};document.head.appendChild(f);return b},d=(f,k,n)=>new Promise((q,r)=>{f.createConfirmationToken({elements:k,params:{payment_method_data:{billing_details:{address:{city:n.billingCity,country:n.billingCountryId, 2390line1:n.billingStreet,line2:null,postal_code:n.billingZipCode,state:n.billingState||null},email:storage.email,name:n.billingContact}}}}).then(q,u=>{q({error:{message:u?.message||"Your payment details could not be processed. Please reload the page and try again."}})})});return{createPaymentMethod:(f,k,n)=>d(f,k,n),getElementsOptions:()=>({fonts:[{family:"Roboto",src:"url(https://keepa.com/cdn/fonts/Roboto/Regular/Roboto-Regular.woff2?v=1.1.0)",weight:"400"}],mode:"subscription",amount:0,currency:"eur", 2391paymentMethodCreation:"manual",appearance:{theme:"stripe",variables:{colorPrimary:"#0067C5",colorBackgroun
2391d:"#ffffff",colorText:"#444444",colorDanger:"#b00020",colorSuccess:"#00b753",colorWarning:"#FF4500",fontFamily:"Roboto, sans-serif",fontSizeBase:"16px",borderRadius:"2px",spacingUnit:"4px",gridColumnSpacing:"16px",gridRowSpacing:"20px"},rules:{".Input":{border:"none",borderBottom:"1px solid rgba(0, 0, 0, 0.42)",color:"#444444",fontSize:"0.82rem",letterSpacing:"0.00937em",lineHeight:"1.75rem", 2392padding:"0px 0 1px"},".Input:focus":{border:"none",borderBottom:"1px solid rgba(0, 0, 0, 0.87)",boxShadow:"none"},".Input--invalid":{border:"none",borderBottom:"1px solid #b00020",boxShadow:"none"},".Input::placeholder":{color:"rgba(0, 0, 0, 0.6)",fontSize:".813rem"},".Label":{color:"rgba(0, 0, 0, 0.6)",fontSize:".813rem",letterSpacing:"0.00937em",lineHeight:"1.15rem"},".Error":{fontSize:"0.75rem",letterSpacing:"0.03333em",lineHeight:"1.25rem"}}}}),getPaymentElementOptions:()=>({fields:{billingDetails:{address:"never"}}, 2393terms:{card:"never",applePay:"never",googlePay:"never"}}),loadStripe:f=>{var k=Deferred();if(Object.keys(a).length===0)c().done(()=>{n=Stripe(f,{locale:"en"});a[f]=n;k.resolve(n)}).fail(q=>{k.reject(q)});else{a[f]==null&&(a[f]=Stripe(f,{locale:"en"}));var n=a[f];k.resolve(n)}return k}}})(),SubscriptionUtil=(()=>{var a=async N=>{N=N.filter(V=>{var O=V.totalBill-V.creditApplied;return O?O>0:V.creditApplied});if(N.length){var ha=document.getElementById("downloadAllInvoices");ha&&(ha.innerHTML='<i class="fa fa-spinner fa-spin"></i> Downloading...'); 2394try{let V=(await Promise.all(N.map(async Ga=>{var Ya=await fetch(`${ajaxURL}api/service/?user=${storage.token}&type=getInvoicePDF&billId=${Ga.billId}`).catch(()=>0);return Ya?.ok?{n:(new TextEncoder).encode(`invoice_${(new Date(Ga.createDate)).formatDate("Y-m-d")}_${Ga.billId}.pdf`),d:new Uint8Array(await Ya.arrayBuffer())}:null}))).filter(Boolean);if(!V.length)return ha&&(ha.innerHTML="No invoices found");let O=(new Uint32Array(256)).map((Ga,Ya)=>{for(Ga=0;Ga<8;Ga++)Ya=Ya&1?3988292384^Ya>>>1:Ya>>> 23951;return Ya}),wa=Ga=>~Ga.reduce((Ya,Pa)=>Ya>>>8^O[(Ya^Pa)&255],-1),La=0,Ba=[],fa=[];V.forEach(({n:Ga,d:Ya})=>{var Pa=wa(Ya),ta=Ya.length,ea=Ga.length,Fa=new Uint8Array(30+ea+ta),bb=new DataView(Fa.buffer);bb.setUint32(0,67324752,!0);bb.setUint16(4,20,!0);bb.setUint32(14,Pa,!0);bb.setUint32(18,ta,!0);
2395bb.setUint32(22,ta,!0);bb.setUint16(26,ea,!0);Fa.set(Ga,30);Fa.set(Ya,30+ea);Ba.push(Fa);Ya=new Uint8Array(46+ea);bb=new DataView(Ya.buffer);bb.setUint32(0,33639248,!0);bb.setUint16(4,20,!0);bb.setUint16(6, 239620,!0);bb.setUint32(16,Pa,!0);bb.setUint32(20,ta,!0);bb.setUint32(24,ta,!0);bb.setUint16(28,ea,!0);bb.setUint32(42,La,!0);Ya.set(Ga,46);fa.push(Ya);La+=Fa.length});let ia=new Uint8Array(22),Aa=new DataView(ia.buffer);Aa.setUint32(0,101010256,!0);Aa.setUint16(8,V.length,!0);Aa.setUint16(10,V.length,!0);Aa.setUint32(12,fa.reduce((Ga,Ya)=>Ga+Ya.length,0),!0);Aa.setUint32(16,La,!0);let Ia=Object.assign(document.createElement("a"),{href:URL.createObjectURL(new Blob([...Ba,...fa,ia],{type:"application/zip"})), 2397download:"keepa_invoices.zip"});Ia.click();URL.revokeObjectURL(Ia.href)}catch(V){console.error("Invoice download failed:",V)}ha&&(ha.innerHTML='<i class="fa fa-file-archive-o"></i> Download All')}},b=null,c=N=>String(N==null?"":N).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),d={GR:"EL"},f={AT:{re:/^ATU\d{8}$/,example:"ATU12345678"},BE:{re:/^BE[01]\d{9}$/,example:"BE0123456789"},BG:{re:/^BG\d{9,10}$/,example:"BG123456789"},CY:{re:/^CY\d{8}[A-Z]$/,example:"CY12345678X"}, 2398CZ:{re:/^CZ\d{8,10}$/,example:"CZ12345678"},DE:{re:/^DE\d{9}$/,example:"DE123456789"},DK:{re:/^DK\d{8}$/,example:"DK12345678"},EE:{re:/^EE\d{9}$/,example:"EE123456789"},EL:{re:/^EL\d{9}$/,example:"EL123456789"},ES:{re:/^ES[0-9A-Z]\d{7}[0-9A-Z]$/,example:"ESB12345678"},FI:{re:/^FI\d{8}$/,example:"FI12345678"},FR:{re:/^FR[0-9A-Z]{2}\d{9}$/,example:"FR12345678901"},GB:{re:/^GB(\d{9}(\d{3})?|(GD|HA)\d{3})$/,example:"GB123456789"},HR:{re:/^HR\d{11}$/,example:"HR12345678901"},HU:{re:/^HU\d{8}$/,example:"HU12345678"}, 2399IE:{re:/^IE(\d{7}[A-Z]{1,2}|\d[A-Z+*]\d{5}[A-Z])$/,example:"IE1234567X"},IT:{re:/^IT\d{11}$/,example:"IT12345678901"},LT:{re:/^LT(\d{9}|\d{12})$/,example:"LT123456789"},LU:{re:/^LU\d{8}$/,example:"LU12345678"},LV:{re:/^LV\d{11}$/,example:"LV12345678901"},MT:{re:/^MT\d{8}$/,example:"MT12345678"},NL:{re:/^NL\d{9}B\d{2}$/,example:"NL123456789B01"},PL:{re:/^PL\d{10}$/,example:"PL1234567890"},PT:{re:/^PT\d{9}$/,example:"PT123456789"},RO:{re:/^RO\d{2,10}$/,example:"RO12345678"},SE:{re:/^SE\d{12}$/,example:"SE123456789001"}, 2400SI:{re:/^SI\d{8}$/,example:"SI12345678"},SK:{re:/^SK\d{10}$/,example:"SK1234567890"},XI:{re:/^XI(\d{9}(\d{3})?|[A-Z]{2}\d{3})$/,example:"XI123456789"}},k=N=>{var ha=N.slice(0,2);N=N.slice(2);if(ha==="DE"&&/^\d{9}$/.test(N)){var V=10;for(ha=0;ha<8;ha++)V=(Number(N[ha])+V)%10,V===0&&(V=10),V=2*V%11;return(11-V)%10===Number(N[8])}if(ha==="IT"&&/^\d{11}$/.test(N)){ha=0;for(V=0;V<10;V++){let O=Number(N[V]);V%2===1&&(O*=2,O>9&&(O-=9));ha+=O}return(10-ha%10)%10===Number(N[10])}return ha==="FR"&&/^\d{11}$/.test(N)? 2401(ha=N.slice(0,2),N=N.slice(2),N=String((12+Number(N)%97*3)%97).padStart(2,"0"),ha===N):ha==="ES"&&/^\d{8}[A-Z]$/.test(N)?"TRWAGMYFPDXBNJZSQVHLCKE"[Number(N.slice(0,8))%23]===N[8]:null},n=(N,ha,V)=>{N=String(N||"").replace(/[-,;_:#.\s\u00a0]/g,"").toUpperCase();if(!N)return null;ha=(ha=ha?String(ha).toUpperCase():null)?d[ha]||ha:null;V=V?" in "+c(V):"";if(N.length>20)return{level:"warn",html:"This is longer than any EU VAT ID. Please double-check.",fix:null};if(/^\d/.test(N))return ha==="FR"&&(/^\d{9}$/.test(N)|| 2402/^\d{14}$/.test(N))?(ha=N.slice(0,9),ha="FR"+String((12+Number(ha)%97*3)%97).padStart(2,"0")+ha,{level:"warn",html:"This looks like a "+(N.length===9?"SIREN":"SIRET")+". Your intra-EU VAT ID is <strong>"+ha+"</strong>.",fix:{value:ha,label:"Use "+ha,auto:!0}}):ha==="DE"&&/^\d{10,13}$/.test(N)?{level:"warn",html:"This looks like a German Steuernummer. For VAT purposes you need your <strong>USt-IdNr.</strong> (DE + 9 digits) - if you do not have one yet, you can request it free of charge at bzst.de.", 2403fix:null}:ha&&f[ha]?(N=ha+N,f[ha].re.test(N)?{level:"warn",html:"VAT IDs start with a two-letter country code"+V+": <strong>"+ha+"</strong>.",fix:{value:N,label:"Use "+N,auto:!0}}:{level:"warn",html:"VAT IDs start with a two-letter country code, and this does not match the format"+V+" ("+f[ha].example+"). Please double-check.",fix:null}):{level:"warn",html:"VAT IDs start with a two-letter country code (for example DE123456789).",fix:null};if(ha==="AT"&&/^U\d{8}$/.test(N))return{level:"warn",html:"VAT IDs start with a two-letter country code"+ 2404V+": <strong>AT</strong>.",fix:{value:"AT"+N,label:"Use AT"+N,auto:!0}};var O=N.slice(0,2);if(O==="GR")return N="EL"+N.slice(2),{level:"warn",html:"Greek VAT IDs use the prefix <strong>EL</strong>, not GR.",fix:f.EL.re.test(N)?{value:N,label:"Use "+N,auto:!0}:null};if(ha==="IT"&&/^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/.test(N))return{level:"warn",html:"This looks like a Codice Fiscale. For the reverse charge you need your <strong>Partita IVA</strong> (IT + 11 digits).",fix:null};var wa=f[O];if(!wa)return{level:"warn", 2405html:"<strong>"+c(O)+"</strong> is not an EU VAT country code. Please double-check the first two letters.",fix:null};ha=ha&&O!==ha&&f[ha]?"<br>Note: this VAT ID is registered in another country than your billing address"+V+". That is fine if your business is registered there.":"";return wa.re.test(N)?k(N)===!1?{level:"warn",html:"The check digits do not add up for <strong>"+c(N)+"</strong> - this is usually a typo. Please double-check."+ha,fix:null}:{level:"ok",html:"Format looks good. We confirm the registration when you proceed."+ 2406ha+(O==="ES"?"<br>Note: Spanish VAT IDs must also be registered for intra-EU operations (ROI) - we confirm this at checkout.":""),fix:null}:{level:"warn",html:"This does not match the "+c(O)+" VAT ID format ("+wa.example+"). Please double-check."+ha,fix:null}},q={ok:"#00b753",info:"#2196f3",warn:"#e08300",error:"tomato"},r={ok:"fa-check-circle",info:"fa-info-circle",warn:"fa-exclamation-circle",error:"fa-exclamation-triangle"},u=new WeakSet,B=N=>{N?.closest(".mdc-text-field")?.querySelectorAll(".mdc-floating-label").forEach(ha=> 2407ha.classList.add("mdc-floating-label--float-above"))},t=N=>{N=N?N.closest(".mdc-text-field"):null;if(!N)return null;var ha=N.nextElementSibling;ha&&ha.classList.contains("vatAssistHint")||(ha=document.createElement("div"),ha.className="vatAssistHint",ha.setAttribute("style","display:none;font-size:12px;line-height:1.5;margin:2px 0 6px 2px;"),N.after(ha));return ha},G=N=>{N=N?N.closest("form"):null;if(!N)return{iso:null,name:null};
2407var ha=N.querySelector("#frmCountryS option:checked");return ha&&ha.value&& 2408ha.value!=="None"?{iso:DomUtil.data(ha,"code"),name:ha.value}:(N=N.querySelector("#countrySelect option:checked"))&&N.getAttribute("id")?{iso:N.getAttribute("id"),name:N.getAttribute("data-country")}:{iso:null,name:null}},da=N=>{var ha=N?N.getAttribute("aria-controls")||N.id+"-validation-msg":null;return ha?(N=N.closest("form")?.querySelector('[id="'+ha+'"]'))?N:document.getElementById(ha):null},Y=N=>{var ha=da(N);ha&&(N=(N=(N=G(N).iso)?d[String(N).toUpperCase()]||String(N).toUpperCase():null)?f[N]: 2409null,ha.textContent="e.g. "+(N?N.example:"DE123456789"))},X=(N,ha)=>{var V=t(N);if(!V)return null;var O=G(N),wa=n(N.value,O.iso,O.name);O=u.has(N);var La=da(N),Ba=DomUtil.isVisible(N);La&&window.keepaAnim.stop(La);if(!wa||!Ba||ha==="typing"&&!O&&wa.level!=="ok")return DomUtil.hide(V),V.innerHTML="",La&&(Ba?DomUtil.show(La):DomUtil.hide(La)),wa;La&&DomUtil.hide(La);ha='<i class="fa '+r[wa.level]+'"></i> '+wa.html;wa.fix&&(ha+=' <span class="href vatAssistFix" style="white-space:nowrap;">'+c(wa.fix.label)+ 2410"</span>");V.style.color=q[wa.level];V.innerHTML=ha;DomUtil.show(V);wa.fix&&V.querySelectorAll(".vatAssistFix").forEach(fa=>fa.addEventListener("click",()=>{N.value=wa.fix.value;B(N);X(N,"blur");N.dispatchEvent(new Event("change",{bubbles:!0}))}));return wa},P=(N,ha)=>N.target instanceof Element?N.target.closest(ha):null,ka=N=>{if(N=N?N.closest("form"):null)N.dataset.noVatConfirmed="false"};document.addEventListener("input",N=>{if(N=P(N,'[autocomplete="billing vat-id"]'))ka(N),X(N,"typing")});document.addEventListener("focusout", 2411N=>{if(N=P(N,'[autocomplete="billing vat-id"]')){var ha=String(N.value||"").replace(/[-,;_:#.\s\u00a0]/g,"").toUpperCase();ha!==N.value&&(N.value=ha);ha&&u.add(N);(ha=X(N,"blur"))&&ha.fix&&ha.fix.auto&&(N.value=ha.fix.value,B(N),X(N,"blur"))}});document.addEventListener("change",N=>{if(N=P(N,"#frmCountryS, #countrySelect, #individual-radio, #business-radio")){ka(N);var ha=N.closest("form")?.querySelector('[autocomplete="billing vat-id"]');ha&&setTimeout(()=>{Y(ha);X(ha,"typing")},600)}});document.addEventListener("focusin", 2412N=>{(N=P(N,'[autocomplete="billing vat-id"]'))&&Y(N)});var D=(N,ha)=>{var V=(ha=DomUtil.el(ha))?ha.querySelector("form"):null;!V&&ha&&(V=ha.closest("form"));V||=document;ha=(O,wa)=>{wa&&(O=V.querySelector(O))&&(O.value=wa,B(O),O.dispatchEvent(new Event("input",{bubbles:!0})),O.dispatchEvent(new Event("change",{bubbles:!0})))};ha('[autocomplete="billing name"]',N.companyName);ha('[autocomplete="billing street-address"]',N.street);ha('[autocomplete="billing address-level2"]',N.city);ha('[autocomplete="billing postal-code"]', 2413N.zipCode)},W=(N,ha)=>{var V=DomUtil.el(ha);if(V){var O=N.vatSuggestion;N=`<div class="vatIdNotice"><i class="fa fa-info-circle"></i> ${N.msgAdvisory}`;O&&(O.companyName||O.rawAddress)&&(N+="<br><br><strong>Address registered for this VAT ID</strong><br>",O.companyName&&(N+=c(O.companyName)+"<br>"),O.rawAddress&&(N+=c(O.rawAddress).replace(/(?:\r\n|\r|\n)/g,"<br>")+"<br>"),O.street&&O.city&&(N+='<br><span class="href" id="vatUseRegisteredAddress">Use this address instead</span>'));V.innerHTML= 2414N+"</div>";DomUtil.show(V);O&&O.street&&O.city&&V.querySelector("#vatUseRegisteredAddress")?.addEventListener("click",()=>{D(O,V);DomUtil.hide(V)})}};return{acceptedPaymentMethods:"Visa, Mastercard, American Express, Discover, and Diners Club International",TERMS_VERSION:"2026-08-27",termsUrl:()=>CDNUrl+"terms/2026-08-27-terms.txt",withdrawalUrl:()=>CDNUrl+"terms/2026-08-27-withdrawal.txt",statesUS:{AL:"Alabama",AK:"Alaska",AS:"American Samoa",AZ:"Arizona",AR:"Arkansas",CA:"California",CO:"Colorado", 2415CT:"Connecticut",DE:"Delaware",DC:"District Of Columbia",FM:"Federated States Of Micronesia",FL:"Florida",GA:"Georgia",GU:"Guam",HI:"Hawaii",ID:"Idaho",IL:"Illinois",IN:"Indiana",IA:"Iowa",KS:"Kansas",KY:"Kentucky",LA:"Louisiana",ME:"Maine",MH:"Marshall Islands",MD:"Maryland",MA:"Massachusetts",MI:"Michigan",MN:"Minnesota",MS:"Mississippi",MO:"Missouri",MT:"Montana",NE:"Nebraska",NV:"Nevada",NH:"New Hampshire",NJ:"New Jersey",NM:"New Mexico",NY:"New York",NC:"North Carolina",ND:"North Dakota",MP:"Northern Mariana Islands", 2416OH:"Ohio",OK:"Oklahoma",OR:"Oregon",PW:"Palau",PA:"Pennsylvania",PR:"Puerto Rico",RI:"Rhode Island",SC:"South Carolina",SD:"South Dakota",TN:"Tennessee",TX:"Texas",UT:"Utah",VT:"Vermont",VI:"Virgin Islands",VA:"Virginia",WA:"Washington",WV:"West Virginia",WI:"Wisconsin",WY:"Wyoming"},getInvoiceTable:N=>{if(N!=null){b=N;let ha='<div class="invoices-header"><h3 class="group-header">Invoices</h3>'+(N.some(V=>{var O=V.totalBill-V.creditApplied;return!(O<0||O===0&&V.creditApplied===0)})?'<a id="downloadAllInvoices" class="card-action" onclick="SubscriptionUtil.downloadAllInvoices()"><i class="fa fa-file-archive-o"></i>Download all</a>':
2417"")+'</div><div class="paymentTableWrap"><table class="paymentTable"><tr><th>Date</th><th>Total</th><th>Price Plan</th><th>Start Date</th><th>End Date</th><th>Payment Method</th><th>Invoice</th><th>Status</th></tr>';for(let V=N.length-1;V>=0;V--){let O=N[V],wa=O.totalBill-O.creditApplied,La=O.subscriptionStart==0?"-":(new Date(O.subscriptionStart)).formatDate("M j, Y"),Ba=O.subscriptionStart==0?"-":(new Date(O.subscriptionStart+O.subscriptionDuration)).formatDate("M j, Y"),fa=Money.format(wa,{sourceDomainId:3, 2418targetDomainId:3,forceEuropeanStyle:!0}),ia="";showReferencePrice(3)&&(ia=` <span class="price__reference">(~ ${Money.format(wa,{sourceDomainId:3})})</span>`);let Aa=O.payedService.replace(/_/g," ").replace(" 19","");O.payedService.includes("Data_Access_Year")?Aa="Keepa Pro Year":O.payedService.includes("Data_Access")&&(Aa="Keepa Pro");ha+=`<tr> 2419 <td>${(new Date(O.createDate)).formatDate("M j, Y")}</td> 2420 <td>${fa}${ia}</td> 2421 <td>${(O.quantity>1?O.quantity+"x ":"")+Aa}</td> 2422 <td>${La}</td> 2423 <td>${Ba}</td> 2424 <td>${wa<0?"Credit":O.totalBill==0?"-":O.paymentProvider}</td> 2425 <td>${wa<0||wa==0&&O.creditApplied==0?" - ":`<a download class="darkgrey" href="${ajaxURL}api/service/?user=${storage.token}&type=getInvoicePDF&billId=${O.billId}"><i class="fa fa-file-pdf-o"></i> Download</a>`}</td> 2426 <td>${wa<0||wa==0&&O.creditApplied==0?'<span style="color: #999;font-style: italic;">free</span>':wa==0?'<span style="color: #999;font-style: italic;">paid with credit</span>':O.paymentReceivedDate>0&&O.paymentCancelledDate>0?`<span style="color:#2196F3">Refunded (${(new Date(O.paymentCancelledDate)).formatDate("M j")})</span>`:O.paymentReceivedDate!=0?'<span class="green">Payment Received</span>':O.paymentCancelledDate!=0?`<span class="red">Cancelled (${(new Date(O.paymentCancelledDate)).formatDate("M j")})</span>`: 2427"Pending"}</td> 2428 </tr>`}return ha+"</table></div>"}return""},downloadAllInvoices:()=>a(b),getPaymentElementPartial:N=>`<div class="mdc-typography--subtitle2" style="margin-bottom: 15px">Payment Details</div> 2429 <div id="${N}"> 2430 <!-- Elements will create form elements here --> 2431 </div> 2432 <div id="${N}-error"> 2433 <!-- Display error message to your customers here --> 2434 </div>`,getPaymentMethodPartial:(N,ha=!0)=>{var V="";if(N!=null)switch(N.type){case "card":if(N=N.card){V="card";let O="credit-card";N.brand==="amex"?(V="American Express",O="cc-amex"):N.brand==="diners"?(V="Diners Club",O="cc-diners-club"):N.brand==="discover"?(V="Discover",O="cc-discover"):N.brand==="eftpos_au"?V="eftpos":N.brand==="jcb"?(V="JCB",O="cc-jcb"):N.brand==="mastercard"?(V="Mastercard",O="cc-mastercard"):N.brand==="unionpay"?V="UnionPay":N.brand==="visa"&&(V="Visa",O="cc-visa"); 2435V=`<br><div class="payment-method"> 2436 <span class="payment-method__info"> 2437 <span style="color:black">Payment method:</span> 2438  <span>${`<i class="legendColorBox fa fa-${O} fa-22" ></i> `}${V} ending with ${N.last4} (exp: ${N.expMonth}/${N.expYear})</span> 2439 </span> 2440 ${'<span class="payment-method__actions">\n\t\t\t\t\t\t<span class="card-action" id="editCC"><i class="fa fa-pencil"></i>Change</span>\n\t\t\t\t\t\t<span class="card-action -danger" id="removeCC"><i class="fa fa-trash"></i>Remove</span>\n\t\t\t\t\t</span>'} 2441 </div>`}break;case "link":V=`<br><div class="payment-method"> 2442 <span class="payment-method__info"> 2443 <span style="color:black">Payment method:</span> 2444  <span style="font-weight: bold;background-color: #6edab5;color: black;padding: 3px;margin-left: 4px;">link</span> 2445 <span style="background-color: #d2ffec;color: black;padding: 3px 8px 3px 8px;margin-left: -4px;font-weight: bold;">${c(N.link.email)}</span> 2446 </span> 2447 ${'<span class="payment-method__actions">\n\t\t\t\t\t\t<span class="card-action" id="editCC"><i class="fa fa-pencil"></i>Change</span>\n\t\t\t\t\t\t<span class="card-action -danger" id="removeCC"><i class="fa fa-trash"></i>Remove</span>\n\t\t\t\t\t</span>'} 2448 </div>`;break;case "paypal":V=`<br><div class="payment-method"> 2449 <span class="payment-method__info"> 2450 <span style="color:black">Payment method:</span> 2451  <i class="legendColorBox fa fa-cc-paypal fa-22" style="color: #2744bb;"></i> 2452  PayPal account: <span style="background-color: #ddf1ff;color: black;padding: 2px 6px 3px 6px;margin-left: 3px;font-weight: bold;border-radius: 6px;">${c(N.paypal.payerEmail)}</span> 2453 </span> 2454 ${'<span class="payment-method__actions">\n\t\t\t\t\t\t<span class="card-action" id="editCC"><i class="fa fa-pencil"></i>Change</span>\n\t\t\t\t\t\t<span class="card-action -danger" id="removeCC">
2454<i class="fa fa-trash"></i>Remove</span>\n\t\t\t\t\t</span>'} 2455 </div>`}!V&&ha&&(V='<br><div class="payment-method">\n\t\t\t\t<span class="payment-method__info">\n\t\t\t\t\t<i class="legendColorBox fa fa-exclamation-triangle fa-lg red" ></i>\n\t\t\t\t\t No payment method is attached to your account.\n\t\t\t\t</span>\n\t\t\t\t<span class="payment-method__actions">\n\t\t\t\t\t<span class="card-action" id="addCC"><i class="fa fa-plus"></i>Add payment method</span>\n\t\t\t\t</span>\n\t\t\t</div>');return V},getValidateVatIdPromise:(N,ha)=>{var V=Deferred(), 2456O={invalidFields:[],msg:"",msgAdvisory:"",success:!0,valid:!0,blocking:!1,outcome:null,vatSuggestion:null,taxPercent:null,validationNeeded:!1};if(N.paymentIntentRequest.billingBusiness!==!0||N.paymentIntentRequest.billingVatId.length===0||N.isEu!==!0)return V.resolve(O),V;O.validationNeeded=!0;network.request({path:"service/stripe",type:"vatId",content:JSON.stringify(N.paymentIntentRequest),dashboard:"api"}).done(wa=>{isTest&&console.info("%cVatIdResult:","color:orange",wa);var La=wa?wa.vatVerification: 2457null;La!=null&&(O.outcome=La.outcome,O.vatSuggestion=wa.vatSuggestion||La.suggestion||null,O.blocking=La.blocking===!0,O.valid=!O.blocking,typeof wa.tax==="number"&&wa.tax>=0&&(O.taxPercent=wa.tax),O.blocking?O.msg=La.customerMessage||"The VAT ID could not be confirmed. Please check it, or continue without a VAT ID.":La.customerMessage&&(O.msgAdvisory=La.customerMessage,W(O,ha)),isTest&&console.info("%cVatId:",O.blocking?"color:red":"color:green",La.outcome));V.resolve(O)}).fail(()=>{V.resolve(O)}); 2458return V},handleValidateVatIdError:(N,ha)=>{if(N=DomUtil.el(ha))N.innerHTML='<div class="vatIdNotice"><i class="fa fa-info-circle"></i> We could not confirm your\n\t\t\t\t\t\t<strong>VAT ID</strong> just now. You can continue - we will confirm it when the subscription is created.</div>',DomUtil.show(N)},confirmProceedWithoutVatId:N=>{if(!N.isBusiness||!N.isEu||N.vatId&&String(N.vatId).trim().length)return!0;var ha=N.previousVatId!==void 0,V=ha?String(N.previousVatId||"").trim():"";if(ha&&!V)return!0; 2459var O=DomUtil.el(N.$form);if(DomUtil.data(O,"noVatConfirmed")===!0)return!0;var wa=N.ratePercent!=null&&N.ratePercent>0?N.ratePercent+"% ":"",La=N.grossPricing?(ha?"future invoices":"your invoices")+" will include "+wa+"VAT (the price you pay stays the same)":wa+"VAT will be added to "+(ha?"future":"your")+" invoices";V=ha?"<strong>You are removing your VAT ID.</strong> Without <strong>"+c(V)+"</strong> the reverse charge no longer applies - "+La+".":"<strong>No VAT ID entered.</strong> Most EU businesses have one - with a valid VAT ID the reverse charge applies and no VAT is charged. Without one, "+ 2460La+".<br>Adding the VAT ID later only affects future invoices.";ha=(ha?"Remove my VAT ID - continue":"My business has no VAT ID - continue")+(wa?" with "+wa.trim()+" VAT":" with VAT");var Ba=DomUtil.el(N.$target);Ba&&(Ba.innerHTML='<div class="vatIdNotice"><i class="fa fa-exclamation-circle"></i> '+V+'<br><br><button type="button" class="mdc-button mdc-button--raised mdc-button--secondary vatNoIdContinue" data-mdc-auto-init="MDCRipple" style="margin-top: 2px; text-transform: none;">'+ha+"</button></div>", 2461DomUtil.show(Ba),Ba.querySelector(".vatNoIdContinue")?.addEventListener("click",fa=>{fa.preventDefault();O&&(O.dataset.noVatConfirmed="true");DomUtil.hide(Ba);Ba.innerHTML="";N.retry()}));return!1},applyRegisteredAddress:D,escapeHtml:c,analyzeVatId:n}})(),priceDataAPI=(()=>{var a,b,c,d,f,k,n,q=!1,r,u,B,t,G,da,Y,X,P,ka=!1,D=null,W={},N=null,ha=0,V=function(K,F){var z=Deferred(),g=showPopup("Enter Credit Card Information",'<div id="loadingIconPopup"></div><div style="width:600px"><div id="formContent"></div></div></div>', 2462!0);g.promise.fail(()=>{z.reject("Process aborted. Please try again.")});z.always(g.close);wa();StripeAPI.loadStripe("pk_live_d8cHyZoVVZdRXDvnxSmuoQTM").done(m=>{La();var w=document.getElementById("formContent");w&&(w.innerHTML=O("checkoutForm"));material.init("#checkoutForm");w=StripeAPI.getElementsOptions();w.amount=K;var I=m.elements(w);I.create("payment",StripeAPI.getPaymentElementOptions()).mount("#payment-element");document.getElementById("checkoutForm")?.addEventListener("submit",async S=> 2463{S.preventDefault();wa();({error:S}=await I.submit());if(S)isTest&&S.type!=="validation_error"&&console.log("todo handle error?",S),La();else return StripeAPI.createPaymentMethod(m,I,F).then(({error:ma,paymentMethod:Q,confirmationToken:l})=>{isTest&&console.log(ma,Q,l,F);l&&(F.confirmationTokenId=l.id);Q&&(F.paymentMethodId=Q.id);ma?z.reject("Payment method error: "+ma.message):z.resolve(Q)}),!1})});return z},O=K=>{var F=material.getButton("submitCheckout","Submit","shopping-cart"),z=SubscriptionUtil.getPaymentElementPartial("payment-element"); 2464return`<form id="${K}"> 2465 ${z} 2466 <div class="flex pt-5" style="justify-content: space-between;">${F}</div> 2467 </form>`},wa=()=>{DomUtil.hide(document.getElementById("formContent"));DomUtil.hide(document.getElementById("popupTitle"));DomUtil.show(document.getElementById("loadingIconPopup"))},La=()=>{DomUtil.show(document.getElementById("formContent"));DomUtil.show(document.getElementById("popupTitle"));DomUtil.hide(document.getElementById("loadingIconPopup"))},Ba=()=>{var K=[];if(c==null)return K;for(let m=0;m<c.length;m++){let w=c[m];if(w.paymentCancelledDate!=0)continue;var F=a.PayedService[w.payedService]; 2468let I=F!=null&&F.type=="API";if(!I&&w.payedService!="API_Access_1")continue;F=I?a.PayedServiceVariants[F.variant]:null;var z=!1;if(t!=null)for(var g=0;g<t.length;g++)if(t[g].subscription.id==w.subscriptionId){z=!0;break}z=w.paymentReceivedDate>0&&!z;g=(G||[]).some(ma=>ma.subscriptionId==w.subscriptionId);let S=null;I?g?S="A plan change for this subscription is waiting for payment. Complete or cancel it first.":z?w.cancel_at_period_end&&(S="This subscription is cancelled and ends on "+(new Date(w.subscriptionStart+ 2469w.subscriptionDuration)).formatDate("M j, Y")+". Resume it first to change its plan."):S="The payment for this subscription has not gone through yet. You can change its plan as soon as it has.":S="This is a legacy API plan and can no longer be changed. Subscribe to one of the current plans instead.";K.push({subscription:w,subscriptionId:w.subscriptionId,productName:w.productName,net:w.net,variant:F!=null?Number(F.variant):null,changeable:S==null,blockedReason:S})}return K},fa=K=>Money.format(K,{sourceDomainId:3, 2470targetDomainId:3,noDigits:!0,forceEuropeanStyle:!0}),ia=()=>{var K=0;for(var F in a.PayedService){var z=a.PayedService[F];z.type=="API"&&z.variant.endsWith("_")?(K==0&&(a.PayedServiceTypes.API.pricePerRequest=a.PayedServiceVariants[z.variant].price/a.PayedServiceVariants[z.variant].variant),K++):z.type!="KEYWORDS"&&z.type!="NEW_ASIN_FEED"||K++}var g;F=!1;var m=!!b&&b.length>0||!!c&&c.length>0;if(m){storage.hasAPI||(storage.hasAPI=1,settings.send());for(g=0;g<c.length&&(K=c[g],K.paymentCancelledDate!= 24710||K.cancel_at_period_end);g++);
2471f==null||f[1]==0||(new Date(f[1])).formatDate("M j, Y %a%t G:i");g=Date.now();F=!1;if(b!=null)for(K=0;K<b.length;K++)if(z=b[K],!(z.payedService.indexOf("API")===-1||z.paymentReceivedDate===0||z.paymentCancelledDate>0||z.subscriptionStart>g)){if(z.subscriptionStart+z.subscriptionDuration<g){if(z.cancel_at_period_end)continue;if(z.subscriptionStart+z.subscriptionDuration+3456E5<g)continue}F=!0}g=`<h3 class="group-header">Plan & usage</h3> 2472 2473 <div class="grid"> 2474 <div class="card"> 2475 <h4 class="card-title">Token rate</h4> 2476 <div class="card-stat">${f==null?0:f[0]}<span class="card-stat__unit">${a.PayedServiceTypes.API.variantDescription}</span></div> 2477 <p class="card-desc">${d!=null&&d.hasActiveSubscription&&!F?'Generated by your <a href="#!settings/1" class="href -api">Keepa Pro subscription</a>. Increase it by <a class="trigger-tab href -api" data-tab="3">adding an API subscription</a>.':"Generated by your active subscription level. Increase it by upgrading your subscription."}</p> 2478 </div>`;k.length==64&&(g+=`<div class="card"> 2479 <h4 class="card-title">Tokens available</h4> 2480 <div class="card-stat">${r}</div> 2481 <p class="card-desc">Token flow reduction: ${Math.round(u)} (${u.toFixed(4)})</p> 2482 </div>`);g+="</div>";K="";if(k.length==64&&(z=n!=null&&n.length===64,K=`<h3 class="group-header">API access</h3> 2483 2484 <div class="card"> 2485 <h4 class="card-title">${z?"Primary API access key":"Private API access key"}</h4> 2486 <p class="card-desc mb-4">Send this key with every request. It is hidden by default because anyone who has it can spend your tokens — if it ever leaks, generate a new one.</p> 2487 <div class="card-code-row"> 2488 <div class="card-code"><span id="apiKeyValue">${"•".repeat(k.length)}</span></div> 2489 <span class="card-action js-key-toggle" data-key="primary" data-target="apiKeyValue"><i class="fa fa-eye"></i>Show</span> 2490 <span class="card-action js-key-copy" data-key="primary"><i class="fa fa-clipboard"></i>Copy</span> 2491 <span class="card-action -danger" id="tokenDelete" title="invalidate the current key and generate a new one"><i class="fa fa-refresh"></i>Generate new key</span> 2492 ${z?"":'<span class="card-action" id="createSecondaryKey" title="issue a second key so you can move your applications over one at a time"><i class="fa fa-plus"></i>Add second key</span>'} 2493 </div> 2494 </div>`,z&&(K+=`<div class="card"> 2495 <h4 class="card-title">Second API access key</h4> 2496 <p class="card-desc mb-4">Both keys work right now and share the same token balance — nothing is counted or charged twice. Move your applications over to this key, then make it your only key. Deleting the second key instead keeps the primary key above.</p> 2497 <div class="card-code-row"> 2498 <div class="card-code"><span id="apiKeySecondaryValue">${"•".repeat(n.length)}</span></div> 2499 <span class="card-action js-key-toggle" data-key="secondary" data-target="apiKeySecondaryValue"><i class="fa fa-eye"></i>Show</span> 2500 <span class="card-action js-key-copy" data-key="secondary"><i class="fa fa-clipboard"></i>Copy</span> 2501 <span class="card-action -primary" id="promoteSecondaryKey" title="the primary key above stops working immediately"><i class="fa fa-check"></i>Make this my only key</span> 2502 <span class="card-action -danger" id="deleteSecondaryKey" title="invalidate this second key, the primary key keeps working"><i class="fa fa-trash"></i>Delete second key</span> 2503 </div> 2504 </div>`),z=userData?.apiWebhook?'value="'+SubscriptionUtil.escapeHtml(userData.apiWebhook)+'"':"",F=!F,K+=`<div class="card"> 2505 <h4 class="card-title">Notification webhook</h4> 2506 <p class="card-desc mb-4">Price alerts from the <a target="_blank" rel="noopener" href="https://keepa.com/api-docs/tracking.html" class="href -api">Tracking API</a> are pushed to this endpoint. Leave it empty to poll for notifications instead.</p> 2507 ${F?'<p class="card-desc mb-4">Setting or testing a webhook requires an active API subscription. You can still remove one you saved earlier.</p>':""} 2508 <div class="webhook-row"> 2509 <input maxlength="2000" id="webhookInput" class="inputDefault" ${z} placeholder="https://..."> 2510 ${F?'<span class="card-action -disabled" title="Requires an active API
2510subscription"><i class="fa fa-floppy-o"></i>Save</span>\n\t\t\t\t\t\t\t<span class="card-action -disabled" title="Requires an active API subscription"><i class="fa fa-exchange"></i>Send test</span>':'<span class="card-action" id="saveWebHook"><i class="fa fa-floppy-o"></i>Save</span>\n\t\t\t\t\t\t\t<span class="card-action" id="testWebHook"><i class="fa fa-exchange"></i>Send test</span>'} 2511 ${F&&userData?.apiWebhook?'<span class="card-action -danger" id="removeWebHook"><i class="fa fa-trash"></i>Remove</span>':""} 2512 </div> 2513 </div>`,c!=null&&c.length>0)){F='<div class="card"><div id="activeSubscriptions">';let U={};Ba().forEach(L=>U[L.subscriptionId]=L);for(z=0;z<c.length;z++){let L=c[z];var w=a.PayedService[L.payedService];w==null&&L.payedService=="API_Access_1"&&(w={API_Access_1:{type:"API",variant:"API_1"}});if(L.paymentCancelledDate==0&&w!=null){ka=!0;w="";if(!L.cancel_at_period_end&&B!=null&&B.length>0)for(var I=0;I<B.length;I++){var S=B[I];if(S.subscription.id==L.subscriptionId){w=Money.format(S.amountDue, 2514{sourceDomainId:3,targetDomainId:3,forceEuropeanStyle:!0});I="";showReferencePrice(3)&&(I=` <span class="price__reference">(~ ${Money.format(S.amountDue,{sourceDomainId:3})})</span>`);w=`<span>Next invoice <strong>${w}</strong>${I} on ${(new Date(Number(S.nextPaymentAttempt?S.nextPaymentAttempt:S.created)*1E3)).formatDate("M j, Y")}</span>`;break}}S=Money.format(L.net,{sourceDomainId:3,targetDomainId:3,forceEuropeanStyle:!0});I=L.includedTax==0?"":Money.format(L.includedTax,{sourceDomainId:3,targetDomainId:3, 2515forceEuropeanStyle:!0});I=L.includedTax==0?"":`<span class="subscription-price__tax">+ ${I} VAT</span>`;var ma="";showReferencePrice(3)&&(ma=L.includedTax==0?"":` (+ ~${Money.format(L.includedTax,{sourceDomainId:3})} VAT)`,ma=`<div class="price__reference">~ ${Money.format(L.net,{sourceDomainId:3})} / month${ma}</div>`);F+=`<div class="subscriptionBox flex"> 2516 <div class="subscription-summary"> 2517 <div class="subscription-name">${L.productName}</div> 2518 <div class="subscription-price">${S}<span class="subscription-price__unit">/ month</span>${I}</div> 2519 ${ma} 2520 <div class="subscription-meta"> 2521 <span>Subscribed since ${(new Date(L.createDate)).formatDate("M j, Y")}</span> 2522 ${w} 2523 </div> 2524 </div> 2525 <div class="subscription-actions" id="${L.subscriptionId}"> 2526 `;w=!1;if(t!=null)for(S=0;S<t.length;S++)if(t[S].subscription.id==L.subscriptionId){w=!0;break}S=U[L.subscriptionId];I=S==null?"":S.changeable?'<span class="card-action editSubscription"><i class="fa fa-exchange"></i>Change plan</span>':`<span class="card-action -disabled" title="${SubscriptionUtil.escapeHtml(S.blockedReason)}"><i class="fa fa-exchange"></i>Change plan</span>`;(S=(G||[]).find(ra=>ra.subscriptionId==L.subscriptionId))?(w=S.requestedPlan||"a new plan",I=(new Date(L.subscriptionStart+ 2527L.subscriptionDuration)).formatDate("M j"),F+=`<div class="subscription-actions__row"><span class="subscription-status" title="your current plan continues until the change is paid"><i class="fa fa-hourglass-half"></i>Plan change to ${SubscriptionUtil.escapeHtml(w)} awaiting payment</span></div> 2528 <div class="subscription-actions__row"> 2529 ${S.hostedInvoiceUrl?`<span class="card-action completePlanChange" rel="${L.subscriptionId}"><i class="fa fa-credit-card"></i>Complete payment</span>`:""} 2530 <span class="card-action -danger cancelPlanChange" rel="${L.subscriptionId}"><i class="fa fa-times"></i>Cancel plan change</span> 2531 </div> 2532 <div class="subscription-actions__row"><span class="subscription-status" title="unchanged - the current plan keeps renewing"><i class="fa fa-calendar"></i>Current plan renews ${I}</span></div>`):L.paymentReceivedDate>0&&!w?(w=(new Date(L.subscriptionStart+L.subscriptionDuration)).formatDate("M j"),F=L.cancel_at_period_end?F+`<div class="subscription-actions__row"><span class="subscription-status" title="subscription is cancelled and will terminate on ${w}"><i class="fa fa-calendar-times-o"></i>Cancelled – ends ${w}</span></div> 2533 <div class="subscription-actions__row"> 2534 ${I} 2535 <span class="card-action resumeSub" rel="${L.subscriptionId}"><i class="fa fa-repeat"></i>Resume subscription</span> 2536 </div>`:F+`<div class="subscription-actions__row"> 2537 ${I} 2538 <span class="card-action editBillingAddress"><i class="fa fa-book"></i>Invoice address</span> 2539 </div> 2540 <div class="subscription-actions__row"><span data-end="${w}" class="card-action -danger cancelSubscription">
2540<i class="fa fa-trash"></i>Cancel subscription</span></div>`):(F+=`<div class="subscription-actions__row">${I}</div><div class="subscription-actions__row">`,Date.now()-L.createDate>15E3?(F+=`<div class="retryPayment" data-id="${L.subscriptionId}" style="cursor:pointer;font-weight:bold;"><span style="color:tomato;">Payment failed.<br><span>Try again now <i class="fa fa-repeat" style="margin-left:7px;"></i></span></span></div>`, 2541L.paymentReceivedDate===0&&(F+=`<span class="card-action -danger discardUnpaidSub" rel="${L.subscriptionId}"><i class="fa fa-times"></i>Cancel unpaid subscription</span>`)):F+='<span class="black">Payment Pending</span>',F+="</div>");F+="</div></div>"}}ka&&(g+='<h3 class="group-header">Active subscriptions</h3>'+F+"</div></div>")}z=k.length==64&&B&&B.length>0?SubscriptionUtil.getPaymentMethodPartial(da).replace(/^\s*<br>/,""):"";w=Y&&Y<0?`<div><span style="color:#000">Your current account balance: <i class="fa fa-fw fa-money"></i> 2542${Money.format(-1*Y,{sourceDomainId:3,targetDomainId:3,noDigits:!1,forceEuropeanStyle:!0})}</span> (will be applied to future invoices)</div>`:"";F="";if(z||w)F=`<h3 class="group-header">Billing</h3> 2543 <div class="card">${z}${w}</div>`;z=SubscriptionUtil.getInvoiceTable(b);g=`<div class="dashboard">${g}${K}${F}</div>${z}`}H=1;K=(U,L,ra)=>` 2544 <div class="card"> 2545 <div class="card-icon">${U}</div> 2546 <h4 class="card-title">${L}</h4> 2547 <p class="card-desc">${ra}</p> 2548 </div>`;K=` 2549 <div class="dashboard"> 2550 2551 <div class="card -featured -api"> 2552 <h4 class="card-title">The data behind our price history graphs, as a REST API</h4> 2553 <p class="card-desc"> 2554 Everything Keepa tracks across 2555 <a href="#!features" class="href -api">more than 7 billion products</a> 2556 on 11 Amazon marketplaces — price and sales rank history, detailed product 2557 attributes, live offers, deals, best seller lists and seller data — as JSON 2558 over HTTPS. 2559 </p> 2560 </div> 2561 2562 <h3 class="group-header">What you get</h3> 2563 <div class="grid"> 2564 ${K("\ud83d\udcc8","Complete price history","Amazon, New, Used and Collectible by condition, FBA and FBM, Warehouse Deals, Buy Box new and used, list price and Lightning Deals — alongside sales rank, offer counts, rating and review history.")} 2565 ${K("\ud83d\udce6","Detailed product attributes","Well over a hundred fields per product: titles, brands, categories and variations, dimensions and weights, EAN and UPC codes, FBA fees, monthly sales estimates, images and A+ content.")} 2566 ${K("\ud83d\uded2","Live offers & Buy Box","Current marketplace offers with their seller, condition, shipping, coupons and Prime exclusive price, plus the full Buy Box seller history.")} 2567 ${K("\ud83d\udd0e","Product Finder","Query our entire product database by nearly any product field, and get Search Insights aggregated over the whole result set.")} 2568 ${K("\ud83c\udff7\ufe0f","Deals","Everything that changed in the last 12 hours, filtered and sorted the way you need it.")} 2569 ${K("\ud83c\udfc6","Sellers & best sellers","Best seller lists of up to 500,000 ASINs, most rated seller lists, and seller profiles with rating history and storefronts of up to 100,000 ASINs.")} 2570 </div> 2571 2572 <h3 class="group-header">Built for integration</h3> 2573 <div class="grid"> 2574 ${K("\u2699\ufe0f","Straightforward requests","Ask for what you need over a simple, encrypted web request and get JSON back. Requests can run side by side, and every response tells you how many tokens you have left.")} 2575 ${K("\ud83c\udf9f\ufe0f","Predictable cost","Your plan generates tokens every minute, around the clock. Most products cost a single token, so you can burst when you need to and still keep a steady rate.")} 2576 ${K("\ud83e\udde9","Ready-made clients",'Official <a target="_blank" rel="noopener" href="https://github.com/keepacom/api_backend" class="href -api">Java</a> and <a target="_blank" rel="noopener" href="https://packagist.org/packages/keepa/php_api" class="href -api">PHP</a> clients, a community <a target="_blank" rel="noopener" href="https://github.com/akaszynski/keepa" class="href -api">Python</a> client, and request examples in five languages.')} 2577 ${K("\ud83e\udd16","AI assistants",'Our hosted <a target="_blank" rel="noopener" href="https://keepa.com/api-docs/mcp.html" class="href -api">MCP server</a> connects Claude and other AI assistants straight to your Keepa data — they ask the questions, the API answers.')} 2578 </div> 2579 2580 <div class="card -dimmed"> 2581 <p class="card-desc"> 2582 Also included: <a target="_blank" rel="noopener" href="https://keepa.com/api-docs/tracking.html" class="href -api">product tracking</a> 2583 with price alerts pushed to your webhook, keyword product search, category lookup 2584 and search, Lightning Deals, and the 2585 <a target="_blank" rel="noopener" href="https://keepa.com/api-docs/graph-image.html" class="href -api">Graph Image API</a> 2586 for ready-to-display price history charts. See the 2587 <a target="_blank" rel="noopener" href="https://keepa.com/api-docs/" class="href -api">documentation</a> 2588 for the full reference, or get 2589 <a target="_blank" rel="noopener" href="mailto:[email protected]?subject=Keepa API" class="href -api">fast support via email</a>. 2590 </p> 2591 </div> 2592 2593 </div>`;F=(U,L,ra,Da)=>` 2594 <a class="card -nav -api" href="${"https://keepa.com/api-docs/"+Da}" target="_blank" rel="noopener"> 2595 <div class="card-icon">${U}</div> 2596 <h4 class="card-title">${L}</h4> 2597 <p class="card-desc">${ra}</p> 2598 </a>`;z=(U,L)=>` 2599 <div class="card"> 2600 <h4 class="card-title">${U}</h4> 2601 <ul class="card-links"> 2602 ${L.map(([ra,Da])=>`<li><a class="href -api" href="${"https://keepa.com/api-docs/"+ra}" target="_blank" rel="noopener">${Da}</a></li>`).join("")} 2603 </ul> 2604 </div>`;w=(U,L,ra,Da,Ea)=>` 2605 <a class="card -nav -api" href="${Da}" target="_blank" rel="noopener"> 2606 <div class="card-icon">${U}</div> 2607 <h4 class="card-title">${L}</h4> 2608 <p class="card-desc">${ra}<br><em>${Ea}</em></p> 2609 </a>`;F=` 2610 <div class="dashboard"> 2611 2612 <div class="card -featured -api"> 2613 <h4 class="card-title">Keepa API Documentation</h4> 2614 <p class="card-desc mb-4"> 2615 The complete reference for the Keepa API: how to get an access key, how the token bucket works, 2616 every endpoint and every response object — with request examples in Java, PHP, Python, 2617 Node.js and cURL. 2618 </p> 2619 <a class="card-cta -api" href="https://keepa.com/api-docs/" target="_blank" rel="noopener">Open the documentation<i class="fa fa-external-link"></i></a> 2620 </div> 2621 2622 <h3 class="group-header">Start here</h3> 2623 <div class="grid"> 2624 ${F("\ud83d\ude80","Overview & Quick Start","Get an API key, send your first request and read the response.","")} 2625 ${F("\ud83d\udd0c","Making Requests","Base URL, access key, HTTPS & gzip, keep-alive and HTTP status codes.","request-basics.html")} 2626 ${F("\ud83c\udf9f\ufe0f","Plans & Tokens","How the token bucket works, what each request costs and how billing works.","plans-tokens.html")} 2627 </div> 2628 2629 <h3 class="group-header">Reference</h3> 2630 <div class="grid"> 2631 ${z("Endpoints",[["product.html","Product Request"],["product-finder.html","Product Finder"],["product-search.html","Product Search"],["deal
2631s.html","Browsing Deals"],["lightning-deals.html","Lightning Deals"],["best-sellers.html","Best Sellers"],["seller.html","Seller Information"],["seller-finder.html","Seller Finder"],["most-rated-sellers.html","Most Rated Sellers"],["category-lookup.html","Category Lookup & Search"],["tracking.html","Tracking API"],["graph-image.html","Graph Image API"]])} 2632 ${z("Response objects",[["product-object.html","Product Object"],["statistics-object.html","Statistics Object"],["offer-object.html","Marketplace Offer Object"],["deal-object.html","Deal Object"],["lightning-deal-object.html","Lightning Deal Object"],["search-insights-object.html","Search Insights Object"],["seller-object.html","Seller Object"],["category-object.html","Category Object"],["best-sellers-object.html","Best Sellers Object"],["tracking-object.html","Tracking Object"],["notification-object.html", 2633"Notification Object"]])} 2634 </div> 2635 2636 <h3 class="group-header">Clients & libraries</h3> 2637 <div class="grid"> 2638 ${w("\u2615","Java","Official Keepa API framework for fast integration.","https://github.com/keepacom/api_backend","Keepa · official")} 2639 ${w("\ud83d\udc18","PHP","Official Keepa API client, available via Composer.","https://packagist.org/packages/keepa/php_api","Keepa · official")} 2640 ${w("\ud83d\udc0d","Python","Community-maintained client for the Keepa API.","https://github.com/akaszynski/keepa","Community")} 2641 ${w("\ud83e\udd16","MCP Server","Hosted at keepa.com/mcp, so AI assistants can query the API with your access key.","https://keepa.com/api-docs/mcp.html","Keepa · official · hosted")} 2642 </div> 2643 2644 <div class="card -dimmed"> 2645 <h4 class="card-title">Stay up to date</h4> 2646 <p class="card-desc"> 2647 New fields, endpoints and deprecations are listed in the 2648 <a class="href -api" href="https://keepa.com/api-docs/changelog.html" target="_blank" rel="noopener">API changelog</a>. 2649 Your personal access key is managed under “Your Access” on this page. 2650 </p> 2651 </div> 2652 2653 </div>`;g=material.getTabs({tabs:[m?{tab:{icon:"address-card",label:"Your Access"},panel:{id:"paymentStatus",content:g},isActive:m}:null,{tab:{icon:"star-o",label:"API Features"},panel:{id:"apiFeatures",content:K+'<div style="margin-top:25px;text-align: center;"><a target="_blank" href="mailto:[email protected]?subject=Questions about Keepa API" title="[email protected]" class="href -api">Have Questions? Contact us.</a> <a rel="terms" class="href -api">Terms and Conditions</a></div>'},isActive:!m}, 2654{tab:{icon:"book",label:"Documentation"},panel:{id:"documentations",content:F+'<div style="margin-top:25px;text-align: center;"><a target="_blank" href="mailto:[email protected]?subject=Questions about Keepa API" title="[email protected]" class="href -api">Have Questions? Contact us.</a> <a rel="terms" class="href -api">Terms and Conditions</a></div>'}},{tab:{icon:"shopping-cart",label:"Pricing Plans"},panel:{id:"pricingPlans",content:'<div id="apiOffers"></div><div style="margin-top:25px;text-align: left; max-width: 800px; margin-left: auto; margin-right: auto; line-height: 1.5; margin-bottom: 25px;"><span>All plans are prepaid monthly and follow a flexible subscription model. You can cancel your subscription at any time. An existing plan can be changed whenever you like — an upgrade takes effect immediately and you only pay the prorated difference, while a downgrade is permitted once per month. Separate plans can also run side by side on one account; they are billed separately and their token rates add up. Our plans vary based on the number of tokens generated per minute. In most cases, a single token is sufficient to access the full data for a product, though some advanced or detailed queries may require additional tokens. Unused tokens expire after one hour. For a detailed overview of how our API plans work, please refer to our <a class="href -api" target="_blank" rel="noopener" href="https://keepa.com/api-docs/plans-tokens.html">documentation</a>.</span><br></div><div style="margin-top:25px;text-align: center;"><a target="_blank" href="mailto:[email protected]?subject=Questions about Keepa API" title="[email protected]" class="href -api">Have Questions? Contact us.</a> <a rel="terms" class="href -api">Terms and Conditions</a></div>'}}], 2655panelsClass:"appsContent"})+'<div id="pricingPlansUpdate" class="appsContent"></div>';insertPage(` 2656 <div class="card -w-min-900"> 2657 <div id="GCBTab1">${g}</div> 2658 <div class="appsContent" style="padding: 20px; display: none"> 2659 <div id="backButton">← Back</div> 2660 <div id="GCBTab2"></div> 2661 <div id="GCBTab3"></div> 2662 <div id="GCBTab4"></div> 2663 </div> 2664 </div> 2665 `,"form");var Q=tabSwitcher();/[0-9]/.test(lastSubUrl)&&(g=m?Number(lastSubUrl):Number(lastSubUrl)-1,g>=0&&g<Q.tabCount?(Q.activeTabIndex=g,Q.updatePanel(g)):setTabSubUrl(""));
2665Q.listen("MDCTabBar:change",({detail:U})=>{U=U.activeTabIndex;U=m?U:U+1;setTabSubUrl(U>0?U:"")});document.querySelectorAll(".trigger-tab").forEach(U=>U.addEventListener("click",()=>{var L=Number(DomUtil.data(U,"tab"));Q.activeTabIndex=L;Q.updatePanel(L);L=m?L:L+1;setTabSubUrl(L>0?L:"")}));A();e("#apiOffers");var l=U=> 2666{U=U.closest(".subscription-actions")?.getAttribute("id");if(U==null)return reportBug("not found subscriptionId"),null;for(let L=0;L<c.length;L++)if(c[L].subscriptionId==U)return c[L];reportBug("not found subscription");return null};document.querySelectorAll(".editBillingAddress").forEach(U=>U.addEventListener("click",function(){var L=l(this);if(L!=null){var ra=L.subscriptionId,Da=showPopup("Update invoice address",'<div class="editBillingPopupRoot"><section style="margin-bottom: 12px; font-size: 13px; line-height: 1.5; color: #666;">Changes to your invoice address will only apply to future invoices.</section>'+ 2667Sa(L,!0)+"</div>",!0),Ea=document.querySelectorAll(".editBillingPopupRoot"),oa=Ea[Ea.length-1];if(oa){var Ja=()=>{DomUtil.show(oa.querySelector("#priceApiFormModern"));DomUtil.show(oa.querySelector("#sendUpdatedBilling")?.parentNode);DomUtil.hide(oa.querySelector("#loadingIconPopup"))};oa.querySelector("#cancelEditBilling")?.addEventListener("click",function(Ha){Ha.preventDefault();Da.close()});oa.querySelector("#sendUpdatedBilling")?.addEventListener("click",function(Ha){Ha.preventDefault();Ha={}; 2668if(Ra(Ha,oa.querySelector("#priceApiFormModern"))){let za=oa.querySelector("#frmCountryS")?.querySelector("option:checked"),cb=oa.querySelector("#vatIdErrors"),fb=DomUtil.data(za,"code");if(SubscriptionUtil.confirmProceedWithoutVatId({isBusiness:Ha["billing-business"]===!0,isEu:za?.getAttribute("rel")==="1",vatId:Ha["billing-vatId"],previousVatId:L.billingVatId||"",$form:oa.querySelector("#priceApiAddressForm"),$target:cb,ratePercent:W[fb]?W[fb].b2cRate:null,grossPricing:!1,retry:()=>oa.querySelector("#sendUpdatedBilling")?.click()})){DomUtil.hide(oa.querySelector("#priceApiFormModern")); 2669DomUtil.hide(oa.querySelector("#sendUpdatedBilling")?.parentNode);DomUtil.show(oa.querySelector("#loadingIconPopup"));var ya={billingContact:Ha["billing-name"],billingStreet:Ha["billing-address"],billingCity:Ha["billing-city"],billingZipCode:Ha["billing-zip"],billingState:Ha["billing-state"],billingCountry:Ha["billing-country"],billingCountryId:Ha["billing-country-id"],billingVatId:Ha["billing-vatId"].replace(/[-,;_:#.\s]/g,""),billingBusiness:Ha["billing-business"],noVatIdConfirmed:DomUtil.data(oa.querySelector("#priceApiAddressForm"), 2670"noVatConfirmed")===!0};Ha={paymentIntentRequest:ya,countryCode:DomUtil.data(za,"code"),isEu:za?.getAttribute("rel")==="1"};isTest&&console.info("%csend validateData:","color:orange",Ha);SubscriptionUtil.getValidateVatIdPromise(Ha,cb).done(pb=>{isTest&&console.info("%cvalidationPromiseResult:","color:orange",pb);pb==null||pb.success!==!0?(Ja(),SubscriptionUtil.handleValidateVatIdError(pb,cb)):pb.valid===!0&&pb.invalidFields.length===0?(!pb.msgAdvisory&&cb&&(cb.innerHTML="",DomUtil.hide(cb)),isTest&& 2671(pb.validationNeeded===!0?console.info("%cVatId:","color:green","everything is valid - proceed ..."):console.info("%cVatId:","color:green","no validation needed - proceed ...")),network.request({path:"service/stripe",type:"editAddressSubscription",content:JSON.stringify(ya),subscriptionId:ra,dashboard:"api"}).done(function(ob){Da.close();Ga()}).fail(()=>{Da.close();setTimeout(()=>{showErrorPopup()},500)})):(Ja(),cb&&(cb.innerHTML=pb.msg,DomUtil.show(cb)))}).fail(pb=>{SubscriptionUtil.handleValidateVatIdError(pb, 2672cb);Ja()})}}})}}}));document.querySelectorAll(".editSubscription").forEach(U=>U.addEventListener("click",function(){ba(l(this))}));var M=U=>{U?.status==401&&U.error?.message?showPopup("Webhook",U.error.message,!0):showErrorPopup(U)};document.getElementById("testWebHook")?.addEventListener("click",function(){network.request({path:"service/stripe",type:"testWebhook",webhookUrl:document.getElementById("webhookInput")?.value,dashboard:"api"}).done(function(U){U.code==-1?showPopup("Webhook test","You did not specify a valid URL. Please check your input.", 2673!0):showPopup("Webhook test","The server response status code to our test payload was: <strong>"+U.code+"</strong><br><br>Note: Only the status code 200 will be interpreted as a success.",!0)}).fail(M)});document.getElementById("saveWebHook")?.addEventListener("click",function(){network.request({path:"service/stripe",type:"updateWebhook",webhookUrl:document.getElementById("webhookInput")?.value,dashboard:"api"}).done(function(U){U.code==-1?showPopup("Webhook test","You did not specify a valid URL. Please check your input.", 2674!0):showPopup("Webhook URL updated!","Your webhook URL was successfully updated.",!0)}).fail(M)});document.getElementById("removeWebHook")?.addEventListener("click",function(){network.request({path:"service/stripe",type:"updateWebhook",webhookUrl:"",dashboard:"api"}).done(function(){showPopup("Webhook removed","Your webhook URL was removed.",!0);Ga()}).fail(M)});document.querySelectorAll(".resumeSub").forEach(U=>U.addEventListener("click",function(L){var ra=this.getAttribute("rel");L=material.getButton("resumeSubscription", 2675"Resume Subscription","repeat",null,!1,!1);var Da=showPopup("Resume subscription",`<div>
2675This will remove your cancellation and continue automatic renewals of your subscription.</div><br><br>${L}`,!0);document.getElementById("resumeSubscription")?.addEventListener("click",function(){Da.close();network.request({path:"service/stripe",type:"resumeSubscription",subscriptionId:ra,dashboard:"api"}).done(()=>{Ga()}).fail(ea)})}));document.querySelectorAll(".completePlanChange").forEach(U=>U.addEventListener("click", 2676function(){var L=this.getAttribute("rel"),ra=(G||[]).find(Da=>Da.subscriptionId==L);ra&&ra.hostedInvoiceUrl?(window.open(ra.hostedInvoiceUrl),Ga()):(Ia(),showErrorPopup(void 0))}));document.querySelectorAll(".discardUnpaidSub").forEach(U=>U.addEventListener("click",function(){var L=this.getAttribute("rel"),ra=showPopup("Cancel unpaid subscription",'This subscription was never activated because its payment did not go through.<br><br>Cancelling it removes the outstanding invoice, and you can subscribe again straight away with a different payment method.<br><br>Any subscription you are already paying for is not affected.<br><br><span class="button" id="discardUnpaidSubConfirm"> Yes, cancel unpaid subscription </span>', 2677!0);document.getElementById("discardUnpaidSubConfirm")?.addEventListener("click",function(){ra.close();network.request({path:"service/stripe",type:"cancelPendingUpdate",subscriptionId:L,dashboard:"api"}).done(()=>{Ga()}).fail(ea)})}));document.querySelectorAll(".cancelPlanChange").forEach(U=>U.addEventListener("click",function(){var L=this.getAttribute("rel"),ra=(G||[]).find(Ea=>Ea.subscriptionId==L);ra=ra&&ra.requestedPlan?SubscriptionUtil.escapeHtml(ra.requestedPlan):"the new plan";var Da=showPopup("Cancel plan change", 2678"This discards the pending change to <strong>"+ra+'</strong>.<br><br>You will not be charged for it and your current plan continues unchanged. You can request the change again at any time.<br><br><span class="button" id="cancelPlanChangeConfirm"> Yes, cancel plan change </span>',!0);document.getElementById("cancelPlanChangeConfirm")?.addEventListener("click",function(){Da.close();network.request({path:"service/stripe",type:"cancelPendingUpdate",subscriptionId:L,dashboard:"api"}).done(()=> 2679{Ga()}).fail(ea)})}));document.querySelectorAll(".cancelSubscription").forEach(U=>U.addEventListener("click",function(){var L=this.closest(".subscription-actions")?.getAttribute("id");if(L!=null){var ra=showPopup("Cancel subscription","Your subscription stays active until <strong>"+DomUtil.data(this,"end")+'</strong> and will not renew after that.<br><br>You keep full access until then, and the remaining time is not refunded. You can resume the subscription any time before it ends.<br><br><span class="button" id="cancelSub"> Yes, cancel subscription </span>', 2680!0);document.getElementById("cancelSub")?.addEventListener("click",function(){ra.close();network.request({path:"service/stripe",type:"cancelSubscription",subscriptionId:L,dashboard:"api"}).done(function(Da){Ga()}).fail(()=>{setTimeout(()=>{Ia();showErrorPopup(void 0)},500)})})}}));document.querySelectorAll("#editCC, #addCC").forEach(U=>U.addEventListener("click",Pa));document.getElementById("removeCC")?.addEventListener("click",function(){var U=showPopup("Delete Credit Card",'This will delete your attached credit card. Your subscription will terminate unless you provide a new payment method before the end of your billing cycle. Do you want to continue?<br><br><span class="button" id="deleteTokenConfirm"> Yes </span>', 2681!0);document.getElementById("deleteTokenConfirm")?.addEventListener("click",function(){U.close();network.request({path:"service/stripe",type:"deleteSource",dashboard:"api"}).done(function(){setTimeout(()=>{showPopup("Payment method removed!","Your payment method was successfully deleted.",!0);Ga()},300)}).fail(L=>{setTimeout(()=>{showPopup("Removal issue",L,!0)},300)})})});document.querySelectorAll(".js-key-toggle").forEach(U=>U.addEventListener("click",function(){var L=DomUtil.data(this,"key")=== 2682"secondary"?n:k;if(L){var ra=document.getElementById(DomUtil.data(this,"target"));this.classList.contains("-revealed")?(ra&&(ra.innerHTML="•".repeat(L.length)),this.classList.remove("-revealed"),this.innerHTML='<i class="fa fa-eye"></i>Show'):(ra&&(ra.textContent=L),this.classList.add("-revealed"),this.innerHTML='<i class="fa fa-eye-slash"></i>Hide')}}));document.querySelectorAll(".js-key-copy").forEach(U=>U.addEventListener("click",function(){var L=this,ra=DomUtil.data(L,"key")==="secondary"? 2683n:k,Da=()=>showPopup("Could not copy",'Your browser blocked access to the clipboard. Use "Show" and copy the key manually.',!0);ra&&(navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(ra).then(()=>{L.innerHTML='<i class="fa fa-check"></i>Copied';setTimeout(()=>L.innerHTML='<i class="fa fa-clipboard"></i>Copy',1500)}).catch(Da):Da())}));var na=U=>{q||(q=!0,network.request({path:"service/stripe",type:U,dashboard:"api"}).done(function(L){q=!1;L.key&&Aa(L.key);Ga()}).fail(L=> 2684{q=!1;Ya(L)}))};document.getElementById("tokenDelete")?.addEventListener("click",function(){var U=showPopup("Generate new API access key","Your current key will be invalidated and all future requests with it will be denied. Do you want to continue?<br><br>"+(n?"Your second key is not affected and keeps working.<br><br>":"")+'<span class="button" id="regenerateKeyConfirm"> Yes </span>',!0);document.getElementById("regenerateKeyConfirm")?.addEventListener("click",function(){U.close();na("deleteKey")})}); 2685document.getElementById("createSecondaryKey")?.addEventListener("click",function(){var U=showPopup("Add a second API access key",'You get a second key that works alongside your current one and shares the same token balance, so you can move your applications over one at a time.<br><br>When everything runs on the new key, make it your only key — that invalidates the old one.<br><br><span class="button" id="createSecondaryConfirm"> Create second key </span>',!0);document.getElementById("createSecondaryConfirm")?.addEventListener("click", 2686function(){U.close();na("createSecondaryKey")})});document.getElementById("promoteSecondaryKey")?.addEventListener("click",function(){var U=showPopup("Make the second key your only key",'Your second key becomes your only API key. The primary key above is invali
2686dated immediately and all future requests with it will be denied.<br><br>Only do this once every application uses the second key. Do you want to continue?<br><br><span class="button" id="promoteSecondaryConfirm"> Yes </span>',!0); 2687document.getElementById("promoteSecondaryConfirm")?.addEventListener("click",function(){U.close();na("promoteSecondaryKey")})});document.getElementById("deleteSecondaryKey")?.addEventListener("click",function(){var U=showPopup("Delete the second API access key",'The second key will be invalidated and all future requests with it will be denied. Your primary key keeps working.<br><br><span class="button" id="deleteSecondaryConfirm"> Yes </span>',!0);document.getElementById("deleteSecondaryConfirm")?.addEventListener("click", 2688function(){U.close();na("deleteSecondaryKey")})});document.querySelectorAll(".retryPayment").forEach(U=>U.addEventListener("click",function(){ta(DomUtil.data(this,"id"))}))},Aa=K=>{try{K&&K.length===64?storage.apiKey=K:storage.removeItem("apiKey")}catch(F){}},Ia=()=>{document.getElementById("apiPageLoader")&&insertPage("","form")},Ga=()=>{network.request({path:"service/stripe",type:"countries",dashboard:"api"}).done(function(K){W=K.countries;network.request({path:"service/stripe",type:"offers",dashboard:"api"}).done(function(F){F.offers? 2689(X=F.user,a=F.offers,F.payments?(b=F.payments.payments,P=F.payments.lastDowngrade,c=F.payments.subscriptions,d=F.subscriptionStatus):b=P=c=d=null,c==null&&(c=[]),f=F.paymentStatus,k=F.key||"",n=F.keySecondary||null,Aa(k),r=F.tokens,u=F.tokenFlowReduction,B=F.invoices,t=F.pendingInvoices,G=F.pendingPlanChanges,da=F.paymentMethod,Y=F.balance,ia()):(Ia(),showErrorPopup("No subscription offers were returned."))}).fail(F=>{Ia();showErrorPopup(F)})}).fail(K=>{Ia();showErrorPopup(K)})},Ya=K=>{Ga();setTimeout(()=> 2690{showErrorPopup(typeof K==="string"?K:null)},500)},Pa=()=>{B&&B.length>0?network.request({path:"service/stripe",type:"getPortalUrl",dashboard:"api"}).done(function(K){K.url&&K.url.length>0?window.location.href=K.url:Ya()}).fail(K=>{Ya(K)}):Ya()},ta=K=>{var F=document.getElementById("paymentStatus");F&&(F.innerHTML='<div id="loadingIcon"></div>');DomUtil.show(document.getElementById("loadingIcon"));network.request({path:"service/stripe",type:"getHostedInvoice",subscriptionId:K,dashboard:"api"}).done(function(z){z.url&& 2691z.url.length>0?window.location.href=z.url:Ya(z)}).fail(z=>{Ya(z)})},ea=K=>{Ia();showErrorPopup(K)},Fa=()=>
2691{if(b==null)return null;for(let K=0;K<b.length;K++){let F=b[K];if(F.paymentCancelledDate==0&&F.paymentReceivedDate==0)return F}return null},bb=function(K){var F=Deferred();Z(F.promise());network.request({path:"user/settings",type:"getSettings"}).done(function(z){if(storage.accountType!=2&&settings.isEmailVerified)F.resolve("Before you can continue you have to sign in.");else{var g=z.ear;X=z.user; 2692if(!X.emailAddress||X.emailAddress.indexOf("@")==-1||g!=null&&EmailStatus[g.status]!="VERIFIED")F.resolve(la._428);else{let M=a.PayedService[K];if(Fa()!=null){F.resolve("<div>You are not allowed not make a purchase while you have an unpaid order pending. Please issue the payment for your order first (if you have not already). You can also cancel the order.</div>");return}var m=Ba();let na=m.length===1&&m[0].changeable?m[0]:null;g="";if(M.type=="API"){var w=a.PayedServiceVariants[M.variant],I=a.PayedServiceTypes.API; 2693let Ea=Number(w.variant);var S=Money.format(w.price,{sourceDomainId:3,targetDomainId:3,noDigits:!0,forceEuropeanStyle:!0}).replace(/\.|,/g,"");var ma=NumberUtil.format(Ea*60*24*31),Q=100*(1-w.price/(I.pricePerRequest*Ea)),l=NumberUtil.format(Q);Q=Q>0&&l!=0?`<div class="savings-pill">save ${l}%</div>`:"";l="";showReferencePrice(3)&&(l=`<div class="price-ref">(~ ${Money.format(w.price,{sourceDomainId:3})} / <span title="${I.subscriptionDurationDescription}">month</span>)</div>`);S=` 2694 <div class="pricing-card-preview" style="margin: 0 0 24px 30px;"> 2695 <div class="card-header-accent"> 2696 <div class="plan-title">Keepa API Plan</div> 2697 <div class="plan-tokens">${NumberUtil.format(Ea)} ${I.variantDescription}</div> 2698 <div class="plan-tokens-desc">≡ ${ma} tokens / month</div> 2699 </div> 2700 <div class="card-body"> 2701 <div class="price-container"> 2702 <span class="plan-price"> ${S} / <span title="${I.subscriptionDurationDescription}">month</span></span> 2703 ${l} 2704 </div> 2705 <div class="savings-container">${Q}</div> 2706 </div> 2707 </div>`;m.length>0&&(g=m.reduce((oa,Ja)=>oa+(Ja.variant||0),0),ma=m.reduce((oa,Ja)=>oa+(Number(Ja.net)||0),0),Q=na!=null?' <span class="href" id="apiSummaryChange">Meant to change your existing plan instead?</span>':"",g=`<div class="checkout-existing"> 2708 <div class="checkout-existing__label">This is an additional subscription</div> 2709 <div class="checkout-existing__row"><span>Your current subscription${m.length===1?"":"s"}</span><span>${NumberUtil.format(g)} ${I.variantDescription} · ${fa(ma)}</span></div> 2710 <div class="checkout-existing__row"><span>The plan you selected</span><span>+ ${NumberUtil.format(Ea)} ${I.variantDescription} · + ${fa(w.price)}</span></div> 2711 <div class="checkout-existing__row -total"><span>After this purchase</span><span>${NumberUtil.format(g+Ea)} ${I.variantDescription} · ${fa(ma+(Number(w.price)||0))} / month</span></div> 2712 <div class="checkout-existing__note">${m.length+1} separate subscriptions, each with its own invoice and renewal date.${Q}</div> 2713 </div>`)}else S=v(K,a.PayedServiceVariants[M.variant],a.PayedServiceTypes[M.type]);let U=a.PayedServiceVariants[M.variant].variant+" "+a.PayedServiceTypes.API.variantDescription,L=Money.format(a.PayedServiceVariants[M.variant].price,{sourceDomainId:3,targetDomainId:3,noDigits:!0,forceEuropeanStyle:!0}).replace(/\.|,/g,"");m='<div><span style="margin-left: 30px;">You are about to purchase '+a.PayedServiceTypes.API.description+" for "+a.PayedServiceTypes.API.subscriptionDurationDescription+" with "+ 2714U+" for "+L+'.</span><span><ul style="line-height: 20px; color: #000; margin: 20px 20px 20px 50px;text-indent: -1.4em;"><li>• The Keepa API is offered for commercial and professional use. Prices are net; any applicable tax is shown before you confirm.</li><li>• The API access will be activated on your Keepa account immediately after we have received the payment.</li><li>• Our price plans are subscription based. The plan will <span style="text-decoration: underline;">automatically renew</span> unless cancelled and all payments are non-refundable.</li><li>• Cancellation of the subscription is possible at any time and will end the subscription at the end of the monthly term.</li><li>• You can move this subscription to another plan at any time under “
2714Your Access”; an upgrade takes effect immediately and you only pay the prorated difference.</li><li>• We accept credit cards through our payment provider Stripe. Contact us if you require other methods of payment.</li></ul></span></div>'; 2715w='<div style="margin-left: 30px;">The plan will be applied to your current active Keepa account <div style="margin: 10px 0;"><span style="font-family: Verdana, Arial, sans-serif" id="accountEmail"><span style="color:#000">'+storage.username+'</span> with the email <span style="color:#000">'+storage.email+"</span></span></div></div>";I=null;try{c!=null&&c.length>0?I=c[c.length-1]:b!=null&&b.length>0&&(I=b[b.length-1])}catch(Ea){console.log(Ea)}I=Sa(I);F.resolve(S+g+m+w+I+'<div class="flex" style="padding: 10px 0 0 0; margin-left: 30px; width: 600px; justify-content: space-between;"><span id="gcProceed" style="width: 285px !important; display: inline-block;"><span style="font-size: 20px;">Proceed</span><br><span style="padding-left: 20px; display: inline-block;">You will be able to review your information.</span></span><span id="gcAbort" style="width: 285px !important; display: inline-block; margin-left: 0 !important;"><span style="font-size: 20px;">Return</span><br><span style="padding-left: 20px; display: inline-block;">I want to use a different price plan or change the account.</span></span></div>'); 2716document.getElementById("GCBTab2")?.querySelectorAll(".gcContainer").forEach(Ea=>DomUtil.setStyles(Ea,{cursor:"default"}));document.getElementById("gcAbort")?.addEventListener("click",function(){H<=1||ca()});document.getElementById("apiSummaryChange")?.addEventListener("click",function(){H<=1||ca();ba(na.subscription)});let ra=!1,Da=()=>{ra=!1;DomUtil.show(document.getElementById("priceApiFormModern"));DomUtil.hide(document.getElementById("loadingIconPopup"))};document.getElementById("gcProceed")?.addEventListener("click", 2717function(){if(!ra){var Ea={};if(Ra(Ea)){let Ja=document.getElementById("priceApiFormModern")?.querySelector("#frmCountryS")?.querySelector("option:checked"),Ha=document.getElementById("vatIdErrors"),ya=DomUtil.data(Ja,"code");if(SubscriptionUtil.confirmProceedWithoutVatId({isBusiness:Ea["billing-business"]===!0,isEu:Ja?.getAttribute("rel")==="1",vatId:Ea["billing-vatId"],$form:document.getElementById("priceApiAddressForm"),$target:Ha,ratePercent:W[ya]?W[ya].b2cRate:null,grossPricing:!1,retry:()=> 2718document.getElementById("gcProceed")?.click()})){ra=!0;DomUtil.hide(document.getElementById("priceApiFormModern"));DomUtil.show(document.getElementById("loadingIconPopup"));var oa={paymentIntentRequest:{billingBusiness:Ea["billing-business"],billingCity:Ea["billing-city"],billingContact:Ea["billing-name"],billingState:Ea["billing-state"],billingStreet:Ea["billing-address"],billingCountry:Ea["billing-country"],billingVatId:Ea["billing-vatId"].replace(/[-,;_:#.\s]/g,""),billingZipCode:Ea["billing-zip"]}, 2719countryCode:DomUtil.data(Ja,"code"),isEu:Ja?.getAttribute("rel")==="1"};isTest&&console.info("%csend validateData:","color:orange",oa);SubscriptionUtil.getValidateVatIdPromise(oa,Ha).done(za=>{Da();isTest&&console.info("%cvalidationPromiseResult:","color:orange",za);if(za==null||za.success!==!0)SubscriptionUtil.handleValidateVatIdError(za,document.getElementById("vatIdErrors"));else if(za.valid===!0&&za.invalidFields.length===0){!za.msgAdvisory&&Ha&&(Ha.innerHTML="",DomUtil.hide(Ha));isTest&&(za.validationNeeded=== 2720!0?console.info("%cVatId:","color:green","everything is valid - proceed ..."):console.info("%cVatId:","color:green","no validation needed - proceed ..."));let cb=W[oa.countryCode];Ea["billing-country-id"]=oa.countryCode;N=za.msgAdvisory?za:null;eb(K,M,U,L,Ea,za.taxPercent!=null?za.taxPercent:cb.b2cRate)}else Ha&&(Ha.innerHTML=za.msg,DomUtil.show(Ha))}).fail(za=>{SubscriptionUtil.handleValidateVatIdError(za,Ha);Da()})}}}})}handleSettingsRequest(z,!0)}}).fail(z=>{z.status==401?(settings.reset(!1,!1), 2721F.resolve("Before you can continue you have to sign in.")):F.resolve(la._error)})},Ra=function(K,F=document.getElementById("priceApiFormModern")){var z=!0;F.querySelectorAll("input, select").forEach(g=>{if(g.getAttribute("type")!=="radio"){var m=g.getAttribute("name"),w=new RegExp(g.pattern);!g.required||g.value!=null&&g.value!=""&&g.value!="None"&&w.test(g.value)?(K[m]=g.value,g.style.border="",m=m!="billing-country"&&m!="billing-state"?"":"0px"):(g.style.border="2px s
2721olid tomato",m=m=="billing-country"|| 2722m=="billing-state"?"":"1px",z=!1);g.style.padding=m}});F=F.querySelector("#frmCountryS")?.querySelector("option:checked");DomUtil.data(F,"code")!=="US"&&(K["billing-state"]="");K["billing-business"]=!0;F?.getAttribute("rel")!=="1"&&(K["billing-vatId"]="");return z},Sa=function(K,F=!1){var z="priceApiFormInstance"+ ++ha;setTimeout(()=>{var M=document.querySelector("."+z);if(M){var na=M.querySelector("#frmCountryS"),U=(ra,Da)=>{if(ra=M.querySelector(ra))ra.value=Da},L=(ra=!1)=>{var Da=na?.querySelector("option:checked"), 2723Ea=Da?.getAttribute("rel")==="1",oa=M.querySelector("#frmVATS"),Ja=oa?oa.parentNode:null;Ea?(ra?DomUtil.show(Ja):window.keepaAnim.slideDown(Ja,{duration:500,complete:()=>{Ja&&(Ja.style.display="")}}),setTimeout(()=>{Ja&&Ja.MDCTextField&&Ja.MDCTextField.layout()},ra?100:550)):(ra?DomUtil.hide(Ja):window.keepaAnim.slideUp(Ja,{duration:500}),oa&&(oa.value=""));oa&&(oa.required=!1);(ra=M.querySelector("#frmNameS")?.nextElementSibling)&&ra.matches("label")&&(ra.textContent="Company");DomUtil.hide(M.querySelector("#vatIdErrors")); 2724Da=DomUtil.data(Da,"code")==="US";ra=M.querySelector("#frmStateS");Ea=M.querySelector("#formStateWrapper");Da?(ra&&(ra.disabled=!1,ra.required=!0),DomUtil.setStyles(Ea,{visibility:"visible"})):(ra&&(ra.value="",ra.disabled=!0,ra.required=!1),DomUtil.setStyles(Ea,{visibility:"hidden"}))};K!=null&&(K.billingContact!=null&&K.billingContact.length>0&&U("#frmNameS",K.billingContact),K.billingStreet!=null&&K.billingStreet.length>0&&U("#frmAddressS",K.billingStreet),K.billingCity!=null&&K.billingCity.length> 27250&&U("#frmCityS",K.billingCity),K.billingState!=null&&K.billingState.length>0&&U("#frmStateS",K.billingState),K.billingZipCode!=null&&K.billingZipCode.length>0&&U("#frmZipS",K.billingZipCode),K.billingCountry!=null&&K.billingCountry.length>0&&U("#frmCountryS",K.billingCountry),K.billingVatId!=null&&K.billingVatId.length>0&&U("#frmVATS",K.billingVatId),K.billingBusiness===!0&&(U=M.querySelector("#business-radio")))&&(U.checked=!0);material.init(M);ColorTip.attach(M.querySelectorAll(".sub_hint"),{color:"blue"}); 2726na?.addEventListener("change",()=>L(!1));L(!0)}},1);var g='<div style="width: 204px;"> '+material.getInput(!0,".*\\S{3,}.*","frmNameS","Company","billing name","billing-name","Required",!1,!0,"",K?K.billingContact:"")+"</div>",m='<div style="width: 348px;">'+material.getInput(!0,".*\\S{2,}.*","frmAddressS","Address","billing street-address","billing-address","Address is required",!1,!0,"",K?K.billingStreet:"")+"</div>",w='<div style="width: 156px;">'+material.getInput(!0,".*\\S{2,}.*","frmCityS", 2727"City","billing address-level2","billing-city","City is required",!1,!0,"",K?K.billingCity:"")+"</div>",I='<div style="width: 100px;">'+material.getInput(!0,".*\\S{2,}.*","frmZipS","Postal code","billing postal-code","billing-zip","Required",!1,!0,"",K?K.billingZipCode:"")+"</div>",S=[];for(var ma in SubscriptionUtil.statesUS)S.push({value:ma,label:ma});S=`<div id="formStateWrapper">${material.getSelect("frmStateS","billing-state",K?K.billingState:"",S,"State",!1,!0)}</div>`;ma=db(K?K.billingCountry: 2728"");var Q=material.getInput(!1,null,"frmVATS","VAT ID","billing vat-id","billing-vatId","e.g. DE999999999",!1,!1,"",K?K.billingVatId:""),l="";if(F){l=material.getButton("sendUpdatedBilling","Update invoice address","book");let M=material.getButton("cancelEditBilling","Cancel","ban",null,!1,!0);l=`<div class="card-row">${l}${M}</div>`}return`<div id="priceApiFormModern" class="${z}" style="width: 600px;${F?"":" margin-left: 30px;"}"> 2729 <form id="priceApiAddressForm" style="width: 600px;"> 2730 <div class="checkout-card"> 2731 <div class="card-header"> 2732 <div class="mdc-typography--subtitle2 billing-address-header" style="width:194px;">Billing Address</div> 2733 </div> 2734 <div class="card-row">${g}${m}</div> 2735 <div class="card-row">${ma}${w}${I}${S}</div> 2736 ${Q} 2737 <div id="vatIdErrors" style="display:none;"></div> 2738 ${l} 2739 </div> 2740 </form> 2741 </div> 2742 <div style="width:400px;height:300px;display:none;" id="loadingIconPopup"></div>`},db=K=>{var F="",z=[],g=[],m="US GB DE FR JP CA CN IT ES IN MX BR AU".split(" ");for(var w of m)g.push(W[w]);for(var I in W)z.push([W[I].name,W[I]]);z.sort((S,ma)=>S[0].localeCompare(ma[0]));for(let S in z)g.push(z[S][1]);z=!1;for(let S in g)w=g[S],(I=K===w.name&&!z)&&(z=!0),F+=`<option ${I?'selected="selected"':""} rel="${w.isEU?1:0}" data-code="${w.id}" value="${w.name}">${w.name}</option>`,Number(S)==m.length- 27431&&(F+="<option disabled>----------------</option>");return`<div class="mdc-select" style="width:204px;"> 2744 <select name="billing-country" required id="frmCountryS" autocomplete="billing country" class="mdc-select__native-control" style="font-size: 0.82rem; text-indent: 0;"> 2745 <option value="None"></option> 2746 ${F} 2747 </select> 2748 </div>`},eb=function(K,F,z,g,m,w){var I=Deferred();Z(I.promise());var S="",ma="";w>0&&(S=" + "+w+"% VAT",ma=`<div class="vatIdNotice"> 2749 <i class="fa fa-info-circle"></i> ${w}% VAT will be added (Reverse Charge not applicable). 2750 </div>`);var Q=N,l=Q?Q.vatSuggestion:null,M=!!(l&&l.street&&l.city);if(Q){var na=SubscriptionUtil.escapeHtml;ma+=`<div class="vatIdNotice"><i class="fa fa-info-circle"></i> ${Q.msgAdvisory}`;l&&(l.companyName||l.rawAddress)&&(ma+="<br><br><strong>Address registered for this VAT ID</strong><br>",l.companyName&&(ma+=na(l.companyName)+"<br>"),l.rawAddress&&(ma+=na(l.rawAddress).replace(/(?:\r\n|\r|\n)/g,"<br>")+"<br>"),M&&(ma+='<br><span class="href" id="vatUseRegisteredAddressReview">Go back and use the registered address</span>')); 2751ma+="</div>"}Q=document.querySelector('#priceApiFormModern select[name="billing-country"] option:checked')?.textContent??"";na=(L,ra)=>ra?`<div style="display: flex; margin-bottom: 8px;"> 2752 <div style="width: 150px; color: #666; font-weight: bold;">${L}:</div> 2753 <div style="flex: 1; color: #333;">${SubscriptionUtil.escapeHtml(ra)}</div> 2754 </div>`:"";ma='<div id="billingReviewModern" style="width: 600px; margin-left: 30px;"><div style="font-size: 16px; margin-bottom: 12px; font-weight: normal;
2754 color: #333;">Please review your Invoice Address</div>'+('<div style="padding: 15px; border: 1px solid #ddd; border-radius: 8px; background: #fafafa; font-size: 14px; margin-bottom: 20px;">'+na("Billing Type","Business")+na(m["billing-business"]===!0?"Company":"Full name",m["billing-name"])+na("Address",m["billing-address"])+na("City",m["billing-city"])+ 2755na("State",m["billing-state"])+na("Postal code",m["billing-zip"])+na("Country",Q)+na("VAT ID",m["billing-vatId"])+"</div></div>")+ma;Q='<div id="apiConsentRow" style="width: 600px; margin: 14px 0 0 20px;">'+material.getCheckbox("apiTerms2",la._1+' <a id="apiWithdrawalLink" class="href" style="cursor: alias !important;">'+la._158+"</a>",!1,!0,"apiTerms2")+"</div>";I.resolve(ma+Q+('<div class="flex" style="padding: 10px 0 0 0; margin-left: 30px; width: 600px; justify-content: space-between;"><span id="gcPay" style="width: 285px !important; display: inline-block;"><span style="font-size: 20px;">Yes,</span><br><span style="padding-left: 20px; display: inline-block;">I want to <span id="purchaseText">purchase</span> '+ 2756a.PayedServiceTypes.API.description+" with "+z+' for <span id="finalPrice">'+g+S+'</span> and I have read, understood and accept the <a class="href -api" style="cursor: alias !important;" rel="terms">Terms and Conditions</a>.</span></span><span id="gcChangeAccount" style="width: 285px !important; display: inline-block; margin-left: 0 !important;"><span style="font-size: 20px;">Abort,</span><br><span style="padding-left: 20px; display: inline-block;">I need to change something.</span></span></div>')); 2757setTimeout(()=>{document.getElementById("apiWithdrawalLink")?.addEventListener("click",L=>{L.preventDefault();L.stopPropagation();network.ajax(SubscriptionUtil.withdrawalUrl()).done(ra=>{showPopPopup(la._158,'<div id="printWithdrawal" style="cursor: pointer; z-index: 1; position: absolute; right: 50px;top: 10px;"><i class="fa fa-print"></i></div><div style="max-width: 900px; margin-bottom: 14px; padding: 10px 14px; background: #f5f7f9; border-left: 4px solid #10314f;"><strong>Keepa supplies digital content, and delivery begins immediately when you subscribe.</strong> If you give the consent requested at checkout, your right of withdrawal expires at that moment — see “Premature expiry of the right of withdrawal” below.</div><div id="withdrawalDoc" style="padding-right: 20px; text-align:justify; max-width: 900px;height:'+ 2758(window.innerHeight-200)+'px;overflow-y: auto;">'+ra+"</div>",!0);document.getElementById("printWithdrawal")?.addEventListener("click",()=>printTermsDocument(la._158,"withdrawalDoc"))}).fail(()=>reportBug("apiWithdrawal"))})},0);M&&setTimeout(()=>{document.getElementById("vatUseRegisteredAddressReview")?.addEventListener("click",function(){N=null;H<=1||ca();setTimeout(()=>{SubscriptionUtil.applyRegisteredAddress(l,document.getElementById("priceApiFormModern"));DomUtil.hide(document.getElementById("vatIdErrors"))}, 2759300)})},0);DomUtil.hide(document.getElementById("planOptions"));var U=!1;document.getElementById("gcPay")?.addEventListener("click",function(L){if((L.target instanceof Element?L.target.getAttribute("rel"):null)=="terms")sa(),L.stopImmediatePropagation(),L.preventDefault();
2759else if((L=document.getElementById("apiTerms2-checkbox"))&&!L.checked)L.reportValidity?L.reportValidity():L.focus();else if(!U){U=!0;var ra={payedService:K,paymentProvider:"CreditCard",billingContact:m["billing-name"],billingStreet:m["billing-address"], 2760billingCity:m["billing-city"],billingZipCode:m["billing-zip"],billingState:m["billing-state"],billingCountry:m["billing-country"],billingCountryId:m["billing-country-id"],billingBusiness:m["billing-business"],billingVatId:m["billing-vatId"].replace(/[-,;_:#.\s]/g,""),noVatIdConfirmed:DomUtil.data(document.getElementById("priceApiAddressForm"),"noVatConfirmed")===!0,termsVersion:SubscriptionUtil.TERMS_VERSION,termsAccepted:!0,withdrawalConsent:document.getElementById("apiTerms2-checkbox")?.checked=== 2761!0,consentLocale:languageName},Da=function(){var Ea=document.getElementById("billingReviewModern")?.parentNode;Ea&&(Ea.innerHTML='<div id="loadingIcon"></div>');DomUtil.show(document.getElementById("loadingIcon"));DomUtil.hide(document.getElementById("backButton"));network.request({path:"service/stripe",type:"subscription",content:JSON.stringify(ra),dashboard:"api"}).done(function(oa){console.info("payment 9a...");var Ja=ya=>{var za=material.getButton("closePopup","Attempt payment again","credit-card", 2762null,!1,!1),cb='<section><span class"tomato">Your credit card could not be charged. '+(ya.errorMsg!=null?ya.errorMsg:"")+"</span></section>";ya.code>=300&&(cb='<div><span class"tomato">'+(ya.errorMsg?ya.errorMsg:"")+"</span></div>");Ea&&(Ea.innerHTML=`${cb}<br><div>${za}</div>`);document.getElementById("closePopup")?.addEventListener("click",function(fb){fb.preventDefault();ya.url!=null?(window.open(ya.url),priceDataAPI.init(),document.location.reload()):priceDataAPI.init()})},Ha=()=>{Ea&&(Ea.innerHTML= 2763'<div>Thank you for your purchase!<br><br>Once we have processed the payment your API access will be activated.</div><br><br><span class="button" id="openDash">Open your dashboard</span>');document.getElementById("openDash")?.addEventListener("click",function(ya){priceDataAPI.init()})};if(oa.code>=300||oa.errorMsg!=null)Ja(oa);else if(oa.paymentIntent==null)Ha();else switch(oa.paymentIntent.status){case "succeeded":Ha();break;case "requires_payment_method":Ja(oa);break;case "requires_action":console.info("payment 11..."), 2764StripeAPI.loadStripe("pk_live_d8cHyZoVVZdRXDvnxSmuoQTM").done(async function(ya){({error:ya}=await ya.handleNextAction({clientSecret:oa.paymentIntent.clientSecret}));console.info("payment 12...");ya?(oa.errorMsg=ya.message,Ja(oa)):Ha()}).fail(()=>{showErrorPopup()})}}).fail(oa=>{oa.url&&oa.url.length>0?window.location.href=oa.url:Ea&&(Ea.innerHTML=oa.errorMsg?oa.errorMsg:la._error)})};V(a.PayedServiceVariants[F.variant].price*(1+w/100),ra).done(function(Ea){Da()}).fail(Ea=>{setTimeout(()=>{showPopup("Payment issue", 2765Ea,!0)},300)}).always(()=>{U=!1})}});document.getElementById("gcChangeAccount")?.addEventListener("click",function(){H<=1||ca()})},sa=()=>{var K=Deferred();network.ajax(SubscriptionUtil.termsUrl()).done(function(F){K.resolve('<div id="printTerms" style="float: right; cursor: pointer; position: relative; z-index: 1;"><i class="fa fa-print"></i> Print Terms</div><div id="termsAPI" style="text-align:justify;">'+F+"</div>");Z(K.promise());document.getElementById("printTerms")?.addEventListener("click", 2766()=>printTermsDocument("Terms and Conditions for Keepa.com","termsAPI"))}).fail(()=>{K.resolve("<div>"+la._error+"</div>");Z(K.promise());reportBug("pTerms")})},Qa=(K,F)=>{var z=a.PayedService[K];replaceHtml("pricingPlansUpdate",'<div id="loadingIconPopup"></div>');DomUtil.show(document.getElementById("loadingIconPopup"));network.request({path:"service/stripe",type:"upcomingInvoice",subscriptionId:F,subscriptionPlan:K,dashboard:"api"}).done(function(g){var m=g.invoices;if(m==null||m[0]==null||m[0].length== 27670)showErrorPopup();else{m=m[0];var w=0,I=0,S=g="";for(var ma=0;ma<m.lines.data.length;ma++){var Q=m.lines.data[ma];Q.subscription&&Q.subscription.id===F&&Q.type==="invoiceitem"&&(Q.amount<0?(g=Q.description,w=-1*Q.amount):(S=Q.description,I=Q.amount))}ma=Number(m.startingBalance||0);ma=ma<0?-ma:0;var l=Number(m.amountDue||0),M=l>0,na=l>0&&l<50,U=-w+I;m=U<0?-U:0;Q=(fb,pb={})=>Money.format(fb,{sourceDomainId:3,targetDomainId:3,forceEuropeanStyle:!0,...pb});w=Q(w);var L=Q(I);U=Q(Math.abs(U));var ra= 2768Q(ma);l=Q(l);var Da=a.PayedServiceVariants[z.variant];var Ea=a.PayedServiceTypes.API,oa=Number(Da.variant),Ja=Money.format(Da.price,{sourceDomainId:3,targetDomainId:3,noDigits:!0,forceEuropeanStyle:!0}).replace(/\.|,/g,""),Ha=NumberUtil.format(oa*60*24*31),ya=100*(1-Da.price/(Ea.pricePerRequest*oa)),za=NumberUtil.format(ya);ya=ya>0&&za!=0?`<div class="savings-pill">save ${za}%</div>`:"";za="";showReferencePrice(3)&&(za=`<div class="price-ref">(~ ${Money.format(Da.price,{sourceDomainId:3})} / <span title="${Ea.subscriptionDurationDescription}">month</span>)</div>`); 2769Da=` 2770 <div class="pricing-card-preview" style="margin: 0 0 24px 30px;"> 2771 <div class="card-header-accent"> 2772 <div class="plan-title">Keepa API Plan</div> 2773 <div class="plan-tokens">${NumberUtil.format(oa)} ${Ea.variantDescription}</div> 2774 <div class="plan-tokens-desc">≡ ${Ha} tokens / month</div> 2775 </div> 2776 <div class="card-body"> 2777 <div class="price-container"> 2778 <span class="plan-price"> ${Ja} / <span title="${Ea.subscriptionDurationDescription}">month</span></span> 2779 ${za} 2780 </div> 2781 <div class="savings-container">${ya}</div> 2782 </div> 2783 </div>`;Q=Q(a.PayedServiceVariants[z.variant].price,{noDigits:!0});g='<div><span style="margin-left: 30px;">You are about to change your current subscription.</span><span><ul style="line-height: 20px; color: #000; margin: 20px 20px 20px 50px;text-indent: -1.4em;"><li>• The new plan will replace your old one immediately after we have received payment.</li><li>• You can upgrade your plan as often as you want, but a downgrade is only possible once per month.</li><li>• Refund: '+ 2784w+(g?" - "+g:"")+"</li><li>• Prorated charge: "+L+(S?" - "+S:"")+"</li>"+(ma>0?"<li>• Existing account credit: "+ra+"</li>":"")+(m>0?"<li>• You will receive a new credit of: "+U+". This credit will be applied to future billing cycles.</li>":M?"<li>• Immediate amount due"+(ma>0&&M?" (after credit)":"")+": "+l+"</li>"+(na?'<li>• <span style="color: #ec553a; font-weight: bold;">The upgrade amount of '+l+" is below the payment provider minimum of \u20ac0.50. Please perform this upgrade after your next renewal.</sp
2784an></li>": 2785""):"<li>• No immediate payment due. Your credit covers this change.</li>")+"<li>• New monthly subscription cost: "+Q+"</li></ul></span></div>";S=M?" Your credit card will be charged immediately with "+l+".":"";ma='<div id="apiConsentRowUpd" style="max-width: 640px; margin: 14px 0 0 30px;">'+material.getCheckbox("apiTerms2Upd",la._1+' <a id="apiWithdrawalLinkUpd" class="href" style="cursor: alias !important;">'+la._158+"</a>",!1,!0,"apiTerms2Upd")+"</div>";replaceHtml("pricingPlansUpdate", 2786"<div>Your new plan:</div><br>"+Da+g+ma+('<div style="padding: 10px 0px 0 80px;" class="flex"><span id="gcPay" style="width: 300px; display: inline-block;'+(na?" opacity: 0.5; cursor: not-allowed;":"")+'"><span style="font-size: 20px;">Yes,</span><br><span style="padding-left: 20px; display: inline-block;">I want to <span id="purchaseText">update my subscription</span>.'+S+' I have read, understood and accept the <a class="href -api" style="cursor: alias !important;" rel="terms">Terms and Conditions</a>.</span></span><span id="gcAbort" style="width: 300px; display: inline-block; margin-left: 30px;"><span style="font-size: 20px;">Abort,</span><br><span style="padding-left: 20px; display: inline-block;">I need to change something.</span></span></div>')); 2787document.getElementById("apiWithdrawalLinkUpd")?.addEventListener("click",fb=>{fb.preventDefault();fb.stopPropagation();network.ajax(SubscriptionUtil.withdrawalUrl()).done(pb=>{showPopPopup(la._158,'<div id="printWithdrawal" style="cursor: pointer; z-index: 1; position: absolute; right: 50px;top: 10px;"><i class="fa fa-print"></i></div><div style="max-width: 900px; margin-bottom: 14px; padding: 10px 14px; background: #f5f7f9; border-left: 4px solid #10314f;"><strong>Keepa supplies digital content, and delivery begins immediately when you subscribe.</strong> If you give the consent requested at checkout, your right of withdrawal expires at that moment — see “Premature expiry of the right of withdrawal” below.</div><div id="withdrawalDoc" style="padding-right: 20px; text-align:justify; max-width: 900px;height:'+ 2788(window.innerHeight-200)+'px;overflow-y: auto;">'+pb+"</div>",!0);document.getElementById("printWithdrawal")?.addEventListener("click",()=>printTermsDocument(la._158,"withdrawalDoc"))}).fail(()=>reportBug("apiWithdrawalUpd"))});document.getElementById("pricingPlansUpdate")?.querySelectorAll(".gcContainer").forEach(fb=>DomUtil.setStyles(fb,{cursor:"default"}));document.querySelector("#pricingPlansUpdate #gcAbort")?.addEventListener("click",function(){Ga()});var cb=!1;document.querySelector("#pricingPlansUpdate #gcPay")?.addEventListener("click", 2789function(){if(!na){var fb=document.getElementById("apiTerms2Upd-checkbox");if(fb&&!fb.checked)fb.reportValidity?fb.reportValidity():fb.focus();else if(F!=null&&F.length>9&&!cb){cb=!0;D.payedService=K;D.termsVersion=SubscriptionUtil.TERMS_VERSION;D.termsAccepted=!0;D.withdrawalConsent=document.getElementById("apiTerms2Upd-checkbox")?.checked===!0;D.consentLocale=languageName;var pb=function(ob){replaceHtml("pricingPlansUpdate",'<div id="loadingIcon"></div>');DomUtil.show(document.getElementById("loadingIcon")); 2790network.request({path:"service/stripe",type:"subscription",content:JSON.stringify(D),subscriptionId:F,dashboard:"api"}).done(function(ub){console.info("payment 9g...");var Rb=va=>{var Ma=va.url!=null,y=material.getButton("closePopup",Ma?"Complete payment":"Attempt payment again","credit-card",null,!1,!1),R='<section><span class"tomato">Your payment method could not be charged. '+(va.errorMsg!=null?va.errorMsg:"")+"</span></section>";va.code>=300&&(R='<div><span class"tomato">'+(va.errorMsg?va.errorMsg: 2791"")+"</span></div>");Ma&&(R+="<section>Your plan change is saved and waiting for payment. You can complete or cancel it from your dashboard at any time.</section>");replaceHtml("pricingPlansUpdate",`${R}<br><div>${y}</div>`);document.getElementById("closePopup")?.addEventListener("click",function(qa){qa.preventDefault();va.url!=null&&window.open(va.url);priceDataAPI.init()})},T=()=>{replaceHtml("pricingPlansUpdate",'<div>Thank you for your purchase!<br><br>After processing your payment your API access will be updated. <strong>This may take a few minutes.</strong></div><br><br><span class="button" id="openDash">Open your dashboard</span>'); 2792document.getElementById("openDash")?.addEventListener("click",function(va){priceDataAPI.init()})};if(ub.code>=300||ub.errorMsg!=null)Rb(ub);else{if(ub.paymentIntent==null)T();else switch(ub.paymentIntent.status){case "succeeded":T();break;case "requires_payment_method":Rb(ub);break;case "requires_action":console.info("payment 10..."),StripeAPI.loadStripe("pk_live_d8cHyZoVVZdRXDvnxSmuoQTM").done(async function(va){({error:va}=await va.handleNextAction({clientSecret:ub.paymentIntent.clientSecret})); 2793console.info("payment 12...");va?(ub.errorMsg=va.message,Rb(ub)):T()}).fail(()=>{showErrorPopup()})}cb=!1}}).fail(ub=>{ub&&ub.url&&ub.url.length>0?window.location.href=ub.url:(priceDataAPI.init(),setTimeout(()=>showErrorPopup(ub&&ub.errorMsg?ub.errorMsg:null),300))})};if(M){if(D.billingCountryId==null&&D.billingCountry!=null)for(let ob in W)if(W[ob].name===D.billingCountry){D.billingCountryId=ob;break}V(I,D).done(function(ob){pb(null)}).fail(ob=>{setTimeout(()=>{showPopup("Payment issue",ob,!0)}, 2794300)}).always(()=>{cb=!1})}else pb(null)}}})}}).fail(function(){showErrorPopup()})},Ta=(K,F,z)=>{var g=Ba(),m=g.filter(l=>l.changeable);if(m.length===0)z();else{var w=a.PayedServiceTypes.API.variantDescription,I=g.reduce((l,M)=>l+(M.variant||0),0),S=g.reduce((l,M)=>l+(Number(M.net)||0),0),ma=m.length===1&&g.length===1?m[0]:null;m=ma!=null?`Moving your existing plan to <strong>${NumberUtil.format(K.variant)} ${w}</strong> instead keeps you on one subscription and one invoice, and costs only the prorated difference for the rest of this month.`: 2795"Changing one of your existing plans instead keeps the number of subscriptions the same and costs only the prorated difference for the rest of this month.";K=`<div class="separate-sub-confirm"> 2796 <p>You already have <strong>${NumberUtil.format(I)} ${w}</strong> for ${fa(S)} / month. Buying this plan does not replace that — you would have ${g.length+1} subscriptions:</p> 2797 <div class="separate-sub-confirm__total"> 2798 <strong>${NumberUtil.format(I+K.variant)} ${w}</strong> for <strong>${fa(S+(Number(K.price)||0))} / month</strong>
2799 </div> 2800 <p>${m}</p> 2801 <div class="separate-sub-confirm__actions"> 2802 <span class="card-action -primary" id="confirmChangeInstead"><i class="fa fa-exchange"></i>${ma!=null?"Change my existing plan":"Change an existing plan"}</span> 2803 <span class="card-action" id="confirmAddSeparate"><i class="fa fa-plus"></i>Add a separate subscription</span> 2804 </div> 2805 </div>`;var Q=showPopup("Add a second subscription?",K,!0);document.getElementById("confirmChangeInstead")?.addEventListener("click",function(){Q.close();ma!=null?ba(ma.subscription):e(F)});document.getElementById("confirmAddSeparate")?.addEventListener("click",function(){Q.close();z()})}},ba=K=>{K!=null&&(storage.email&&storage.email.indexOf("@")!=-1&&settings.isEmailVerified?(D=K,document.querySelectorAll(".panels.appsContent").forEach(DomUtil.hide),document.querySelectorAll(".dynamic-toolbar").forEach(DomUtil.hide), 2806setTimeout(()=>{var F=document.getElementById("pricingPlansUpdate");F&&(F.setAttribute("style",""),keepaAnim.fadeIn(F,{duration:250}),F.setAttribute("rel","active"))},100),x("#pricingPlansUpdate",!0,K.subscriptionId)):showPopup("Change plan",`<div>${la._428}</div>`,!0))},e=K=>{var F=Ba();if(F.length===0)x(K,!1);else{var z=F.map(w=>{var I=w.variant!=null?`${NumberUtil.format(w.variant)} ${a.PayedServiceTypes.API.variantDescription}`:"legacy plan",S=w.changeable?`<span class="card-action -primary planIntentChange" data-subscription="${w.subscriptionId}"><i class="fa fa-exchange"></i>Change this plan</span>`: 2807`<span class="card-action -disabled" title="${SubscriptionUtil.escapeHtml(w.blockedReason)}"><i class="fa fa-exchange"></i>Change this plan</span>`;return`<div class="plan-intent__sub"> 2808 <div> 2809 <div class="plan-intent__sub-name">${w.productName}</div> 2810 <div class="plan-intent__sub-meta">${I} · ${fa(w.net)} / month</div> 2811 </div> 2812 ${S} 2813 </div>`}).join(""),g=F.reduce((w,I)=>w+(I.variant||0),0),m=document.querySelector(K);m&&(m.innerHTML=` 2814 <div class="plan-intent"> 2815 <div class="plan-intent__title">You already have an API subscription</div> 2816 <p class="plan-intent__lead">Both options raise your token rate, but they are not the same purchase. Which one do you mean?</p> 2817 2818 <div class="plan-intent__option -recommended"> 2819 <div class="plan-intent__option-head"> 2820 <span class="plan-intent__option-title">Change an existing plan</span> 2821 <span class="plan-intent__badge">Most people want this</span> 2822 </div> 2823 <p class="plan-intent__option-desc">Moves your current subscription to another tier. Its token rate is <strong>replaced</strong>, not added to, you keep one subscription and one invoice, and you only pay the prorated difference for the rest of the month. An upgrade takes effect immediately.</p> 2824 ${z} 2825 </div> 2826 2827 <div class="plan-intent__option"> 2828 <div class="plan-intent__option-head"> 2829 <span class="plan-intent__option-title">Add a second, separate subscription</span> 2830 </div> 2831 <p class="plan-intent__option-desc">Keeps your current plan and runs a new one <strong>alongside</strong> it${g>0?` — the token rates add up on top of your current ${NumberUtil.format(g)} ${a.PayedServiceTypes.API.variantDescription}`:""}, and each subscription is billed separately. Useful for a separate team or billing entity, or to go beyond the largest single plan.</p> 2832 <span class="card-action planIntentAdd"><i class="fa fa-plus"></i>Add a separate plan</span> 2833 </div> 2834 </div> 2835 `,m.querySelectorAll(".planIntentChange").forEach(w=>w.addEventListener("click",function(){var I=DomUtil.data(this,"subscription"),S=F.find(ma=>ma.subscriptionId==I);S==null?reportBug("not found subscription"):ba(S.subscription)})),m.querySelectorAll(".planIntentAdd").forEach(w=>w.addEventListener("click",function(){x(K,!1,null,()=>e(K))})))}},x=(K,F,z,g)=>{var m=[];for(var w in a.PayedService){var I=a.PayedService[w];if(I.type=="API"&&I.variant.endsWith("_")){I=a.PayedServiceVariants[I.variant]; 2836var S=a.PayedServiceTypes.API;m.push({id:w,variant:Number(I.variant),price:I.price,variantDescription:S.variantDescription,subscriptionDurationDescription:S.subscriptionDurationDescription,variantData:I,apiData:S})}}m.sort((Ha,ya)=>Ha.variant-ya.variant);var ma=null;F&&D&&(ma=Number(a.PayedServiceVariants[a.PayedService[D.payedService].variant].variant));var Q=F?[]:Ba(),l=Q.reduce((Ha,ya)=>Ha+(ya.variant||0),0),M=Q.reduce((Ha,ya)=>Ha+(Number(ya.net)||0),0),na=Q.filter(Ha=>Ha.changeable);w=Q.length=== 28371&&Q[0].variant!=null?Q[0]:null;var U=F?ma:w!=null?w.variant:null;if(m.length===0){if(w=document.querySelector(K))w.innerHTML='<div style="text-align:center; padding: 20px;">No other plans are available for upgrade/downgrade right now.</div>'}else{w=0;if(F&&ma!==null)I=m.findIndex(Ha=>Ha.variant===ma),I!==-1&&(w=I);else for(w=0,I=Infinity,S=0;S<m.length;S++){let Ha=Math.abs(m[S].variant-20);Ha<I&&(I=Ha,w=S)}I="";F?(I="",D&&(I=Money.format(D.net,{sourceDomainId:3,targetDomainId:3,forceEuropeanStyle:!0,
2838noDigits:!0}),S=ma!==null?`${NumberUtil.format(ma)} ${a.PayedServiceTypes.API.variantDescription}`:"",I=`<div class="pricing-slider-current"> 2839 <span class="pricing-slider-current__label">Subscription you are changing</span> 2840 <strong>${D.productName}</strong>${S?` – ${S}`:""} – ${I} / month 2841 </div>`),I=`<div class="pricing-slider-intro"> 2842 <div class="pricing-slider-actions"> 2843 <span class="card-action pricingSliderCancel"><i class="fa fa-arrow-left"></i>Keep current plan</span> 2844 </div> 2845 <div class="pricing-slider-title">Change your API plan</div> 2846 <p class="pricing-slider-lead">Pick the plan you want to move to. The new plan takes effect immediately and the subscription fee is prorated, so you only pay the difference for the remainder of the current billing period.</p> 2847 ${I} 2848 </div>`):I=Q.length>0?`<div class="pricing-slider-intro"> 2849 ${g?'<div class="pricing-slider-actions">\n\t\t\t\t\t\t<span class="card-action pricingSliderBack"><i class="fa fa-arrow-left"></i>Back to my options</span>\n\t\t\t\t\t</div>':""} 2850 <div class="pricing-slider-title">Add a second subscription</div> 2851 <p class="pricing-slider-lead">This does not change the plan you already have. The plan you pick here runs alongside it as a separate subscription with its own invoice, and the token rates add up.</p> 2852 <div class="pricing-slider-current"> 2853 <span class="pricing-slider-current__label">What you have today</span> 2854 <strong>${NumberUtil.format(l)} ${a.PayedServiceTypes.API.variantDescription}</strong> – ${fa(M)} / month across ${Q.length===1?"one subscription":Q.length+" subscriptions"} 2855 </div> 2856 </div>`:'<div class="pricing-slider-intro">\n\t\t\t\t\t<div class="pricing-slider-title">Choose your plan</div>\n\t\t\t\t\t<p class="pricing-slider-lead">Every plan generates tokens continuously, around the clock. Pick the token rate that fits your usage — you can move to another plan at any time.</p>\n\t\t\t\t</div>';I=` 2857 <div class="pricing-slider-container"> 2858 ${I} 2859 2860 <div class="pricing-slider-picker"> 2861 <div class="pricing-presets"> 2862 <button class="preset-btn" data-tokens="20">Starter (20)</button> 2863 <button class="preset-btn" data-tokens="250">Developer (250)</button> 2864 <button class="preset-btn" data-tokens="2000">Business (2K)</button> 2865 <button class="preset-btn" data-tokens="10000">Enterprise (10K)</button> 2866 </div> 2867 2868 <div class="pricing-helper-text">Need something in between? Drag the slider or click the ticks between the preset tiers to customize your plan.</div> 2869 2870 <div class="slider-wrapper"> 2871 <input type="range" class="pricing-range-slider" min="0" max="${m.length-1}" value="${w}" step="1"> 2872 <div class="slider-ticks"> 2873 ${(()=>m.map((Ha,ya)=>{var za="";Ha.variant===20?za="Starter":Ha.variant===250?za="Developer":Ha.variant===2E3?za="Business":Ha.variant===1E4?za="Enterprise":U!==null&&Ha.variant===U?za=NumberUtil.format(Ha.variant):m.length<10&&(za=NumberUtil.format(Ha.variant));var cb=ya/(m.length-1)*100,fb="tick-mark";U!==null&&Ha.variant===U&&(fb+=" current-plan",za+=F?" (Current)":" (Yours)");return`<span class="${fb}" data-index="${ya}" style="${`left: calc(15px + ${cb}% - ${cb/100*30}px);`}"> 2874 <div class="tick-line"></div> 2875 <div class="tick-label">${za}</div> 2876 </span>`}).join(""))()} 2877 </div> 2878 </div> 2879 </div> 2880 2881 <div class="pricing-card-preview"> 2882 <div class="card-header-accent"> 2883 <div class="plan-status-badge"></div> 2884 <div class="plan-title">Keepa API Plan</div> 2885 <div class="plan-tokens"></div> 2886 <div class="plan-tokens-desc"></div> 2887 </div> 2888 <div class="card-body"> 2889 <div class="price-container"> 2890 <span class="plan-price"></span> 2891 <div class="price-ref"></div> 2892 </div> 2893 <div class="savings-container"> 2894 <div class="savings-pill"></div> 2895 </div> 2896 <div class="monthly-total"></div> 2897 <div class="downgrade-warning"></div> 2898 <div class="plan-outcome"></div> 2899 <button class="plan-action-btn"></button> 2900 </div>
2901 </div> 2902 </div> 2903 `;if(S=document.querySelector(K)){S.innerHTML=I;var L=S.querySelector(".pricing-range-slider"),ra=S.querySelector(".pricing-card-preview"),Da=S.querySelectorAll(".preset-btn"),Ea=S.querySelectorAll(".tick-mark");S.querySelectorAll(".pricingSliderCancel").forEach(Ha=>Ha.addEventListener("click",function(){Ga()}));S.querySelectorAll(".pricingSliderBack").forEach(Ha=>Ha.addEventListener("click",function(){g()}));var oa=null,Ja=Ha=>{var ya=m[Ha];if(ya){var za=ra?ra.querySelector(".plan-tokens"):null; 2904za&&(za.textContent=NumberUtil.format(ya.variant)+" "+ya.variantDescription);if(za=ra?ra.querySelector(".plan-tokens-desc"):null)za.innerHTML=`≡ ${NumberUtil.format(ya.variant*60*24*31)} tokens / month`;za=Money.format(ya.price,{sourceDomainId:3,targetDomainId:3,noDigits:!0,forceEuropeanStyle:!0}).replace(/\.|,/g,"");var cb=ra?ra.querySelector(".plan-price"):null;cb&&(cb.innerHTML=` ${za} / <span title="${ya.subscriptionDurationDescription}">month</span>`);za=ra?ra.querySelector(".price-ref"): 2905null;showReferencePrice(3)?(za&&(za.innerHTML=`(~ ${Money.format(ya.price,{sourceDomainId:3})} / <span title="${ya.subscriptionDurationDescription}">month</span>)`),DomUtil.show(za)):DomUtil.hide(za);za=100*(1-ya.price/(ya.apiData.pricePerRequest*ya.variant));cb=NumberUtil.format(za);var fb=ra?ra.querySelector(".savings-pill"):null;za>0&&cb!=0?(fb&&(fb.textContent="save "+cb+"%"),DomUtil.show(fb)):DomUtil.hide(fb);if(za=ra?ra.querySelector(".monthly-total"):null)za.innerHTML="Flexible prepaid subscription, cancel any time."; 2906cb=fb="";za=F?"Select this plan":Q.length>0?"Add as a separate subscription":"Subscribe to this plan";var pb=!1;F&&ma!==null&&(za=Date.now()-P<24192E5,ya.variant===ma?(fb='<span class="plan-status-badge badge-current">Current Plan</span>',za="Current Plan",pb=!0):ya.variant<ma?za?(fb='<span class="plan-status-badge badge-locked">Downgrade Locked</span>',cb="You can only downgrade once per 30 days. You cannot downgrade again.",za="Downgrade locked",pb=!0):(fb='<span class="plan-status-badge badge-downgrade">Downgrade</span>', 2907za="Downgrade to this plan"):(fb='<span class="plan-status-badge badge-upgrade">Upgrade</span>',za="Upgrade to this plan"));var ob=ra?ra.querySelector(".plan-status-badge"):null;fb?(ob&&(ob.innerHTML=fb),DomUtil.show(ob)):(DomUtil.hide(ob),ob&&(ob.innerHTML=""));fb=ra?ra.querySelector(".downgrade-warning"):null;cb?(fb&&(fb.textContent=cb),DomUtil.show(fb)):(DomUtil.hide(fb),fb&&(fb.innerHTML=""));cb=ra?ra.querySelector(".plan-outcome"):null;if(!F&&Q.length>0){fb=l+ya.variant;ob=M+(Number(ya.price)|| 29080);let ub=ya.variantDescription;cb&&(cb.innerHTML=`<div class="plan-outcome__label">After this purchase</div> 2909 <div class="plan-outcome__row"><span>Current subscription${Q.length===1?"":"s"}</span><span>${NumberUtil.format(l)} ${ub} · ${fa(M)}</span></div> 2910 <div class="plan-outcome__row"><span>This new subscription</span><span>+ ${NumberUtil.format(ya.variant)} ${ub} · + ${fa(ya.price)}</span></div> 2911 <div class="plan-outcome__row -total"><span>Total</span><span>${NumberUtil.format(fb)} ${ub} · ${fa(ob)}</span></div> 2912 <div class="plan-outcome__note">${Q.length+1} separate subscriptions, billed separately</div>`);DomUtil.show(cb)}else DomUtil.hide(cb),cb&&(cb.innerHTML="");if(cb=ra?ra.querySelector(".plan-action-btn"):null)cb.textContent=za,cb.disabled=pb,cb.classList.toggle("disabled",pb);oa?.abort();oa=new AbortController;cb?.addEventListener("click",ub=>{ub.preventDefault();pb||(F?Qa(ya.id,z):storage.accountType==0?showPopup("Registration mandatory","Before you can subscribe to our API you have to register a Keepa account.<br><br>Please click the 'Register' link in the top menu to do so.", 2913!0):na.length>0?Ta(ya,K,()=>bb(ya.id)):bb(ya.id))},{signal:oa.signal});Ea.forEach(ub=>ub.classList.toggle("active",ub.matches(`[data-index="${Ha}"]`)));Da.forEach(ub=>{ub.classList.remove("active");ya.variant===Number(DomUtil.data(ub,"tokens"))&&ub.classList.add("active")})}};["input","change"].forEach(Ha=>L?.addEventListener(Ha,function(){Ja(Number(this.value))}));
2913Da.forEach(Ha=>Ha.addEventListener("click",function(ya){ya.preventDefault();ya=Number(DomUtil.data(this,"tokens"));var za=0,cb=Infinity; 2914for(let fb=0;fb<m.length;fb++){let pb=Math.abs(m[fb].variant-ya);pb<cb&&(cb=pb,za=fb)}L&&(L.value=za);Ja(za)}));S.querySelectorAll(".slider-ticks").forEach(Ha=>Ha.addEventListener("click",function(ya){var za=this.getBoundingClientRect(),cb=za.width-30;ya=Math.round(Math.max(0,Math.min(cb,ya.clientX-za.left-15))/cb*(m.length-1));L&&(L.value=ya);Ja(ya)}));Ja(w)}}},v=function(K,F,z){return'<span class="gcContainer" rel="'+K+'"><span class="gcLabel" style="margin-left: 3px;">Keepa API Plan</span><span class="gcValue">'+ 2915z.description+'<div style="line-height: 13px;font-size: 11px;bottom: 6px;position: relative; text-align: center;">'+z.variantDescription+'<br><span style="color: #C3C3C3;"> </span></div></span><span class="triangle"></span><span class="gcLabel" ></span><span class="gcRebate"><span class="gcPrice"> '+Money.format(F.price,{sourceDomainId:3,targetDomainId:3,noDigits:!0,forceEuropeanStyle:!0})+' / <span title="'+z.subscriptionDurationDescription+'">month</span></span></span></span>'},C=null, 2916A=()=>{C?.abort();C=new AbortController;var K=C.signal;document.querySelectorAll(".appsContent").forEach(F=>F.addEventListener("click",function(z){switch(z.target instanceof Element?z.target.getAttribute("rel"):null){case "terms":sa(),z.stopImmediatePropagation(),z.preventDefault()}},{signal:K}));document.getElementById("backButton")?.addEventListener("click",function(){H<=1||ca()},{signal:K})},H=1,Z=function(K){var F=H+1;replaceHtml("GCBTab"+F,"");DomUtil.show(document.getElementById("loadingIcon")); 2917var z=document.getElementById("GCBTab"+(F-1));DomUtil.hide(z);H++;var g=()=>{var m=document.getElementById("GCBTab"+F);keepaAnim.fadeIn(m?.parentNode);keepaAnim.fadeIn(m)};K.progress(function(m){replaceHtml("GCBTab"+F,m);g()});K.done(function(m){DomUtil.hide(document.getElementById("loadingIcon"));replaceHtml("GCBTab"+F,m);g();A();material.init("#GCBTab"+F);DomUtil.height(document.getElementById("tabContentIFrame"))}).fail(()=>{DomUtil.hide(document.getElementById("loadingIcon"));H<=1||ca()})},ca= 2918()=>{var K=document.getElementById("GCBTab"+(H-1));H==2&&DomUtil.hide(document.getElementById("GCBTab2")?.parentNode);DomUtil.hide(document.getElementById("GCBTab"+H));keepaAnim.fadeIn(K);H--;DomUtil.height(document.getElementById("tabContentIFrame"))};return{init:Ga}})();const SettingsNotification=(()=>{var a={get saveEmail(){return'<span id="saveEmail" class="card-action js-email-save" style="display: none;"><i class="fa fa-floppy-o"></i>'+la._1176+"</span> "},loading:'<i class="fa fa-refresh fa-rotate-90 fa-spin fa-fw fw-lg"></i> ',toggleOn:'<i class="channel-toggle fa fa-toggle-on fa-fw fa-lg"></i>',toggleOff:'<i class="channel-toggle fa fa-toggle-off fa-fw fa-lg"></i>'},b=ta=>ta===1?[6]:ta===2?[3,3]:ta===4?[3,3,3,3]:ta===5?[3,3,3,3,6]:Array(ta).fill(2), 2919c={},d=20,f=!1,k=(ta,ea)=>{var Fa=document.querySelector(ta),bb=document.querySelector(ea);if(Fa){Fa.emailEditorAbort&&Fa.emailEditorAbort.abort();ta=new AbortController;Fa.emailEditorAbort=ta;ta=ta.signal;var Ra=()=>{var Sa=bb&&bb.nextElementSibling;Sa&&Sa.classList.contains("channel-error")&&Sa.remove()};Fa.addEventListener("input",function(){DomUtil.show(bb);Ra()},{signal:ta});Fa.addEventListener("focusout",function(){var Sa=Fa.value,db=Sa.trim();Sa===storage.email||db===""&&typeof storage.email=== 2920"undefined"?DomUtil.hide(bb):db===""?DomUtil.show(bb):(Ra(),verifyRegExp.email.test(db)?DomUtil.show(bb):(DomUtil.hide(bb),bb?.insertAdjacentHTML("afterend",'<span class="channel-error">'+la._49+"</span>")))},{signal:ta});bb?.addEventListener("click",()=>{if(isTest||isSocialAccount)t(null,Fa,bb);else{let Sa=material.getInput(!0,"","passwordSendEmail",la._6,!1,"passwordSendEmail","","",!0,"","","password"),db=material.getButton("sendEmail",la._978,"floppy-o",null,!1,!0),eb=showPopup(la._979,`<form id="passwordSendEmailForm"> 2921 <p class="mdc-typography--body2">${la._980}</p> 2922 <div class="m-t-0 m-b-30"style="width:400px;">${Sa}</div> 2923 ${db} 2924 </form>`,!0);material.init("#passwordSendEmailForm");setTimeout(()=>{document.getElementById("passwordSendEmailForm")?.addEventListener("submit",sa=>{sa.preventDefault();sa=document.getElementById("passwordSendEmail").value;sa.length&&(eb.close(),t(sa,Fa,bb))})})}},{signal:ta});n(Fa)}},n=ta=>{if((ta=ta.closest(".account-email")||ta.closest(".action")||ta.parentElement)&&ta.parentElement&&!ta.parentElement.querySelector(".js-verify-state")){var ea=document.createElement("div");ea.className="js-verify-state";
2925ea.innerHTML='<div class="js-verify-delivery"></div><a class="url js-verify-resend" href="#" style="display:none;font-size:12px;">'+la._363+"</a>";ta.insertAdjacentElement("afterend",ea);ea.querySelector(".js-verify-resend").addEventListener("click",Fa=>{Fa.preventDefault();u(ea)});r(!1)}},q=ta=>{settings.isEmailVerified=!0;VerifyDelivery.line(ta.querySelector(".js-verify-delivery"),la._360,!0);DomUtil.hide(ta.querySelector(".js-verify-resend"))},r=ta=>{document.querySelectorAll(".js-verify-state").forEach(ea=> 2926{var Fa=ea.querySelector(".js-verify-delivery"),bb=ea.querySelector(".js-verify-resend");VerifyDelivery.clear(Fa);!storage.email||settings.isEmailVerified?DomUtil.hide(bb):(DomUtil.show(bb),bb={onVerified:()=>q(ea)},ta?VerifyDelivery.watch(Fa,bb):VerifyDelivery.refresh(Fa,bb))})},u=ta=>{var ea=ta.querySelector(".js-verify-delivery"),Fa=ta.querySelector(".js-verify-resend");Fa.dataset.working||(Fa.dataset.working="1",network.request({path:"user/verify",type:"send"}).done(bb=>{delete Fa.dataset.working; 2927var Ra=VerifyDelivery.sendMessage(bb?.emailStatus);Ra?(bb.emailStatus==="ADDRESS_REFUSED"&&VerifyDelivery.show(ea,bb.emailDelivery)||VerifyDelivery.line(ea,Ra[0],Ra[1]),bb.emailStatus==="NEW_MAIL_SENT"?VerifyDelivery.watch(ea,{onVerified:()=>q(ta)}):bb.emailStatus==="IS_VERIFIED"&&q(ta)):(reportBug("settings verify resend",JSON.stringify(bb)),VerifyDelivery.line(ea,la._error,!1))}).fail(()=>{delete Fa.dataset.working;VerifyDelivery.line(ea,la._error,!1)}))},B=()=>{var ta=Number(storage.defaultNotificationInterval); 2928ta=ta>0?ta/1440:0;var ea=document.querySelector("#channel-settingsRearmTimer .channel-status");ea&&(ea.textContent=ta>0?ta+" "+la._143:la._433)},t=function(ta,ea,Fa){var bb=ea.value,Ra=bb.trim(),Sa=typeof storage.email!=="undefined";if(bb!==storage.email&&(Ra!==""||Sa)){let db=storage.email;if(Ra===""){bb=material.getButton("emailKeep",la._1082,"toggle-off",null,!1,!1);let eb=material.getButton("emailRemove",la._1080,"trash-o",null,!1,!0),sa=showPopup(la._1079,`<div style="width:600px;">${la._1081}</div><br><br>${bb} ${eb}`, 2929!0);document.getElementById("emailKeep")?.addEventListener("click",()=>{sa.close();document.querySelectorAll(".js-email-save").forEach(Qa=>DomUtil.hide(Qa));document.querySelectorAll(".js-email-input").forEach(Qa=>Qa.value=storage.email||"");c&&c.defaultNotificationType&&c.defaultNotificationType[Ia("email")]&&document.querySelector("#channel-email .channel-toggle")?.click()});document.getElementById("emailRemove")?.addEventListener("click",()=>{sa.close();storage.removeItem("email");G(Sa,Ra,db,ta, 2930Fa)});sa.promise.fail(()=>{ea.value=storage.email||""})}else storage.email=Ra,G(Sa,Ra,db,ta,Fa)}},G=(ta,ea,Fa,bb,Ra)=>{var Sa={saveEmail:!0};ea===""&&(Sa.removeEmail=!0);isTest||isSocialAccount||(Sa.password=bb);settings.send(Sa).done(db=>{var eb=[];db.status.length?eb=db.status:eb.push(db.status);if(eb[0]===0){document.querySelectorAll(".js-email-save").forEach(sa=>DomUtil.hide(sa));document.querySelectorAll(".js-email-input").forEach(sa=>sa.value=ea);if(db=document.querySelector("#channel-email .channel-status"))db.textContent= 2931ea||la._1726;db=!!(c&&c.defaultNotificationType&&c.defaultNotificationType[Ia("email")]);(!ta&&!db||ea===""&&db)&&document.querySelector("#channel-email .channel-toggle")?.click();settings.isEmailVerified=ea==="";r(ea!=="")}else eb[0]===-2?(storage.email=Fa,showPopPopup(la._3,la._76,!0)):(storage.email=Fa,DomUtil.hide(Ra),Ra?.insertAdjacentHTML("afterend",'<span class="channel-error">'+la._49+"</span>"))}).fail(()=>{storage.email=Fa;showErrorPopup()})},da=()=>!!document.getElementById("channel-telegramBot")?.classList.contains("is-connected"), 2932Y=(ta,ea)=>{var Fa=document.getElementById("channel-telegramBot"),bb=document.getElementById("idTelegramBot"),Ra=bb?.querySelector(".channel-action__label"),Sa=Fa?.querySelector(".channel-status");ta?(Fa?.classList.add("is-connected"),Ra&&(Ra.textContent=la._1727),Sa&&(Sa.textContent=ta),bb?.removeAttribute("href"),bb?.removeAttribute("target"),P(function(db){W(db)})):(Fa?.classList.remove("is-connected"),Ra&&(Ra.textContent=la._585),Sa&&(Sa.textContent=la._1726),ha(ea))},X=null,P=ta=>{X&&X.abort(); 2933X=null;var ea=document.getElementById("idTelegramBot");ea&&(X=new AbortController,ea.addEventListener("click",ta,{signal:X.signal}))},ka=()=>{network.request({path:"user/settings",type:"getBotStatus"}).done(function(ta){ta.error||Y(V(ta.botProfiles,"tg"),ta.hash)})},D=()=>{da()||(f=!0,network.request({path:"user/settings",type:"getBotStatus"}).done(function(ta){var ea=V(ta.botProfiles,"tg");ea!==!1&&(Y(ea,ta.hash),document.querySelector("#channel-telegramBot .fa-toggle-off")?.click())}).fail().always(()=> 2934{d--;d>=0?setTimeout(()=>{D()},1E3):f=!1}))},W=function(ta){var ea=ta.currentTarget.closest(".channel-wrapper");
2934network.request({path:"user/session",type:"botLogout",content:"tg"}).done(()=>{ea?.querySelector(".fa-toggle-on")?.click();Y(null)}).fail(Fa=>{showErrorPopup(Fa)})},N=ta=>{var ea=document.getElementById("idTelegramBot");ea&&(ta?(ea.href="https://telegram.me/keepa_bot?start=lnktref"+ta,ea.target="_blank"):network.request({path:"user/settings",type:"getBotStatus"}).done(Fa=>{Fa.hash&&!da()&& 2935N(Fa.hash)}))},ha=ta=>{N(ta);P(function(){document.getElementById("idTelegramBot")?.getAttribute("href")?f||D():(showErrorPopup(),N(null))})},V=(ta,ea)=>{var Fa=!1;ta&&ta.groupedUserProfiles[ea]&&(ta=ta.groupedUserProfiles[ea][0],typeof ta!=="undefined"&&(Fa=(ta.first_name?ta.first_name+" ":"")+(ta.last_name?ta.last_name:"")));return Fa},O=()=>{var ta=document.getElementById("channel-browser");if(ta&&!ta.classList.contains("is-unavailable")){var ea=isIframe&&!keepaApp;ta.classList.add("is-unavailable"); 2936ea&&ta.classList.add("is-elsewhere");var Fa=ta.querySelector(".channel-status");Fa&&(Fa.innerHTML=ea?'<i class="fa fa-external-link"></i>'+la._869:'<i class="fa fa-exclamation-triangle"></i>'+la._1729);if(ta=ta.querySelector(".channel-toggle"))ta.classList.remove("fa-toggle-on"),ta.classList.add("fa-toggle-off")}},wa=()=>{var ta=document.getElementById("channel-browser"),ea=!1,Fa=!1,bb=setTimeout(()=>{Fa||O()},6E3);serviceWorker.checkSubscription().done(function(Ra){ea=!0}).fail(function(Ra){ea=Ra? 2937!1:null}).always(()=>{Fa=!0;clearTimeout(bb);if(ea==null)O();else if(ta){ta.classList.remove("is-unavailable");var Ra=la._569+(ea?" "+la._570:"");replaceHtmlEl(ta.querySelector(".hint"),Ra);Ra=ta.querySelector(".channel-toggle");ea&&Ra?.classList.contains("fa-toggle-off")&&(Ra.classList.add("fa-toggle-on"),Ra.classList.remove("fa-toggle-off"));var Sa=!1;document.getElementById("testMessage")?.addEventListener("click",function(){Sa||(serviceWorker.showNotification(),Sa=!0,setTimeout(()=>{Sa=!1},5E3))}); 2938Ra?.addEventListener("click",function(db){var eb=db.currentTarget;eb=replaceHtmlEl(eb.closest("div"),a.loading);if(ea){let sa=!0;serviceWorker.unsubscribePush().fail(()=>{sa=!1}).always(()=>{eb=replaceHtmlEl(eb?.closest("div"),sa?a.toggleOff:a.toggleOn);wa()})}else{let sa=!0;serviceWorker.subscribePush().fail(()=>{sa=!1}).always(()=>{eb=replaceHtmlEl(eb?.closest("div"),sa?a.toggleOn:a.toggleOff);wa()})}})}})},La=()=>{document.querySelectorAll("#channel-rss input").forEach(ta=>{ta.addEventListener("click", 2939function(ea){ea=ea.currentTarget;ea.focus();ea.select()})});document.getElementById("copyRss")?.addEventListener("click",function(){var ta=this,ea=document.getElementById("idRss"),Fa=ea?.value,bb=()=>ta.innerHTML='<i class="fa fa-clipboard"></i>'+la._1728;navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(Fa).then(()=>{ta.innerHTML='<i class="fa fa-check"></i>'+la._1728;setTimeout(bb,1500)}).catch(()=>ea?.click()):ea?.click()})},Ba=()=>{if(triggerUnsubscribe){triggerUnsubscribe= 2940!1;let ta=document.getElementById("idEmail"),ea=document.getElementById("saveEmail");ta&&ta.value.length!=0&&(ta.value="",ea?.click(),window.location.hash="!settings",setTimeout(()=>{document.querySelector("#notification-channels p")?.insertAdjacentHTML("beforebegin",'<p><span style="color: orangered;font-weight: bold;">You are now unsubscribed from our price alerts via email!</span></p>')},500))}},fa=()=>{document.querySelectorAll(".channel-toggle:not(.settings)").forEach(ea=>{ea.addEventListener("click", 2941function(Fa){Aa(Fa)})});var ta=document.getElementById("notification-channels");ta&&(ta.cardClickAbort&&ta.cardClickAbort.abort(),ta.cardClickAbort=new AbortController,ta.addEventListener("click",function(ea){var Fa=ea.target.closest(".channel-head");!Fa||ea.target.closest(".channel-state")||ea.target.closest("a")||(Fa=(ea=Fa.closest(".channel-wrapper"))&&ea.classList.contains("is-open"),ta.querySelectorAll(".channel-wrapper.is-open").forEach(bb=>bb.classList.remove("is-open")),Fa||ea?.classList.add("is-open"))}, 2942{signal:ta.cardClickAbort.signal}))},ia=ta=>{document.querySelectorAll("#notification-channels .channel-wrapper.is-open").forEach(ea=>ea.classList.remove("is-open"));ta?.classList.add("is-open")},Aa=function(ta){var ea=ta.currentTarget;if((ta=ea.closest(".channel-wrapper"))&&ta.id!=="channel-browser"){var Fa=ta.id.replace(/channel-/,"");let Ra=Ia(Fa),Sa=c.defaultNotificationType[Ra];var bb=document.getElementById("idEmail");Fa!=="email"||Sa||bb?.value!==""?(Fa==="email"&&Sa&&(bb=document.querySelector("#channel-settingsLightningDeals .channel-toggle.fa-toggle-on"))&& 2943(bb.click(),window.keepaAnim.highlight(document.getElementById("channel-settingsLightningDeals"),{duration:1E3})),Fa!=="telegramBot"||Sa||da()?(ea=replaceHtmlEl(ea.closest("div"),a.loading),c.defaultNotificationType[Ra]=!c.defaultNotificationType[Ra],storage.defaultNotificationType=JSON.stringify(c.defaultNotificationType),settings.send().done(()=>{}
2943).fail(showErrorPopup).always(()=>{ea=replaceHtmlEl(ea?.closest("div"),Sa?a.toggleOff:a.toggleOn);ea?.addEventListener("click",function(db){Aa(db)})})): 2944(ia(ta),document.getElementById("idTelegramBot")?.click())):(Fa=document.getElementById("saveEmail"),ta.querySelector(".channel-error")||Fa?.insertAdjacentHTML("afterend",'<span class="channel-error">'+la._90+"</span>"),ia(ta),bb.focus(),DomUtil.hide(Fa))}},Ia=function(ta){return{email:0,browser:3,desktop:3,telegramBot:7,mobileApp:6}[ta]},Ga=ta=>{var ea=document.querySelector("#channel-settingsRearmTimer .channel-toggle");ea&&(ea.classList.remove(ta?"fa-toggle-off":"fa-toggle-on"),ea.classList.add(ta? 2945"fa-toggle-on":"fa-toggle-off"))},Ya=()=>{document.querySelectorAll(".channel-toggle.settings").forEach(ea=>{ea.addEventListener("click",Fa=>{Pa(Fa)})});var ta=document.getElementById("idRearm");ta?.addEventListener("change",ea=>{(ea=ta.value)?(ea=Number(ea),!ea||ea<1||ea>365?(showPopup(la._3,la._283+1+la._284+365+".",!0),ea=storage.defaultNotificationInterval!="undefined"?storage.defaultNotificationInterval:"",ta.value=ea>0?Number(ea)/1440:""):(set("defaultNotificationInterval",Number(ea)*1440), 2946settings.send().done(()=>{}).fail(showErrorPopup).always(()=>{Ga(!0);B()}))):(set("defaultNotificationInterval",0),settings.send().done(()=>{}).fail(showErrorPopup).always(()=>{Ga(!1);B()}))})},Pa=ta=>{var ea=ta.currentTarget,Fa=ea.closest(".channel-wrapper").id.replace(/channel-/,"");ea=replaceHtmlEl(ea.closest("div"),a.loading);switch(Fa){case "settingsLightningDeals":var bb=storage.sendUpcomingLightningDealsAlert==="true";set("sendUpcomingLightningDealsAlert",!bb);break;case "settingsLightningDealsStartAlerts":bb= 2947storage.sendStartLightningDealsAlert==="true";set("sendStartLightningDealsAlert",!bb);break;case "settingsRearmTimer":ta=(bb=storage.defaultNotificationInterval!="undefined"&&storage.defaultNotificationInterval>0)?0:2;let Ra=document.getElementById("idRearm");Ra&&(Ra.value=bb?"":ta);set("defaultNotificationInterval",Number(ta*60*24).toFixed(0));break;default:isTest&&console.info("%cSettings:","color:blue;","missing settings handling > ",Fa)}settings.send().done(()=>{}).fail(showErrorPopup).always(()=> 2948{var Ra=(bb?a.toggleOff:a.toggleOn).replace("channel-toggle","channel-toggle settings");ea=replaceHtmlEl(ea?.closest("div"),Ra);ea?.addEventListener("click",function(Sa){Pa(Sa)});Fa==="settingsRearmTimer"&&B()})};return{init:()=>{network.request({path:"user/settings",type:"getSettings"}).done(function(ta){c=ta.user;ta=serviceWorker.checkSupport();var ea="https://vimeo.com/keepatutorials/meet-keepa-on-telegram-messenger";storage.language==3&&(ea="https://vimeo.com/keepatutorials/triff-keepa-auf-dem-telegram-messenger"); 2949var Fa=browserInfo(),bb=getAppLinksAndBadges(),Ra={email:[{name:la._5,hint:la._562,icon:"fa-envelope-o",status:storage.email||la._1726,action:'<input type="text" name="email" id="idEmail" class="js-email-input" rel="ids" value="'+(storage.email||"")+'" placeholder="'+la._69+'" /><div>'+a.saveEmail+"</div>",active:c.defaultNotificationType[Ia("email")]}],browser:[{name:la._568,hint:la._569,icon:"fa-bullhorn",status:Fa.name+" "+Fa.version,action:"",active:!1}],mobileApp:[{name:la._35,hint:"",icon:"fa-mobile", 2950status:c.gcmDeviceNames&&c.gcmDeviceNames.length?c.gcmDeviceNames[c.gcmDeviceNames.length-1]:la._1726,action:`<p class="app-store-icons"> 2951 <a class="app-store--android" href="${bb.linkGooglePlay}" 2952 target="_blank">${bb.badgeGooglePlay}</a> 2953 <a class="app-store--ios" href="${bb.linkAppStore}" 2954 target="_blank">${bb.badgeAppStore}</a> 2955 </p>`,active:!1}],telegramBot:[{name:"Telegram Messenger",hint:la._584+'<br><a href="'+ea+'" target="_blank"><i class="fa fa-vimeo" ></i>'+la._651+"</a>",icon:"fa-telegram",status:la._1726,action:'<a class="card-action" id="idTelegramBot"><i class="fa fa-telegram"></i><span class="channel-action__label">'+la._585+"</span></a>",active:c.defaultNotificationType[Ia("telegramBot")]}],rss:[{name:la._576,hint:la._577,icon:"fa-rss",status:"",action:'<div class="card-code-row"><div class="card-code"><input type="text" id="idRss" value="https://rss.keepa.com/'+ 2956c.rssHash+'" readonly="readonly" /></div><span class="card-action" id="copyRss"><i class="fa fa-clipboard"></i>'+la._1728+"</span></div>",active:!0}]};hasDataAccessSubscription||delete Ra.rss;var Sa={},db="",eb;ea=Object.keys(Ra);var sa=b(ea.length);ea.forEach((x,v)=>{eb=Ra[x][0];Sa={channelIdentifier:x,channelIcon:eb.icon,channelName:eb.name,channelStatus:eb.status||"",channelHint:eb.hint,channelAction:eb.action,channelToggle:eb.active?"fa-toggle-on":"fa-toggle-off",channelSpan:sa[v]};db+='<div id="channel-channelIdentifier" class="channel-wrapper -span-channelSpan">\n\t\t<div class="channel-head">\n\t\t\t<div class="channel-icon"><i class="fa channelIcon fa-fw"></i></div>\n\t\t\t<div class="channel-meta">\n\t\t\t\t<div class="channel-name">channelName</div>\n\t\t\t\t<div class="channel-status">channelStatus</div>\n\t\t\t</div>\n\t\t\t<div class="channel-state"><i class="channel-toggle fa channelToggle fa-fw fa-lg"></i></div>\n\t\t\t<i class="channel-expand fa fa-angle-down"></i>\n\t\t</div>\n\t\t<div class="channel-body">\n\t\t\t<div class="action">channelAction</div>\n\t\t\t<p class="hint">channelHint</p>\n\t\t</div>\n\t\t</div>'.replace(new RegExp(Object.keys(Sa).join("|"), 2957"gi"),function(C){return Sa[C]})});var Qa={};ea=storage.sendUpcomingLightningDealsAlert;disableUpcomingLightningDeal||typeof ea=="undefined"||(Qa.settingsLightningDeals={name:la._402,hint:la._714,icon:"fa-bolt",status:"",action:la._431,active:ea==="true"});ea=storage.sendStartLightningDealsAlert;typeof ea!="undefined"&&(Qa.settingsLightningDealsStartAlerts={name:disableUpcomingLightningDeal?la._402:"",hint:la._715,icon:"fa-bolt",status:"",action:`<span>${la._713}</span>`,active:ea==="true"});ea=storage.defaultNotificationInterval; 2958typeof ea!="undefined"&&(ea=Number(ea)/1440,Fa=ea>0,Qa.settingsRearmTimer={name:la._432,hint:`<span><a target="_blank" href="${isIframe?"https://keepa.com/#!support/rearm-timer":"#!support/rearm-timer"}"><i class="fa fa-external-link"></i>${la._755}</a></span>`,icon:"fa-history",status:Fa?ea+" "+la._143:la._433,action:`<input type="text" name="rearm" id="idRearm" rel="ids" value="${ea>0?ea:""}" placeholder="${la._433}" class="xs" /><span> ${la._143}</span>`,active:Fa});var Ta="",ba;ea=Object.keys(Qa); 2959var e=b(ea.length);ea.forEach((x,v)=>{ba=Qa[x];Sa={channelIdentifier:x,channelIcon:ba.icon,channelName:ba.name,channelStatus:ba.status||"",channelHint:ba.hint,channelAction:ba.action,channelToggle:ba.active?"fa-toggle-on":"fa-toggle-off",channelSpan:e[v]};Ta+='<div id="channel-channelIdentifier" class="channel-wrapper -span-channelSpan">\n\t\t<div class="channel-head">\n\t\t\t<div class="channel-icon"><i class="fa channelIcon fa-fw"></i></div>\n\t\t\t<div class="channel-meta">\n\t\t\t\t<div class="channel-name">channelName</div>\n\t\t\t\t<div class="channel-status">channelStatus</div>\n\t\t\t</div>\n\t\t\t<div class="channel-state"><i class="channel-toggle settings fa channelToggle fa-fw fa-lg"></i></div>\n\t\t\t<i class="channel-expand fa fa-angle-down"></i>\n\t\t</div>\n\t\t<div class="channel-body">\n\t\t\t<div class="action">channelAction</div>\n\t\t\t<p class="hint">channelHint</p>\n\t\t</div>\n\t\t</div>'.replace(new RegExp(Object.keys(Sa).join("|"), 2960"gi"),function(C){return Sa[C]})});replaceHtml("notification-channels",`<div id="pseudo-form"><div class="dashboard"> 2961 <h3 class="group-header">${la._1745}</h3> 2962 <p class="channels-intro">${la._586}</p> 2963 <div class="channel-grid"> 2964 ${db} 2965 </div> 2966 2967 <h3 class="group-header">${la._948}</h3> 2968 <div class="channel-grid"> 2969 ${Ta} 2970 </div> 2971 </div></div>`);fa();k("#idEmail","#saveEmail");ka();ta?wa():O();La();Ba();Ya();DomUtil.hide(document.getElementById("loadingIcon"));
2971addon()}).fail(ta=>{ta.status===401&&settings.reset(!1,!1)})},setupEmailEditor:k}})(),SettingsSubscription=(()=>{var a=isTest?"pk_test_iYB91ryN0RmRIY7Xd7G4PTvG":"pk_live_vZtwJ2C0mPQs55shQOZtruWI",b=[],c,d,f,k,n,q,r,u,B,t,G=sa=>c.PayedService[sa]?.type==="DATA",da=sa=>c.PayedService[sa]?.type==="DATA_YEAR",Y=sa=>{var Qa=Object.values(c.PayedService).find(Ta=>Ta.type=== 2972sa);return Qa?Number(c.PayedServiceVariants[Qa.variant]?.price)||0:0},X=sa=>{var Qa=Object.entries(c.PayedService).find(([,Ta])=>Ta.type===sa);return Qa?Qa[0]:null},P=()=>{b=[];B=t=u=r=q=n=k=f=d=c=null},ka=sa=>{if(storage.accountType==0)replaceHtml("settingsBox",'<span class="subsubHeadline2">'+la._52+"</span><br>"+la._53),DomUtil.hide(document.getElementById("settingsSelect")),DomUtil.show(document.getElementById("settingsBox")),DomUtil.setStyles(document.getElementById("settingsTabs"),{borderTop:"0px"}), 2973setTimeout(()=>{showLoginOverlay()},1);else if(sa||document.getElementById("subscriptions-tab")?.innerHTML==="")D(),W().done(()=>{ha()})},D=()=>{replaceHtml("subscriptions-tab",'<div id="loadingIconPopup"></div>');DomUtil.show(document.getElementById("loadingIconPopup"))},W=()=>network.request({path:"service/stripe",type:"offers",includeData:!0,dashboard:"data"}).done(sa=>{if(!sa.offers)return showErrorPopup();P();c=sa.offers;u=sa.paymentMethod;B=sa.balance;n=sa.invoices;q=sa.pendingInvoices;r=sa.pendingPlanChanges; 2974sa.payments?(d=sa.payments.payments,f=sa.payments.subscriptions||[],k=sa.subscriptionStatus,t=sa.payments.lastDowngrade):f=[];isTest&&(console.info("%cgetOffersAndSubscriptionStatus:","color:green",sa),console.log({year:{sku:X("DATA_YEAR"),price:Y("DATA_YEAR")},month:{sku:X("DATA"),price:Y("DATA")}}));var Qa=k?.services||[];sa=Qa.some(da);Qa=Qa.some(G);var Ta=f.some(x=>da(x.payedService)&&(x.paymentReceivedDate===0&&x.paymentCancelledDate===0||q!=null&&q.some(v=>v.subscription?.id===x.subscriptionId))); 2975for(let x in c.PayedService){var ba=da(x),e=G(x);if(e&&(Ta||sa))continue;if(ba&&Qa&&!Ta)continue;if(ba&&!sa&&!Qa&&!Ta)continue;if(!ba&&!e)continue;e=c.PayedService[x];ba=c.PayedServiceTypes[e.type];e=c.PayedServiceVariants[e.variant];ba={sku:x,name:ba.description,description:ba.variantDescription,hint:` 2976 <div class="subscription-features"> 2977 2978 <div class="feature-grid"> 2979 <div class="feature-group"> 2980 <h5><span class="icon">\ud83d\udcca</span> Analytics & Insights</h5> 2981 <ul class="list--disc"> 2982 <li>Interactive Sales Rank history graphs</li> 2983 <li>Detailed Buy Box Statistics and offer details</li> 2984 <li>Offer Count and Rating history graphs</li> 2985 <li>Variation data and exports</li> 2986 </ul> 2987 </div> 2988 2989 <div class="feature-group"> 2990 <h5><span class="icon">\ud83d\udd0e</span> Discovery & Research</h5> 2991 <ul class="list--disc"> 2992 <li>Product Finder queries across the full product database</li> 2993 <li>Comprehensive Category Tree data</li> 2994 <li>Top Seller and Storefront lists</li> 2995 <li>Bestseller lists across all categories</li> 2996 </ul> 2997 </div> 2998 2999 <div class="feature-group"> 3000 <h5><span class="icon">\u2699\ufe0f</span> Operations & Limits</h5> 3001 <ul class="list--disc"> 3002 <li>Bulk Product list imports and data exports</li> 3003 <li>Updated price data and alerts for your tracked products</li> 3004 ${enableTrackingLimits?`<li>Price data for up to ${NumberUtil.format(1E4)} tracked products</li>`:""} 3005 <li>Your price alerts as a personal RSS feed</li> 3006 <li>Keepa API data at 1 token/min — higher rates require a separate API plan</li> 3007 </ul> 3008 </div> 3009 </div> 3010 3011 <div> 3012 <p>Data loading is subject to a daily usage quota. <a class='quota-info'>View details here.</a></p> 3013 <p>Note: One seat per plan.</p> 3014 <p><a class="link--terms" style="cursor:alias !important;font-style:italic;">» Terms and Conditions</a></p> 3015 </div> 3016 </div> 3017 `,bucketSize:e.variant,interval:e.interval,currencyDomainId:3,price:e.price,active:!0,paymentPending:!1,subscribed:k?.hasActiveSubscription&&!k?.hasOnlyAPISubscription,subscribedTill:k?.dataEndDate||0,priceFormatted:Money.format(e.price,{sourceDomainId:3,targetDomainId:3,noDigits:!0,forceEuropeanStyle:!0})};e=f.filter(v=>v.payedService===x);e.length>0&&(e=[...e].reverse().find(v=>v.paymentCancelledDate===0)||e[e.length-1],Object.assign(ba,{subscriptionStart:e.subscriptionStart,startDate:e.subscriptionStart=== 30180?"-":(new Date(e.subscriptionStart)).formatDate("M j, Y"),createDate:(new Date(e.createDate)).formatDate("M j, Y"),createDateRaw:e.createDate,neverPaid:e.paymentReceivedDate===0,paymentPending:e.paymentReceivedDate===0&&e.paymentCancelledDate===0,endDate:e.subscriptionStart===0?"-":(new Date(e.subscriptionStart+e.subscriptionDuration)).formatDate("M j, Y"),cancel_at_period_end:e.cancel_at_period_end,paymentCancelledDate:e.paymentCancelledDate,paymentProvider:e.paymentProvider,subscriptionId:e.subscriptionId, 3019quantity:e.quantity}));b[x]=ba}}
3019).fail(showErrorPopup),N=()=>(f||[]).some(sa=>sa.subscriptionId&&sa.paymentCancelledDate===0&&(G(sa.payedService)||da(sa.payedService))),ha=()=>{var sa="",Qa=!1,Ta=!1;for(var ba in b){var e=b[ba];if(e.active!==!0&&e.subscribed!==!0)return;var x="";if(e.startDate==null||e.paymentPending||e.paymentCancelledDate!=0){var v=[];for(let K in c.PayedServiceVariants)if(K.startsWith("DATA_BASIC")){var C=c.PayedServiceVariants[K];v.push(Money.format(C.price,{sourceDomainId:e.currencyDomainId, 3020targetDomainId:e.currencyDomainId,noDigits:!0,forceEuropeanStyle:!0})+" / "+C.interval)}x+=`<p><i class="fa fa-fw fa-info-circle"></i>${v.join(" or ")}</p>`}else x+=`<p><i class="fa fa-fw fa-calendar-o"></i>Subscribed since ${e.createDate}</p>`;if(e.endDate!=null&&!e.paymentPending&&e.paymentCancelledDate==0){v=`<i class="fa fa-fw fa-${e.cancel_at_period_end?"ban":"refresh"}"></i>`;C="";if(n!=null)for(var A=0;A<n.length;A++){var H=n[A];if(H.subscription.id==e.subscriptionId){C=H.amountDue;e.subscribedTill>= 3021new Date("2026-03-01")&&(C=(da(e.sku)?29E3:2900)*e.quantity);isTest&&console.log("Upcoming Charge:",{currentDisplay:H.amountDue,afterMarch1:C});C=Money.format(C,{sourceDomainId:e.currencyDomainId,targetDomainId:e.currencyDomainId,noDigits:!1,forceEuropeanStyle:!0});break}}if(q!=null)for(H=0;H<q.length;H++)if(q[H].subscription.id==e.subscriptionId){e.paymentPending=!0;break}H=null;if(r!=null)for(A=0;A<r.length;A++)if(r[A].subscriptionId==e.subscriptionId){H=r[A];break}x+=`<p>${e.cancel_at_period_end? 3022`<span style="color:#ff6347">${v}Will terminate on ${e.endDate}</span>`:`${v}Will renew on ${e.endDate}`}</p>`;e.cancel_at_period_end&&e.paymentProvider!="Complimentary"&&(x+=`<p><i class="fa fa-fw fa-repeat"></i><span class="href" rel="${e.subscriptionId}" id="resumeSub">Resume subscription</span></p>`);e.quantity>1&&(x+=`<p><i class="fa fa-fw fa-info"></i><span style="font-weight:bold;">${e.quantity}</span> active Keepa Pro subscriptions</p>`);x+=C==""?"":`<p><i class="fa fa-fw fa-money"></i>Upcoming charge ${C}</p>`; 3023H&&(v=SubscriptionUtil.escapeHtml(H.requestedPlan||"a new plan"),x+=`<p><i class="fa fa-fw fa-hourglass-half" style="color:orange;"></i>Plan change to <b>${v}</b> is waiting for payment. Your current plan continues unchanged until it is paid.</p>`,H.hostedInvoiceUrl&&(x+=`<p><i class="fa fa-fw fa-credit-card"></i><span class="href completePlanChange" rel="${e.subscriptionId}">Complete payment</span></p>`),x+=`<p><i class="fa fa-fw fa-times"></i><span class="href cancelPlanChange" rel="${e.subscriptionId}">Cancel plan change</span></p>`); 3024e.cancel_at_period_end||e.paymentPending||H||(G(e.sku)&&(x+=`<p class="subdetails__yearly" data-sku="${e.sku}" title="Switch to the annual plan to save."> 3025 <i class="fa fa-fw fa-clock-o"></i>Switch to yearly 3026 </p>`),da(e.sku),v=(e.subscribedTill?e.subscribedTill-Date.now():0)/36E5,Ta=!1,v>0&&v<=5||(v=e.quantity>1?"Upgrade or Downgrade":"Upgrade",Ta&&(x+=`<p class="subdetails__upgrade" data-sku="${e.sku}" data-action="renew" title="Lock in the current price by renewing early"> 3027 <i class="fa fa-fw fa-repeat"></i>Renew early 3028 </p>`),x+=`<p class="subdetails__upgrade" data-sku="${e.sku}" title="Upgrade to increase your daily quota${Ta?" or lock in the current price by renewing early":""}"> 3029 <i class="fa fa-fw fa-pencil"></i>${v} 3030 </p>`),x+=`<p class="subdetails__update-billing" data-sku="${e.sku}"> 3031 <i class="fa fa-fw fa-book"></i>Update invoice address 3032 </p>`);e.cancel_at_period_end&&(Qa=!0)}e.paymentPending&&(Date.now()-e.createDateRaw>15E3?(x=`<div class="retryPayment" data-id="${e.subscriptionId}"><span style="color:tomato;">Payment failed.<br><span>Try again now <i class="fa fa-repeat"></i></span></span></div>`,e.neverPaid&&(x+=`<p><i class="fa fa-fw fa-times"></i><span class="href discardUnpaidSub" rel="${e.subscriptionId}">Cancel this unpaid subscription</span></p>`)):x='<div><span style="color:orange;">Payment pending<i id="refreshSubscription" class="fa fa-refresh"></i></span></div>'); 3033v=e.priceFormatted;e.quantity>1&&e.subscribed&&(v=Money.format(e.price*e.quantity,{sourceDomainId:e.currencyDomainId,targetDomainId:e.currencyDomainId,noDigits:!0,forceEuropeanStyle:!0}));var Z=void 0,ca=void 0;e.subscribed&&e.cancel_at_period_end||e.disabled?ca=e.cancel_at_period_end?"Subscription is cancelled":e.paymentPending?"Payment pending":"":e.paymentPending&&!e.subscribed?ca="Payment pending":Z=material.getButton("toggleSubscription-"+e.sku,e.subscribed?"Cancel":"Subscribe",e.subscribed? 3034"ban":"shopping-cart",null,!1,e.subscribed?!0:!1);C=e.description.replace("Data",'<a href="#!data">Data</a>');sa+=`<div class="sub-wrapper${e.disabled===!0?" disable":""}"> 3035 <div>${Z?Z:ca}</div> 3036 <div> 3037 ${e.name} ${e.subscribed?`- ${v} / ${e.interval}`:""} 3038 ${e.quantity>1&&e.subscribed?`<p style="margin-bottom: 4px;">Base price: ${e.priceFormatted} / ${e.interval}</p>`:""} 3039 ${x} 3040 </div> 3041 <div class="description">${C} 3042 <p class="hint">${e.hint}</p> 3043 </div>
3044 </div>`}sa=` 3045 3046 <div>${sa}</div> 3047 <div id="subscriptions-form"></div>`;ba=k?k.hasActiveSubscription&&!k.hasOnlyAPISubscription:!1;x=(K,F)=>`<a href="${K}" class="href -api"><i class="fa fa-long-arrow-right"></i>${F}</a>`;Z=(K,F,z)=>`<div class="api-crossref"> 3048 <div class="api-crossref__main"> 3049 <div class="api-crossref__icon"><i class="fa fa-code"></i></div> 3050 <div class="api-crossref__body"> 3051 <div class="api-crossref__title">${K}</div> 3052 <p class="api-crossref__text">${F}</p> 3053 </div> 3054 </div> 3055 <div class="api-crossref__links">${z}</div> 3056 </div>`;ca=x("#!api/1","What the API offers")+x("#!api/3","View API plans");x=k&&k.hasAPISubscription?Z("Keepa API","Your API subscription, access key and API invoices are managed on their own page.",x("#!api","Manage your API subscription")):ba?Z("Using the API?","Your Keepa Pro plan already generates 1 token per minute. Dedicated API plans start at 20 tokens per minute — 20× the rate — and are billed separately from Pro.",ca):Z("Building on Keepa data?","Keepa Pro is for using Keepa in your browser. The <strong>Keepa API</strong> is a separate subscription for querying our data from your own code, scripts or AI agents.", 3057ca);ba=N()?SubscriptionUtil.getPaymentMethodPartial(u,ba):"<br>";Z=B&&B<0?`<div><span style="color:#000">Your current account balance: <i class="fa fa-fw fa-money"></i> 3058 ${Money.format(-1*B,{sourceDomainId:3,targetDomainId:3,noDigits:!1,forceEuropeanStyle:!0})}</span> (will be applied to future invoices)</div>`:"";ca=SubscriptionUtil.getInvoiceTable(d);replaceHtml("subscriptions-tab",sa+x+ba+Z+ca);V();window.location.hash==="#!upgrade"&&hasDataAccessSubscription&&!Qa&&setTimeout(function(){Ta&&da(e.sku)?Ia(e.sku):G(e.sku)&&Ya(e.sku)},0)},V=()=>{document.querySelectorAll(".quota-info").forEach(sa=>sa.addEventListener("click",()=>{showPopup(QuotaUI.getTitle(), 3059QuotaUI.getInfo(),!0)}));document.querySelectorAll(".link--terms").forEach(sa=>sa.addEventListener("click",eb));document.querySelectorAll("#editCC, #addCC").forEach(sa=>sa.addEventListener("click",wa));document.getElementById("removeCC")?.addEventListener("click",function(){var sa=showPopup("Delete Credit Card",'This will delete your attached credit card. Your subscription will terminate unless you provide a new payment method before the end of your billing cycle. Do you want to continue?<br><br><span class="button" id="deleteTokenConfirm"> Yes </span>', 3060!0);sa&&document.getElementById("deleteTokenConfirm")?.addEventListener("click",function(){sa.close();network.request({path:"service/stripe",type:"deleteSource",dashboard:"data"}).done(function(){setTimeout(()=>{showPopup("Payment method removed!","Your payment method was successfully deleted.",!0);ka(!0)},300)}).fail(Qa=>{setTimeout(()=>{showPopup("Removal issue",Qa,!0)},300)})})});document.querySelectorAll(".completePlanChange").forEach(sa=>sa.addEventListener("click",function(){var Qa=sa.getAttribute("rel"), 3061Ta=(r||[]).find(ba=>ba.subscriptionId==Qa);if(!Ta||!Ta.hostedInvoiceUrl)return showErrorPopup();window.open(Ta.hostedInvoiceUrl);document.location.hash="#!settings/1";document.location.reload()}));document.querySelectorAll(".discardUnpaidSub").forEach(sa=>sa.addEventListener("click",function(){var Qa=sa.getAttribute("rel"),Ta=material.getButton("confirmDiscardUnpaidSub","Cancel unpaid subscription","times",null,!1,!1),ba=showPopup("Cancel unpaid subscription",`<div>This subscription was never activated because its payment did not go through. Cancelling it removes the outstanding invoice, and you can subscribe again straight away with a different payment method. Any subscription you are already paying for is not affected.</div><br><br>${Ta}`, 3062!0);ba&&document.getElementById("confirmDiscardUnpaidSub")?.addEventListener("click",function(){D();ba.close();network.request({path:"service/stripe",type:"cancelPendingUpdate",subscriptionId:Qa,dashboard:"data"}).done(()=>{ka(!0)}
3062).fail(showErrorPopup)})}));document.querySelectorAll(".cancelPlanChange").forEach(sa=>sa.addEventListener("click",function(){var Qa=sa.getAttribute("rel"),Ta=(r||[]).find(x=>x.subscriptionId==Qa);Ta=SubscriptionUtil.escapeHtml(Ta&&Ta.requestedPlan?Ta.requestedPlan:"the new plan"); 3063var ba=material.getButton("confirmCancelPlanChange","Cancel plan change","times",null,!1,!1),e=showPopup("Cancel plan change",`<div>This discards the pending change to ${Ta}. You will not be charged for it and your current plan continues unchanged. You can request the change again at any time.</div><br><br>${ba}`,!0);e&&document.getElementById("confirmCancelPlanChange")?.addEventListener("click",function(){D();e.close();network.request({path:"service/stripe",type:"cancelPendingUpdate",subscriptionId:Qa, 3064dashboard:"data"}).done(()=>{ka(!0)}).fail(showErrorPopup)})}));document.getElementById("resumeSub")?.addEventListener("click",function(sa){sa=document.getElementById("resumeSub").getAttribute("rel");var Qa=null;for(var Ta in b)b[Ta].subscriptionId==sa&&(Qa=b[Ta]);Ta=material.getButton("resumeSubscription","Resume Subscription","repeat",null,!1,!1);var ba=showPopup("Resume subscription "+Qa.name,`<div>This will remove your cancellation and continue automatic renewals of your subscription, beginning on ${Qa.endDate} - the end of your current billing cycle.</div><br><br>${Ta}`, 3065!0);ba&&document.getElementById("resumeSubscription")?.addEventListener("click",function(){D();ba.close();network.request({path:"service/stripe",type:"resumeSubscription",subscriptionId:Qa.subscriptionId,dashboard:"data"}).done(()=>{ka(!0)}
3065).fail(showErrorPopup)})});document.getElementById("refreshSubscription")?.addEventListener("click",function(sa){ka(!0)});document.querySelectorAll(".sub-wrapper .mdc-button").forEach(sa=>sa.addEventListener("click",function(Qa){var Ta=b[Qa.currentTarget.id.replace("toggleSubscription-", 3066"")];if(Ta.subscribed){Qa=material.getButton("cancelSubscription","Cancel Subscription","ban",null,!1,!0);let ba=showPopup("Cancel subscription "+Ta.name,`<div>${Ta.paymentPending?"Access will end immediately.":`Your access will continue until the end of your billing cycle on ${Ta.endDate}. No further charges will be made.`}</div><br><br>${Qa}`,!0);ba&&document.getElementById("cancelSubscription")?.addEventListener("click",function(){D();ba.close();var e={path:"service/stripe",type:"cancelSubscription", 3067subscriptionId:Ta.subscriptionId,dashboard:"data"};Ta.paymentPending&&(e.cancelNow=!0);network.request(e).done(()=>{ka(!0)}).fail(x=>{showPopup("Error",x.errorMsg,!0)})})}else network.request({path:"user/settings",type:"getSettings"}).always(function(ba){(ba=ba.user)&&ba.emailAddress&&ba.emailAddress.indexOf("@")!=-1&&settings.isEmailVerified?fa(Ta):showPopup(Ta.name,la._428,!0)})}));document.querySelectorAll(".subdetails__upgrade").forEach(sa=>sa.addEventListener("click",function(){var Qa=DomUtil.data(this, 3068"sku"),Ta=b[Qa],ba=DomUtil.data(this,"action")==="renew";network.request({path:"user/settings",type:"getSettings"}).always(function(e){(e=e.user)&&e.emailAddress&&e.emailAddress.indexOf("@")!=-1&&settings.isEmailVerified?Ia(Qa,ba):showPopup(Ta.name,la._428,!0)})}));document.querySelectorAll(".subdetails__yearly").forEach(sa=>sa.addEventListener("click",function(){var Qa=DomUtil.data(this,"sku"),Ta=b[Qa];network.request({path:"user/settings",type:"getSettings"}).always(function(ba){(ba=ba.user)&&ba.emailAddress&& 3069ba.emailAddress.indexOf("@")!=-1&&settings.isEmailVerified?Ya(Qa):showPopup(Ta.name,la._428,!0)})}));document.querySelectorAll(".subdetails__update-billing").forEach(sa=>sa.addEventListener("click",function(){ta(DomUtil.data(this,"sku"))}));document.querySelectorAll(".retryPayment").forEach(sa=>sa.addEventListener("click",function(){La(DomUtil.data(this,"id"))}))},O=sa=>{ka(!0);setTimeout(()=>
3069{showErrorPopup(typeof sa==="string"?sa:null)},500)},wa=()=>{N()?network.request({path:"service/stripe",type:"getPortalUrl", 3070dashboard:"data"}).done(function(sa){sa.url&&sa.url.length>0?window.location.href=sa.url:O()}).fail(sa=>{O(sa)}):O()},La=sa=>{D();network.request({path:"service/stripe",type:"getHostedInvoice",subscriptionId:sa,dashboard:"data"}).done(function(Qa){Qa.url&&Qa.url.length>0?window.location.href=Qa.url:O(Qa)}).fail(Qa=>{O(Qa)})},Ba=function(sa,Qa,Ta,ba,e){var x={path:"service/stripe",type:"subscription",content:JSON.stringify(Ta),dashboard:"data"};sa.isNewSubscription||(x.subscriptionId=Ta.subscriptionId); 3071Ta&&Ta.resetBillingCycle&&(x.resetBillingCycle=Ta.resetBillingCycle);isTest&&console.log(x);network.request(x).done(function(v){sa.isNewSubscription&&(busy=!1);console.info("payment 9a data...",v);var C=Z=>{var ca=!sa.isNewSubscription&&Z.url!=null,K=material.getButton("closePopup",ca?"Complete payment":"Attempt payment again","credit-card",null,!1,!1),F='<section><span class"tomato">Your credit card could not be charged. '+(Z.errorMsg!=null?Z.errorMsg:"")+"</span></section>";ca&&(F+="<section>Your plan change is saved and waiting for payment. You can complete or cancel it below or from this page at any time.</section>"); 3072var z=null;sa.isNewSubscription?(Z.code>=300&&(F='<div><span class"tomato">'+(Z.errorMsg?Z.errorMsg:"")+"</span></div>"),z=showPopPopup("Error processing payment",`${F}<br><div>${K}</div>`,!0),Ra(Qa)):replaceHtml("updateDataPopupWrapper",`${F}<div>${K}</div>`);addon();var g=!1;document.getElementById("closePopup")?.addEventListener("click",function(m){m.preventDefault();Z.url!=null?(window.open(Z.url),g=!0,document.location.hash="#!settings/1",document.location.reload()):(z&&z.close(),ba.resolve({updated:g}))})}, 3073A=Z=>{if(sa.isNewSubscription){Z=`<div> 3074 <div style="color:#00b753; font-size: 16px;"><i class="fa fa-check-circle-o" ></i> Welcome to Keepa Pro!</div> 3075 <div> 3076 <br>Your subscription was successful.<br><br> 3077 Activation usually takes less than a minute.<br>If your features don't appear immediately, simply reload the page.<br><br> 3078 </div> 3079 <div style="margin-top:15px;">${material.getButton("closePopupSuccess","Ok, close","window-close",null,!1,!1)}</div> 3080 </div>`;var ca=document.getElementById(Qa);ca&&(ca.innerHTML=Z);if(Z=document.getElementById("formContent"))Z.innerHTML="";if(Z=document.getElementById("popupTitle"))Z.innerHTML="";document.getElementById("closePopupSuccess")?.addEventListener("click",function(K){K.preventDefault();ba.resolve({updated:!0})});if(Z=storage.showGraphs){Z=JSON.parse(Z);for(let K in CsvType)typeof CsvType[K]==="object"&&graphIsRestricted(Number(storage.domain),CsvType[K].index,!0)&&![CsvType.EBAY_NEW_SHIPPING.index, 3081CsvType.EBAY_USED_SHIPPING.index].includes(Number(CsvType[K].index))&&(Z[CsvType[K].index]=1);storage.showGraphs=JSON.stringify(Z);storage.moreData=1;storage.showSalesRankGraph=1;settings.send()}e!==null&&e(!0)}else H(Z)},H=Z=>{var ca=material.getButton("closePopup","Ok, close","window-close",null,!1,!1),K=!0,F="";Z.code>=300?(K=!1,F='<section><span class="tomato">We were unable to process your payment. Please try again using a valid payment method.</span></section>'):F=sa.isSwitchToYearly?"<section>Thank you for switching to the annual Keepa Pro plan!<br><br>Your subscription has been updated to yearly billing.</section>": 3082sa.isUpgrade?"<section>Thank you for your purchase!<br><br>We are processing your payment now. Your access will be updated shortly. <strong>This may take a minute.</strong></section>":"<section>Your subscription change was successful and takes effect immediately.</section>";replaceHtml("updateDataPopupWrapper",`${F}<div>${ca}</div>`);DomUtil.hide(document.getElementById("loadingIconPopup"));addon();document.getElementById("closePopup")?.addEventListener("click",function(z){z.preventDefault();ba.resolve({updated:K})})}; 3083if(v.code>=300||v.errorMsg!=null)C(v);else if(v.paymentIntent==null)A(v),sa.isNewSubscription&&Ra(Qa);else switch(v.paymentIntent.status){case "succeeded":A(v);sa.isNewSubscription&&Ra(Qa);break;case "requires_payment_method":C(v);sa.isNewSubscription&&Ra(Qa);break;case "requires_action":console.info("payment 10..."),StripeAPI.loadStripe(a).done(async function(Z){console.info("payment 11...");var {error:ca,paymentIntent:K}=await Z.handleNextAction({clientSecret:v.paymentIntent.clientSecret});sa.isNewSubscription&& 3084Ra(Qa);console.info("payment 12...",K);ca?(v.errorMsg=ca.message,C(v)):A(v)}).fail(()=>{sa.isNewSubscription&&Ra(Qa);showErrorPopup()})}}).fail(v=>{console.info(v.status);if(sa.isNewSubscription){var C=document.getElementById("formContent");C&&(C.innerHTML="");if(C=document.getElementById(Qa))C.innerHTML=v.errorMsg||la._error;Ra(Qa)}else ba.resolve({updated:!1}),setTimeout(()=>{showErrorPopup(v.errorMsg)},500)})},fa=async sa=>{isTest&&console.info("%cinitCheckout sub:","color:orange",sa);try{let [ba, 3085e]=await Promise.all([network.request({path:"service/stripe",type:"location",dashboard:"data"}),network.request({path:"service/stripe",type:"countries",dashboard:"data"})]),x=ba.json?tryParseJSON(ba.json):null,v=Aa(e.countries,x,sa,()=>{});if(v){var Qa=v.onUpdate,Ta=showPopup(`${sa.name}`,` 3086 <div id="formContent"></div> 3087 ${v.html||v} 3088 <div style="width:300px" id="loadingIconPopup"></div> 3089 `,!0,"96%");Qa&&Qa.done(()=>{Ta.close()});Ta.promise.always(()=>ka(!0))}}catch(ba){isTest&&console.error(ba),showErrorPopup()}},ia=(sa,{prefix:Qa="DATA_",currencyId:Ta=3}={})=>{var ba=sa?.PayedServiceVariants??{};Object.values(ba).filter((A,H)=>!0);var e=A=>{var H=null;for(let [Z,ca]of Object.entries(ba))Z.startsWith(Qa)&&ca?.interval===A&&(!H||Number(ca.price)>Number(H.price))&&(H=ca);return H};sa=e("month");e=e("year");var x=showReferencePrice(Ta),v={sourceDomainId:Ta,targetDomainId:Ta, 3090noDigits:!0,forceEuropeanStyle:!0},C=A=>{var H=(A=A?.price??"")?Money.format(A,v):"",Z=x&&A?` (~ ${Money.format(A,{sourceDomainId:Ta})})`:"";return{price:A,formatted:H,formattedReference:Z}};sa=C(sa);e=C(e);return{monthlyPrice:sa.price,monthlyPriceFormatted:sa.formatted,monthlyPriceFormattedReference:sa.formattedReference,yearlyPrice:e.price,yearlyPriceFormatted:e.formatted,yearlyPriceFormattedReference:e.formattedReference}},Aa=(sa,Qa,Ta,ba)=>{if(document.getElementById("checkoutForm"))return null; 3091if(storage.accountType!=2)return{html:"<div>Before you can continue you have to sign in.</div>"};if(!storage.email||!storage.email.includes("@")||!settings.isEmailVerified)return{html:`<div>${la._428}</div>`};var e=Deferred(),x=ia(c),v=Number(x.yearlyPrice),C=Number(x.monthlyPrice);Ta=Money.format(v/12,{sourceDomainId:3,targetDomainId:3,noDigits:!1,forceEuropeanStyle:!0});C*=12;v=C-v;C=Math.round(v/C*100);v=Money.format(v,{sourceDomainId:3,targetDomainId:3,noDigits:!0,forceEuropeanStyle:!0});var [A, 3092H]=["individual","business"],[Z,ca]=["monthly","yearly"];Ta=` 3093 <div class="plan-selection"> 3094 <div id="card-monthly" class="plan-card -monthly"> 3095 <div class="plan-card-label">Monthly</div> 3096 <div class="plan-card-price">${x.monthlyPriceFormatted}<span class="plan-card-price-unit"> </span></div> 3097 <div class="plan-card-subtext">Billed monthly</div> 3098 <div class="plan-card-subtext -tight">Cancel anytime</div> 3099 </div> 3100 3101 <div id="card-yearly" class="plan-card -yearly"> 3102 <div class="plan-card-badge">${C>30?"LIMITED SALE":"BEST VALUE"}</div> 3103 <div class="plan-card-label -bold">Yearly</div> 3104 <div class="plan-card-price">${x.yearlyPriceFormatted}<span class="plan-card-price-unit">/ year</span></div> 3105 <div class="plan-card-subtext -dark">${Ta} / month, billed once a year</div> 3106 <div class="plan-card-subtext -success -tight">${C>30?`Save ${v}`:`Save ${v} \u2014 12 months for the price of 10`}</div> 3107 </div> 3108 </div> 3109 `;v=material.getRadio(A,"Individual",!1,"bcb");C=material.getRadio(H,"Business",!1,"bcb");var K=`<div style="width: 204px;">${material.getInput(!0,".*\\S{3,}.*","formName","Full name","billing name","name","Required",!1,!0)}</div>`,F=`<div style="width: 348px;">${material.getInput(!0,".*\\S{2,}.*","formAddress","Address","billing street-address","ship-address","Address is required",!1,!0)}</div>`,z=`<div style="width: 156px;">${material.getInput(!0,".*\\S{2,}.*","formCity","City","billing address-level2", 3110"ship-city","City is required",!1,!0)}</div>`,g=`<div style="width: 100px;">${material.getInput(!0,".*\\S{2,}.*","formPostcode","Postal code","billing postal-code","ship-zip","Required",!1,!0)}</div>`,m=Object.keys(SubscriptionUtil.statesUS).map(L=>({value:L,label:L}));m=`<div id="formStateWrapper">${material.getSelect("formState","billing-state","",m,"State",!1,!0)}</div>`;
3110Qa=material.getCountrySelect(sa,Qa?Qa.country:"");var w=material.getInput(!1,null,"formVatId","VAT ID","billing vat-id","vatId", 3111"e.g. DE999999999",!1,!1),I=SubscriptionUtil.getPaymentElementPartial("payment-element"),S=`<div style="display:none">${material.getRadio(Z,"",!0,"interval")}</div>`,ma=`<div style="display:none">${material.getRadio(ca,"",!1,"interval")}</div>`,Q=SubscriptionUtil.TERMS_VERSION,l=material.getCheckbox("terms",'<strong>I agree to the <a style="cursor: alias !important;" id="terms" class="href">Terms and Conditions</a> (version '+Q+") and authorize the recurring subscription charges.</strong>",!1,!0, 3112"terms"),M=material.getCheckbox("terms2",la._1+' <a id="withdrawalLink" class="href" style="cursor: alias !important;">'+la._158+"</a>",!1,!0,"terms2"),na=material.getCheckbox("noVatId",'<span id="noVatIdLabel"></span>',!1,!1,"noVatId"),U=material.getButton("submitCheckout",LangUtil.fill(la._165,{price:x.monthlyPriceFormatted}),"shopping-cart");Ta=` 3113 3114 <form id="checkoutForm" style="width: 600px; display:none"> 3115 3116 3117 <!-- Plan Selection --> 3118 <div class="mdc-typography--subtitle2 mb-2">Select Subscription Plan</div> 3119 ${Ta} 3120 <section id="intervalRadio">${S}${ma}</section> <!-- Hidden Radios --> 3121 <div class="checkout-card"> 3122 ${I} 3123 </div> 3124 3125 <div class="checkout-card"> 3126 <div class="card-header"> 3127 <div class="mdc-typography--subtitle2" style="width:194px;">Billing Address</div> 3128 <section id="b2bRadio">${v}${C}<span class="sub_hint sub_hint--radio" title="Your subscription is the same either way. Choose Business if you are buying for your company."><i class="fa fa-question-circle"></i></span></section> 3129 </div> 3130 <div class="card-row">${K}${F}</div> 3131 <div class="card-row"> 3132 ${Qa}${z}${g}${m} 3133 </div> 3134 3135 ${w} 3136 <div id="vatIdErrors" style="display:none;"></div> 3137 </div> 3138 3139 <!-- Legal & CTA --> 3140 <div class="checkout-card -grey -no-margin"> 3141 <div style="margin-bottom: 12px; margin-left: -10px;">${l}</div> 3142 <div id="terms2Row" style="margin-bottom: 12px; margin-left: -10px;">${M}</div> 3143 <div id="noVatIdConfirmRow" style="display:none; margin-bottom: 12px; margin-left: -10px;">${na}</div> 3144 <div style="width: 100%;"> 3145 ${U} 3146 </div> 3147 ${` 3148 <div id="footerDisclaimer" class="card-footer"> 3149 Auto-renews monthly at ${x.monthlyPriceFormatted}. Cancel renewal anytime.<br> 3150 <span>Cancellation stops future billing effective at the end of the current cycle. Single-user license.</span> 3151 </div> 3152 `} 3153 </div> 3154 </form> 3155 `;material.init("#checkoutForm");setTimeout(()=>{var L=document.getElementById("checkoutForm"),ra=document.getElementById("b2bRadio"),Da=document.getElementById("intervalRadio"),Ea=document.getElementById("countrySelect"),oa=document.getElementById("vatIdErrors");ra.querySelectorAll("input[type=radio]").forEach(ob=>ob.required=!0);ColorTip.attach(L.querySelectorAll(".sub_hint"),{color:"blue"});var Ja=document.getElementById("card-monthly"),Ha=document.getElementById("card-yearly"),ya=document.getElementById("footerDisclaimer"), 3156za=ob=>{ob?(DomUtil.setStyles(Ha,{border:"2px solid #007bff","background-color":"#f0f7ff",opacity:"1"}),DomUtil.setStyles(Ja,{border:"2px solid #ddd","background-color":"#fff",opacity:"0.7"})):(DomUtil.setStyles(Ja,{border:"2px solid #007bff","background-color":"#f0f7ff",opacity:"1"}),DomUtil.setStyles(Ha,{border:"2px solid #ddd","background-color":"#fff",opacity:"0.7"}));var ub=document.getElementById(ob?`${ca}-radio`:`${Z}-radio`);ub&&!ub.checked&&(ub.checked=!0,ub.dispatchEvent(new Event("change", 3157{bubbles:!0})));ub=ob?x.yearlyPriceFormatted:x.monthlyPriceFormatted;
3157var Rb=document.getElementById("totalDueDisplay");Rb&&(Rb.textContent=ub);Rb=document.getElementById("submitCheckout");var T=Rb?.querySelector(".mdc-button__label"),va=LangUtil.fill(ob?la._166:la._165,{price:ob?x.yearlyPriceFormatted:x.monthlyPriceFormatted});ob=ob?"annually":"monthly";T?T.textContent=va:Rb&&Array.from(Rb.childNodes).filter(Ma=>Ma.nodeType===3&&Ma.nodeValue.trim().length>0).forEach(Ma=>{Ma.nodeValue=va});ya&&(ya.innerHTML= 3158`Auto-renews ${ob} at ${ub}. Cancel renewal anytime.<br> 3159 <span>Cancellation stops future billing effective at the end of the current cycle. Single-user license.</span>`)};Ja?.addEventListener("click",()=>za(!1));Ha?.addEventListener("click",()=>za(!0));var cb=()=>{var ob=ra.querySelector(":checked")?.id===`${H}-radio`,ub=sa[Ea.querySelector("option:checked")?.id],Rb=String(L.querySelector("#formVatId")?.value||"").replace(/[-,;_:#.\s]/g,"")==="",T=document.getElementById("noVatIdConfirmRow"),va=document.getElementById("noVatId-checkbox"); 3160if(ob&&ub&&ub.isEU===!0&&Rb){ob=ub.b2cRate>0?ub.b2cRate+"% ":"";if(ub=document.getElementById("noVatIdLabel"))ub.innerHTML="My business has <strong>no VAT ID</strong> - my invoices will include "+ob+"VAT (the price I pay stays the same).";va&&(va.required=!0);DomUtil.show(T)}else DomUtil.hide(T),va&&(va.required=!1,va.checked=!1)};L.addEventListener("input",ob=>{ob.target.id==="formVatId"&&cb()});L.addEventListener("focusout",ob=>{ob.target.id==="formVatId"&&cb()});var fb=0,pb=()=>{var ob=ra.querySelector(":checked")?.id=== 3161`${H}-radio`,ub=document.getElementById("formVatId"),Rb=Ea.querySelector("option:checked"),T=sa[Rb.id];T=ob&&T.isEU;Fa(ub?.parentElement,T,fb);Fa(document.getElementById("formVatId-validation-msg"),T,fb);!T&&ub&&(ub.value="");ub=document.getElementById("formName")?.nextElementSibling;ub?.matches("label")&&(ub.textContent=ob?"Company":"Full name");DomUtil.hide(oa);ob=Rb.getAttribute("id")==="US";Rb=document.getElementById("formStateWrapper");if(ub=Rb?.querySelector("select"))ub.disabled=!ob,ub.required= 3162ob;DomUtil.setStyles(Rb,{visibility:ob?"visible":"hidden"});!ob&&ub&&(ub.value="");cb()};[ra,Ea].forEach(ob=>ob.addEventListener("change",pb));pb();window.keepaAnim.fadeIn(L,{duration:600});fb=250;StripeAPI.loadStripe(a).done(ob=>{var ub=StripeAPI.getElementsOptions();ub.amount=Y("DATA");var Rb=ob.elements(ub);Rb.create("payment",StripeAPI.getPaymentElementOptions()).mount("#payment-element");Da.querySelectorAll("input[type=radio]").forEach(T=>T.addEventListener("change",()=>{var va=Da.querySelector(":checked").id=== 3163`${ca}-radio`;Rb.update({amount:va?Y("DATA_YEAR"):Y("DATA")})}));za(!1);L.addEventListener("submit",async T=>{T.preventDefault();bb("checkoutForm");DomUtil.hide(oa);({error:T}=await Rb.submit());if(T)isTest&&T.type!=="validation_error"&&console.log("Stripe error:",T),Ra("checkoutForm");else{var va=Da.querySelector(":checked").id===`${ca}-radio`;if(T=ra.querySelector(":checked")){var Ma=T.id===`${H}-radio`,y=L.querySelector("#countrySelect option:checked");T=y.id;var R=sa[T],qa={payedService:va?X("DATA_YEAR"): 3164X("DATA"),paymentProvider:"CreditCard",coupon:"",billingContact:L.querySelector("#formName").value.trim(),billingStreet:L.querySelector("#formAddress").value.trim(),billingCity:L.querySelector("#formCity").value.trim(),billingZipCode:L.querySelector("#formPostcode").value.trim(),billingState:L.querySelector("#formState").value,billingCountry:y.getAttribute("data-country"),billingCountryId:T,billingVatId:L.querySelector("#formVatId").value.replace(/[-,;_:#.\s]/g,""),billingBusiness:Ma,noVatIdConfirmed:L.querySelector("#noVatId-checkbox")?.checked=== 3165!0,termsVersion:Q,termsAccepted:L.querySelector("#terms-checkbox")?.checked===!0,withdrawalConsent:L.querySelector("#terms2-checkbox")?.checked===!0,consentLocale:languageName};Ma&&R.isEU||(qa.billingVatId="");if(Ma&&R.isEU&&qa.billingVatId===""&&L.querySelector("#noVatId-checkbox")?.checked!==!0)cb(),Ra("checkoutForm");else{var xa={billingContact:"formName",billingStreet:"formAddress",billingCity:"formCity",billingZipCode:"formPostcode"},ja=!0;
3165Object.keys(xa).forEach(Na=>{if(qa[Na].length<(Na=== 3166"billingContact"?3:2)){ja=!1;Na=document.getElementById(xa[Na]);let hb=Na.parentNode.MDCTextField;hb&&(hb.value="");Na.required=!0}});va=L.querySelector("#terms-checkbox")?.checked;Ma=L.querySelector("#terms2-checkbox")?.checked===!0;if(ja&&va&&Ma)try{let Na=await SubscriptionUtil.getValidateVatIdPromise({paymentIntentRequest:qa,countryCode:T,isEu:R.isEU},oa);isTest&&console.info("%cvalidationPromiseResult:","color:orange",Na);if(Na&&Na.success===!0)if(Na.valid===!0&&Na.invalidFields.length===0){let {error:hb, 3167paymentMethod:qb,confirmationToken:ab}=await StripeAPI.createPaymentMethod(ob,Rb,qa);isTest&&console.log(hb,qb,ab,qa);hb?(Ra("checkoutForm"),oa&&(oa.innerHTML=SubscriptionUtil.escapeHtml(hb.message||"Your payment details could not be processed. Please check your card details and try again."),DomUtil.show(oa))):(ab&&(qa.confirmationTokenId=ab.id),qb&&(qa.paymentMethodId=qb.id),Ba({isNewSubscription:!0,isUpgrade:!1,isSwitchToYearly:!1},"checkoutForm",qa,e,ba))}else oa&&(oa.innerHTML=Na.msg,DomUtil.show(oa)), 3168Ra("checkoutForm");else SubscriptionUtil.handleValidateVatIdError(Na,oa),Ra("checkoutForm")}catch(Na){SubscriptionUtil.handleValidateVatIdError(Na,oa),Ra("checkoutForm")}else Ra("checkoutForm")}}else Ra("checkoutForm")}})});document.getElementById("terms")?.addEventListener("click",ob=>{ob.preventDefault();ob.stopPropagation();eb()});document.getElementById("withdrawalLink")?.addEventListener("click",ob=>{ob.preventDefault();ob.stopPropagation();db()})},0);return{html:Ta,onUpdate:e.promise()}},Ia= 3169(sa,Qa=!1)=>{network.request({path:"service/stripe",type:"countries",dashboard:"data"}).done(function(Ta){var ba=Ta.countries,e=(x,v=!1)=>{var C=v?"Data quota reached":x.quantity>1?"Upgrade / Downgrade Keepa Pro subscription":"Upgrade Keepa Pro subscription";x=Ga(x,ba,v,Qa);var A=showPopup(C,(x&&x.html?x.html:"")+'<div style="width=300px" id="loadingIconPopup"></div>',!0);A&&(addon(),x&&x.onUpdate&&x.onUpdate.done(H=>{A.promise.resolve(H)}),A.promise.done(H=>{A.close();addon();H.updated===!0?v?getBucketInformation(): 3170ka(!0):v||ka(!0)}).fail(H=>{v||ka(!0)}))};sa?(Ta=b[sa],typeof Ta==="undefined"?isTest&&console.info("%cSub is undefined!","color:red; ",sa):e(Ta)):W().done(()=>{var x;for(let v in b)b[v].subscribed===!0&&(x=b[v]);typeof x==="undefined"?showPopup(QuotaUI.getTitle(),QuotaUI.getInfo(),!0):e(x,!0)})}).fail(showErrorPopup)},Ga=(sa,Qa,Ta=!1,ba=!1)=>{var e=Deferred(),x=sa.cancel_at_period_end,v=typeof storage.email==="undefined"||storage.email===""||storage.email.length===0,C=Date.now()-t<24192E5,A=sa.quantity, 3171H=[];for(var Z=C?A:1;Z<=60;Z++)(x||v)&&A!==Z||H.push({value:Z,label:Z});var ca=100*A;Z=Money.format(sa.price*A,{sourceDomainId:sa.currencyDomainId,targetDomainId:sa.currencyDomainId,noDigits:!0,forceEuropeanStyle:!0});var K=material.getSelect("dataQuantity","dataQuantity",A,H,!1,!0);H=material.getButton("updateDataSubmit",A>1?"Upgrade / Downgrade now":"Upgrade now","refresh");var F=material.getButton("cancelUpdate","Cancel","ban",null,!1,!0),z=SubscriptionUtil.TERMS_VERSION,g=material.getCheckbox("termsUpd", 3172'<strong>I agree to the <a style="cursor: alias !important;" id="termsLinkUpd" class="href">Terms and Conditions</a> (version '+z+") and authorize the recurring subscription charges.</strong>",!1,!1,"termsUpd"),m=material.getCheckbox("terms2Upd",la._1+' <a id="withdrawalLinkUpd" class="href" style="cursor: alias !important;">'+la._158+"</a>",!1,!1,"terms2Upd"),w=`Add Keepa Pro subscriptions to increase your daily quota or purchase additional seats for your team. Each user requires their own seat. 3173For better security, we recommend creating separate accounts for each user. 3174<br><br>Currently, you have <b>${A}</b> active subscription${A>1?"s":""}.`;da(sa.sku);sa.subscribedTill&&Date.now();A>1&&(w+=C?"<br><div>You can only downgrade once per month. You can not downgrade again.</div>":"<br>To downgrade decrease the number of subscriptions.");C=SubscriptionUtil.getPaymentElementPartial("payment-element");var I=null,S=`<section style="color:#ff4500;">In order to upgrade${Ta?"":" / downgrade"} your subscription your email address is required. You can add it <a href="https://keepa.com/#!channels/" class="href">here</a>.</section>`, 3175ma=`You can upgrade your account as often as you want, but a downgrade is only possible once per month. 3176 ${sa.interval==="month"?'<span style="color: tomato;">\n <br><br>Important note:\n <br>This does not change your monthly plan to a yearly plan. An upgrade increases your daily quota.\n <br>To convert to a yearly payment click on \u201cSwitch to yearly\u201d on your subscription dashboard.\n <br>If you have questions please contact us at <a class="href" href="mailto:[email protected]">[email protected]</a>.</span>':""}`;ca=`<section>${x? 3177"As your Keepa Pro subscription is cancelled you cannot edit it. You need to subscribe anew once the current period is over.":w}</section> 3178 ${v?S:""} 3179 <section>Quantity: ${K} <span class="updatedata__quota highlight">= ${ca}% Quota</span></section> 3180 `;Ta&&(ma="Upgrade for a higher daily limit and uninterrupted access.",ca='<p class="mdc-typography--subtitle2 m-y-10">You\u2019ve reached your data limit.</p>\n <p>Your Keepa Pro plan includes a data allowance for loading product details.</p>\n <ul class="list--disc">\n <li>Your quota refills automatically by <b>5% per hour</b> (up to <b>100%</b>).</li>\n <li>Interactive graphs are always available and do <b>not</b> count toward your quota.</li>\n <li>Repeating the same request within 1 hour does <b>not</b> reduce your quota.</li>\n </ul>\n <p class="mb-4"><b>Want uninterrupted access?</b> Upgrade for a larger allowance.</p>', 3181x&&(ca+='<p class="mb-4">As your Keepa Pro subscription is cancelled you cannot edit it. You need to subscribe anew once the current period is over.</p>'),v&&(ca+=S));Z=`<div id="updateDataPopupWrapper" class="updatedata"> 3182 <form id="checkoutForm"> 3183 ${ca} 3184 <div class="checkout-card"> 3185 Your <span class="updatedata__pricehint">current</span> ${sa.interval}ly subscription fee: <span class="updatedata__price highlight">${Z}</span> / ${sa.interval} 3186 <div id="proration" class="hidden mt-4"></div> 3187 </div> 3188 <section id="payment-element-update-wrapper" class="checkout-card" style="display:none;">${C}</section> 3189 <div class="checkout-card -grey -no-margin">
3190 <div id="consentRowsUpd" style="display:none;"> 3191 <div style="margin-bottom: 12px; margin-left: -10px;">${g}</div> 3192 ${m?`<div style="margin-bottom: 12px; margin-left: -10px;">${m}</div>`:""} 3193 </div> 3194 <div class="card-row">${H}${F}</div> 3195 <div class="card-footer">${ma}</div> 3196 </div> 3197 </form> 3198 </div>`;material.init("#checkoutForm");setTimeout(()=>{var Q=document.getElementById("checkoutForm"),l=document.getElementById("updateDataSubmit"),M=document.getElementById("cancelUpdate");l&&(l.disabled=!0);M?.addEventListener("click",function(na){na.preventDefault();e.resolve({updated:!1})});document.getElementById("termsLinkUpd")?.addEventListener("click",na=>{na.preventDefault();na.stopPropagation();eb()});document.getElementById("withdrawalLinkUpd")?.addEventListener("click",na=> 3199{na.preventDefault();na.stopPropagation();db()});StripeAPI.loadStripe(a).done(function(na){var U=StripeAPI.getElementsOptions();U.amount=Y("DATA");var L=na.elements(U);L.create("payment",StripeAPI.getPaymentElementOptions()).mount("#payment-element");var ra=document.getElementById("dataQuantity"),Da=!1,Ea=document.getElementById("resetBillingCycle-checkbox");Ea&&(Ea.addEventListener("change",function(){Da=Ea.checked;ra?.dispatchEvent(new Event("change",{bubbles:!0}))}),(window.location.hash==="#!upgrade"|| 3200ba)&&setTimeout(function(){Ea.checked=!0;Ea.dispatchEvent(new Event("change",{bubbles:!0}))},100));var oa={},Ja=ya=>{ya=Math.max(Math.min(ya,60),1);var za=ya+"_"+Da;Ea&&(Ea.disabled=!0);ra&&(ra.disabled=!0);l&&(l.disabled=!0);M&&(M.disabled=!0);var cb=fb=>{if(fb&&fb[0]&&fb[0].lines&&fb[0].lines.data){fb=fb[0];var pb=0,ob=0,ub="",Rb="";for(var T=0;T<fb.lines.data.length;T++){var va=fb.lines.data[T];if((va.subscription?typeof va.subscription==="string"?va.subscription:va.subscription.id:null)===sa.subscriptionId){var Ma= 3201(va.description||"").replace(". Provides access to all features of the Data section","").replace("- Provides access to all features of the Data section","");va.amount<0?(ub=Ma,pb+=-1*va.amount):(Rb=Ma,ob+=va.amount)}}T=-pb+ob;va=Number(fb.startingBalance||0);var y=va<0?-va:0;fb=Number(fb.amountDue||0);I=va=fb>0;var R=Math.min(y,Math.max(T,0)),qa=ab=>Money.format(ab,{sourceDomainId:3,targetDomainId:3,forceEuropeanStyle:!0}),xa=qa(pb),ja=qa(ob);qa(Math.abs(T));var Na=qa(y),hb=qa(R);Ma=qa(fb);var qb= 3202[];pb>0&&qb.push(` 3203 <li style="margin-bottom: 8px;"> 3204 <div style="display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 2px;"> 3205 <span style="color: #333;">Credit adjustment</span> 3206 <span style="font-weight: 500;">${xa}</span> 3207 </div> 3208 ${ub?`<div style="display: block; font-size: 0.85em; color: #777; line-height: 1.2;">${ub}</div>`:""} 3209 </li> 3210 `);ob>0&&qb.push(` 3211 <li style="margin-bottom: 8px;"> 3212 <div style="display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 2px;"> 3213 <span style="color: #333;">New plan charge</span> 3214 <span style="font-weight: 500;">${ja}</span> 3215 </div> 3216 ${Rb?`<div style="display: block; font-size: 0.85em; color: #777; line-height: 1.2;">${Rb}</div>`:""} 3217 </li> 3218 `);y>0&&qb.push(` 3219 <li style="display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 2px;"> 3220 <span style="color: #333;">Available account balance</span> 3221 <span style="font-weight: 500;">${Na}</span> 3222 </li> 3223 `);R>0&&qb.push(` 3224 <li style="display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 2px;"> 3225 <span style="color: #333;">Balance used today</span> 3226 <span style="font-weight: 500;">- ${hb}</span> 3227 </li> 3228 `);T<0&&(pb=qa(Math.abs(T)),qb.push(` 3229 <li style="margin-top: 8px; padding: 8px; background-color: #f1f8e9; border-radius: 4px; border: 1px solid #c8e6c9;"> 3230 <div style="display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 2px;">
3231 <span style="color: #2e7d32; font-weight:bold;">New credit added</span> 3232 <span style="color: #2e7d32; font-weight:bold;">${pb}</span> 3233 </div> 3234 <div style="font-size: 0.85em; color: #558b2f;">Automatically applied to future invoices.</div> 3235 </li> 3236 `));pb=fb>0&&fb<50;fb>=0&&qb.push(` 3237 <li style="margin-top: 12px; padding-top: 10px; border-top: 1px solid #e0e0e0; display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 2px;"> 3238 <span style="font-weight: bold; font-size: 1.1em;">Total to pay today</span> 3239 <div> 3240 <span class="highlight" style="font-weight: bold; font-size: 1.1em;">${Ma}</span> 3241 </div> 3242 </li> 3243 `);pb&&qb.push(` 3244 <li style="margin-top: 6px; font-size: 0.85em; color: #ec553a; text-align: right; font-weight: bold;"> 3245 The upgrade amount of ${Ma} is below the payment provider minimum of \u20ac0.50. Please perform this upgrade after your next renewal. 3246 </li> 3247 `);va&&qb.push('\n <li style="margin-top: 6px; font-size: 0.85em; color: #666; text-align: right;">\n Updates take effect immediately upon payment.\n </li>\n ');replaceHtml("proration",`<ul style="list-style: none; padding: 0; margin: 10px 0;">${qb.join("")}</ul>`);DomUtil.show(document.getElementById("proration"));va?(DomUtil.show(document.getElementById("payment-element-update-wrapper")),L.update({amount:fb})):DomUtil.hide(document.getElementById("payment-element-update-wrapper")); 3248addon();ra&&(ra.disabled=!1);Ea&&(Ea.disabled=!1);l&&(l.disabled=ya===A&&!Da||ya<1||pb);M&&(M.disabled=!1)}else showErrorPopup()};oa[za]?cb(oa[za]):network.request({path:"service/stripe",type:"upcomingInvoice",subscriptionId:sa.subscriptionId,subscriptionPlan:sa.sku,quantity:ya,resetBillingCycle:Da,dashboard:"data"}).done(function(fb){Ea&&(Ea.disabled=!1);oa[za]=fb.invoices;cb(fb.invoices)}).fail(()=>{e.resolve({updated:!1});setTimeout(()=>{showErrorPopup()},500)})},Ha=ya=>{var za=Math.max(Math.min(Number(ya), 324960),1),cb=100*za,fb=Money.format(sa.price*za,{sourceDomainId:sa.currencyDomainId,targetDomainId:sa.currencyDomainId,noDigits:!0,forceEuropeanStyle:!0});document.querySelectorAll(".updatedata__quota").forEach(ob=>ob.textContent=`= ${cb}% Quota`);document.querySelectorAll(".updatedata__price").forEach(ob=>ob.textContent=fb);document.querySelectorAll(".updatedata__pricehint").forEach(ob=>ob.textContent=za===A?"current":"new");l&&(l.disabled=za===A&&!Da||za<1);var pb=document.getElementById("consentRowsUpd"); 3250if(pb){(ya=za>A||Da)?DomUtil.show(pb):DomUtil.hide(pb);if(pb=Q.querySelector("#termsUpd-checkbox"))pb.required=ya;if(pb=Q.querySelector("#terms2Upd-checkbox"))pb.required=ya}replaceHtml("proration","");DomUtil.hide(document.getElementById("proration"));addon();DomUtil.hide(document.getElementById("payment-element-update-wrapper"));(za!=A||Da)&&Ja(za)};Ta?x||v||Ha(A+1):ra?.addEventListener("change",function(){Ha(ra.value)});Q?.addEventListener("submit",async ya=>{ya.preventDefault();bb("checkoutForm"); 3251ya=Ta?A+1:Number(ra.value);var za=f.find(cb=>cb.subscriptionId==sa.subscriptionId);if(typeof za==="undefined")e.resolve({updated:!1}),setTimeout(()=>{showErrorPopup()},500);else if(za.quantity=Math.max(Math.min(ya,60),1),za.resetBillingCycle=Da,ya=za.quantity<A&&!Da,za.quantity>A||Da){ya=Q.querySelector("#termsUpd-checkbox")?.checked===!0;let cb=Q.querySelector("#terms2Upd-checkbox")?.checked===!0;ya&&cb?(za.termsVersion=z,za.termsAccepted=ya,za.withdrawalConsent=cb,za.consentLocale=languageName, 3252I===!1)?Ba({isNewSubscription:!1,isUpgrade:!0,isSwitchToYearly:!1},"checkoutForm",za,e,null):({error:ya}=await L.submit(),ya)?(isTest&&ya.type!=="validation_error"&&console.log("todo handle error?",ya),Ra("checkoutForm")):(za.billingCountry&&Qa&&(ya=Object.values(Qa).find(fb=>fb.name===za.billingCountry))&&(za.billingCountryId=ya.id),StripeAPI.createPaymentMethod(na,L,za).then(({error:fb,paymentMethod:pb,confirmationToken:ob})=>{isTest&&console.log(fb,pb,za);fb||(ob&&(za.confirmationTokenId=ob.id), 3253pb&&(za.paymentMethodId=pb.id),Ba({isNewSubscription:!1,isUpgrade:!0,isSwitchToYearly:!1},"checkoutForm",za,e,null))})):Ra("checkoutForm")}else ya?Ba({isNewSubscription:!1,isUpgrade:!1,isSwitchToYearly:!1},"checkoutForm",za,e,null):e.resolve({updated:!1})})})},0);return{onUpdate:e.promise(),html:Z}},Ya=sa=>{var Qa=Ta=>{da(Ta.sku)||network.request({path:"service/stripe",type:"countries",dashboard:"data"}).done(function(ba){ba=Pa(Ta,ba.countries);var e=showPopup("Change billing cycle to yearly",(ba&& 3254ba.html?ba.html:"")+'<div style="width=300px" id="loadingIconPopup"></div>',!0);e&&(addon(),ba&&ba.onUpdate&&ba.onUpdate.done(x=>{e.promise.resolve(x)}),e.promise.done(x=>{e.close();addon();ka(!0)}).fail(x=>{ka(!0)}))}
3254).fail(showErrorPopup)};if(sa){let Ta=b[sa];typeof Ta==="undefined"?isTest&&console.info("%cSub is undefined!","color:red; ",sa):Qa(Ta)}else W().done(()=>{var Ta;for(let ba in b)b[ba].subscribed===!0&&(Ta=b[ba]);Qa(Ta)})},Pa=(sa,Qa)=>{var Ta=Deferred(),ba=sa.cancel_at_period_end,e=typeof storage.email=== 3255"undefined"||storage.email===""||storage.email.length===0,x=material.getButton("updateDataSubmit","Switch to yearly now",null,"refresh"),v=material.getButton("cancelUpdate","Cancel","ban",null,!1,!0),C=SubscriptionUtil.TERMS_VERSION,A=material.getCheckbox("termsUpd",'<strong>I agree to the <a style="cursor: alias !important;" id="termsLinkUpd" class="href">Terms and Conditions</a> (version '+C+") and authorize the recurring subscription charges.</strong>",!1,!0,"termsUpd"),H=material.getCheckbox("terms2Upd", 3256la._1+' <a id="withdrawalLinkUpd" class="href" style="cursor: alias !important;">'+la._158+"</a>",!1,!0,"terms2Upd"),Z=SubscriptionUtil.getPaymentElementPartial("payment-element");ba=`<div id="updateDataPopupWrapper" class="updatedata"> 3257 <form id="checkoutForm"> 3258 <section>${ba?"As your Keepa Pro subscription is cancelled you cannot edit it. You need to subscribe anew once the current period is over.":"Switch to annual and save. Unused time on your monthly plan is credited and deducted from today\u2019s annual payment."}</section> 3259 ${e?'<section style="color:#ff4500;">In order to edit your subscription your email address is required. You can add it <a href="https://keepa.com/#!channels/" class="href">here</a>.</section>':""} 3260 <section id="proration" class="hidden"></section> 3261 3262 <div id="payment-element-update-wrapper" class="checkout-card" style="display:none;">${Z}</div> 3263 <div class="checkout-card -grey -no-margin"> 3264 <div style="margin-bottom: 12px; margin-left: -10px;">${A}</div> 3265 ${H?`<div style="margin-bottom: 12px; margin-left: -10px;">${H}</div>`:""} 3266 <div class="card-row">${x}${v}</div> 3267 <div class="card-footer"> 3268 Important note: Cancellation is possible at any time. All payments are non-refundable. 3269 It is not possible to switch back to a monthly billing cycle during a yearly term. 3270 If you have questions please contact us at <a class="href" href="mailto:[email protected]">[email protected]</a>.</div> 3271 </div> 3272 3273 </form> 3274 </div>`;material.init("#checkoutForm");setTimeout(()=>{var ca=document.getElementById("checkoutForm"),K=document.getElementById("updateDataSubmit"),F=document.getElementById("cancelUpdate");K&&(K.disabled=!0);F?.addEventListener("click",function(g){g.preventDefault();Ta.resolve({updated:!1})});K&&(K.disabled=!0);F&&(F.disabled=!0);document.getElementById("termsLinkUpd")?.addEventListener("click",g=>{g.preventDefault();g.stopPropagation();eb()});document.getElementById("withdrawalLinkUpd")?.addEventListener("click", 3275g=>{g.preventDefault();g.stopPropagation();db()});var z=g=>{if(g==null||g[0].length==0||g[0]==null)showErrorPopup();else{g=g[0];var m=0,w=0,I="",S="";for(var ma=0;ma<g.lines.data.length;ma++){var Q=g.lines.data[ma];Q.subscription.id==sa.subscriptionId&&(Q.description.id=Q.description.replace(". Provides access to all features of the Data section",""),Q.amount<0?(I=Q.description,m=-1*Q.amount):(S=Q.description,w=Q.amount))}var l=-m+w;m=Money.format(m,{sourceDomainId:3,targetDomainId:3,forceEuropeanStyle:!0}); 3276ma=Money.format(w,{sourceDomainId:3,targetDomainId:3,forceEuropeanStyle:!0});w=Money.format(l,{sourceDomainId:3,targetDomainId:3,forceEuropeanStyle:!0});g=Money.format(g.lines.data[g.lines.data.length-1].amount,{sourceDomainId:3,targetDomainId:3,forceEuropeanStyle:!0});Q=l>0&&l<50;I=l<=0?`<li>You will receive a credit in your account of: <span class="highlight">${w}</span></li> 3277 <li>• This credit will be applied to future invoices (<strong>no refund possible</strong>).</li>`:`<li>Immediate amount due: <span class="highlight">${w}</span> <i class="fa fa-question" title="${` 3278 <p><span>Credit:</span>${m} - ${I}</p> 3279 <p><span>Prorated charge:</span>${ma} - ${S}</p> 3280 `}"></i></li>`;Q&&(I+=`<li style="margin-top: 6px; font-size: 0.85em; color: #ec553a; font-weight: bold;">The upgrade amount of ${w} is below the payment provider minimum of \u20ac0.50. Please perform this upgrade after your next renewal.</li>`);replaceHtml("proration",` 3281 <section>Your new subscription fee: <span class="updatedata__price highlight">${g}</span>
3281 / Year</section> 3282 <ul>${I}</ul> 3283 `);DomUtil.show(document.getElementById("proration"));DomUtil.show(document.getElementById("payment-element-update-wrapper"));addon();ColorTip.attach(document.querySelectorAll(".fa-question"),{color:"blue"});K&&(K.disabled=Q);F&&(F.disabled=!1);StripeAPI.loadStripe(a).done(function(M){var na=StripeAPI.getElementsOptions();na.amount=l;var U=M.elements(na);U.create("payment",StripeAPI.getPaymentElementOptions()).mount("#payment-element");ca?.addEventListener("submit",async L=>{L.preventDefault(); 3284bb("checkoutForm");var ra=f.find(Da=>Da.subscriptionId==sa.subscriptionId);if(typeof ra==="undefined")Ta.resolve({updated:!1}),setTimeout(()=>{showErrorPopup()},500);else{let Da=ca.querySelector("#termsUpd-checkbox")?.checked===!0,Ea=ca.querySelector("#terms2Upd-checkbox")?.checked===!0;Da&&Ea?({error:L}=await U.submit(),L)?(isTest&&L.type!=="validation_error"&&console.log("todo handle error?",L),Ra("checkoutForm")):(ra.payedService=X("DATA_YEAR"),ra.termsVersion=C,ra.termsAccepted=Da,ra.withdrawalConsent= 3285Ea,ra.consentLocale=languageName,ra.billingCountry&&Qa&&(L=Object.values(Qa).find(oa=>oa.name===ra.billingCountry))&&(ra.billingCountryId=L.id),StripeAPI.createPaymentMethod(M,U,ra).then(({error:oa,paymentMethod:Ja,confirmationToken:Ha})=>{isTest&&console.log(oa,Ja,ra);oa||(Ha&&(ra.confirmationTokenId=Ha.id),Ja&&(ra.paymentMethodId=Ja.id),Ba({isNewSubscription:!1,isUpgrade:!1,isSwitchToYearly:!0},"checkoutForm",ra,Ta,null))})):Ra("checkoutForm")}})})}};network.request({path:"service/stripe",type:"upcomingInvoice", 3286subscriptionId:sa.subscriptionId,subscriptionPlan:X("DATA_YEAR"),quantity:sa.quantity,dashboard:"data"}).done(function(g){z(g.invoices)}).fail(()=>{Ta.resolve({updated:!1});setTimeout(()=>{showErrorPopup()},500)})},0);return{onUpdate:Ta.promise(),html:ba}},ta=sa=>{if(sa){let Qa=b[sa];typeof Qa==="undefined"?isTest&&console.info("%cSub is undefined!","color:red; ",sa):network.request({path:"service/stripe",type:"countries",dashboard:"data"}).done(function(Ta){Ta=ea(Qa,Ta.countries);var ba=showPopup("Update invoice address", 3287(Ta&&Ta.html?Ta.html:"")+'<div style="width=300px" id="loadingIconPopup"></div>',!0);ba&&(Ta&&Ta.onUpdate&&Ta.onUpdate.done(e=>{ba.promise.resolve(e)}),ba.promise.done(e=>{ba.close();ka(!0)}).fail(e=>{ka(!0)}))}).fail(()=>{showErrorPopup()})}},ea=(sa,Qa)=>{var Ta=Deferred(),ba=null;for(var e=0;e<f.length;e++){var x=f[e];if(x.subscriptionId==sa.subscriptionId){ba=x;break}}var v=Object.values(Qa).find(g=>g.name===ba.billingCountry);e=material.getButton("updateBillingAddressSubmit","Update invoice address", 3288"book");x=material.getButton("cancelBillingAddress","Cancel","ban",null,!1,!0);var C=material.getRadio("individual","Individual",ba.billingBusiness!==!0,"bcb"),A=material.getRadio("business","Business",ba.billingBusiness===!0,"bcb"),H='<div style="width: 204px;"> '+material.getInput(!0,".*\\S{3,}.*","formName","Full name","billing name","name","Required",!1,!0,"",ba.billingContact)+"</div>",Z='<div style="width: 348px;">'+material.getInput(!0,".*\\S{2,}.*","formAddress","Address","billing street-address", 3289"ship-address","Address is required",!1,!0,"",ba.billingStreet)+"</div>",ca='<div style="width: 156px;">'+material.getInput(!0,".*\\S{2,}.*","formCity","City","billing address-level2","ship-city","City is required",!1,!0,"",ba.billingCity)+"</div>",K='<div style="width: 100px;">'+material.getInput(!0,".*\\S{2,}.*","formPostcode","Postal code","billing postal-code","ship-zip","Required",!1,!0,"",ba.billingZipCode)+"</div>",F=[];for(var z in SubscriptionUtil.statesUS)F.push({value:z,label:z});z=`<div id="formStateWrapper">${material.getSelect("formState", 3290"billing-state",ba.billingState?ba.billingState:"",F,"State",!1,!0)}</div>`;v=material.getCountrySelect(Qa,v?v.id:"");F=material.getInput(!1,null,"formVatId","VAT ID","billing vat-id","vatId","e.g. DE999999999",!1,!1,"",ba.billingVatId);e=`<div id="updateBillingAddressPopupWrapper" style="width: 600px;"> 3291 <section style="margin-bottom: 12px;">Changes to your invoice address will only apply to future invoices.<br>If you have questions please contact us at <a class="href" href="mailto:[email protected]">[email protected]</a>.</section> 3292 <form id="updateBillingAddressForm" style="width: 600px;"> 3293 <div class="checkout-card"> 3294 <div class="card-header"> 3295 <div class="mdc-typography--subtitle2" style="width:194px;">Billing Address</div> 3296 <section id="b2bRadio" >${C}${A}<span class="sub_hint sub_hint--radio" title="Your subscription is the same either way. Choose Business if you are buying for your company."><i class="fa fa-question-circle"></i></span></section> 3297 </div> 3298 <div class="card-row">${H}${Z}</div> 3299 <div class="card-row">${v}${ca}${K}${z}</div> 3300 ${F} 3301 <div id="vatIdErrors" style="display:none;"></div> 3302 <div class="card-row">${e}${x}</div> 3303 </div> 3304 </form> 3305 </div>`;material.init("#updateBillingAddressForm");setTimeout(()=>{var g=document.getElementById("updateBillingAddressForm"),m=document.getElementById("b2bRadio"),w=document.getElementById("countrySelect"),I=document.getElementById("vatIdErrors"),S=0,ma=()=>
3305{var Q=w.querySelector("option:checked"),l=document.getElementById("formVatId"),M=m.querySelector(":checked")?.id=="business-radio",na=M&&Qa[Q?.id]?.isEU===!0;Fa(l?.parentElement,na,S);Fa(document.getElementById("formVatId-validation-msg"), 3306na,S);!na&&l&&(l.value="");l=document.getElementById("formName")?.nextElementSibling;l?.matches("label")&&(l.textContent=M?"Company":"Full name");DomUtil.hide(I);Q=Q.getAttribute("id")=="US";M=document.getElementById("formStateWrapper");l=M?.querySelector("select");Q?(l&&(l.disabled=!1,l.required=!0),DomUtil.setStyles(M,{visibility:"visible"})):(l&&(l.value="",l.disabled=!0,l.required=!1),DomUtil.setStyles(M,{visibility:"hidden"}))};[m,w].forEach(Q=>Q.addEventListener("change",ma));ma();DomUtil.show(g); 3307S=250;ColorTip.attach(g.querySelectorAll(".sub_hint"),{color:"blue"});document.getElementById("cancelBillingAddress")?.addEventListener("click",function(Q){Q.preventDefault();Ta.resolve({updated:!1})});g.addEventListener("submit",Q=>{Q.preventDefault();bb("updateBillingAddressForm");DomUtil.hide(I);var l={billingContact:g.querySelector("#formName").value.trim(),billingStreet:g.querySelector("#formAddress").value.trim(),billingCity:g.querySelector("#formCity").value.trim(),billingZipCode:g.querySelector("#formPostcode").value.trim(), 3308billingState:g.querySelector("#formState").value,billingCountry:g.querySelector("#countrySelect option:checked").getAttribute("data-country"),billingVatId:g.querySelector("#formVatId").value.replace(/[-,;_:#.\s]/g,""),billingBusiness:m.querySelector(":checked").id=="business-radio",noVatIdConfirmed:DomUtil.data(g,"noVatConfirmed")===!0};l.billingBusiness!==!0&&(l.billingVatId="");Q=g.querySelector("#countrySelect option:checked").id;Qa[Q].isEU!==!0&&(l.billingVatId="");if(SubscriptionUtil.confirmProceedWithoutVatId({isBusiness:l.billingBusiness, 3309isEu:Qa[Q].isEU===!0,vatId:l.billingVatId,previousVatId:ba&&ba.billingVatId||"",$form:g,$target:I,ratePercent:Qa[Q].b2cRate,grossPricing:!0,retry:()=>g.dispatchEvent(new Event("submit",{bubbles:!0,cancelable:!0}))})){var M={billingContact:"formName",billingStreet:"formAddress",billingCity:"formCity",billingZipCode:"formPostcode"},na=!0;["billingContact","billingStreet","billingCity","billingZipCode"].forEach(U=>{l[U].length<(U==="billingContact"?3:2)&&(na=!1,U=document.getElementById(M[U]),U.parentNode.MDCTextField.value= 3310"",U.required=!0)});na?SubscriptionUtil.getValidateVatIdPromise({paymentIntentRequest:l,countryCode:Q,isEu:Qa[Q].isEU},I).done(U=>{isTest&&console.info("%cvalidationPromiseResult:","color:orange",U);U==null||U.success!==!0?(SubscriptionUtil.handleValidateVatIdError(U,I),Ra("updateBillingAddressForm")):U.valid===!0&&U.invalidFields.length===0?(isTest&&(U.validationNeeded===!0?console.info("%cVatId:","color:green","everything is valid - proceed with editAddressSubscription..."):console.info("%cVatId:", 3311"color:green","no validation needed - proceed with editAddressSubscription...")),network.request({path:"service/stripe",type:"editAddressSubscription",content:JSON.stringify(l),subscriptionId:sa.subscriptionId,dashboard:"data"}).done(function(L){isTest&&console.log(L);L=material.getButton("closePopup","Ok, close","window-close",null,!1,!1);g.innerHTML=`<p style="color:#00b753;margin:2em 0;">Your invoice address has been successfully updated.</p><br><div>${L}</div>`;Ra("updateBillingAddressForm"); 3312document.getElementById("closePopup")?.addEventListener("click",function(ra){ra.preventDefault();Ta.resolve({updated:!0})})}).fail(L=>{g.innerHTML=la._error;Ra("updateBillingAddressForm")})):(I&&(I.innerHTML=U.msg,DomUtil.show(I)),Ra("updateBillingAddressForm"))}).fail(U=>{SubscriptionUtil.handleValidateVatIdError(U,I);Ra("updateBillingAddressForm")}):Ra("updateBillingAddressForm")}else Ra("updateBillingAddressForm")})},0);return{onUpdate:Ta.promise(),html:e}},Fa=(sa,Qa,Ta)=>{sa&&(Ta?Qa?window.keepaAnim.slideDown(sa, 3313{duration:Ta,complete:()=>{sa.style.display=""}}):window.keepaAnim.slideUp(sa,{duration:Ta}):Qa?DomUtil.show(sa):DomUtil.hide(sa))},bb=sa=>{DomUtil.hide(document.getElementById(sa));DomUtil.show(document.getElementById("loadingIconPopup"))},Ra=sa=>{DomUtil.show(document.getElementById(sa));DomUtil.hide(document.getElementById("loadingIconPopup"))},Sa=sa=>{sa=document.getElementById(sa);var Qa=sa?.closest(".generalOverlay");Qa&&(Qa=Qa.scrollHeight-Qa.clientHeight,Qa>0&&(sa.style.height=Math.max(200, 3314sa.offsetHeight-Qa)+"px"))},db=()=>{network.ajax(SubscriptionUtil.withdrawalUrl()).done(function(sa){showPopPopup(la._158,'<div id="printWithdrawal" style="cursor: pointer; z-index: 1; position: absolute; right: 50px;top: 10px;"><i class="fa fa-print"></i></div><div style="max-width: 900px; margin-bottom: 14px; padding: 10px 14px; background: #f5f7f9; border-left: 4px solid #10314f;"><strong>Keepa supplies digital content, and delivery begins immediately when you subscribe.</strong> If you give the consent requested at checkout, your right of withdrawal expires at that moment — see “Premature expiry of the right of withdrawal” below.</div><div id="withdrawalDoc" style="padding-right: 20px; text-align:justify; max-width: 900px;height:'+ 3315(window.innerHeight-200)+'px;overflow-y: auto;">
3315'+sa+"</div>",!0);Sa("withdrawalDoc");document.getElementById("printWithdrawal")?.addEventListener("click",()=>printTermsDocument(la._158,"withdrawalDoc"))}).fail(showErrorPopup)},eb=()=>{network.ajax(SubscriptionUtil.termsUrl()).done(function(sa){showPopPopup("Terms and Conditions",'<div id="printTerms" style="cursor: pointer; z-index: 1; position: absolute; right: 50px;top: 10px;"><i class="fa fa-print"></i> Print Terms</div><div id="termsAPI" style="padding-right: 20px; text-align:justify; max-width: 900px;height:'+ 3316(window.innerHeight-200)+'px;overflow-y: auto;">'+sa+"</div>",!0);Sa("termsAPI");document.getElementById("printTerms")?.addEventListener("click",()=>printTermsDocument("Terms and Conditions for Keepa.com","termsAPI"))}).fail(showErrorPopup)};return{PROMO_PRICE_PRO_MONTH:29,init:ka,initUpdateData:Ia,reset:P}})();let tabBars; 3317const SettingsPage=(()=>{var a=()=>{var d=tabSwitcher();tabBars=d;setColumnLayout("form");d.listen("MDCTabBar:change",({detail:k})=>{k.activeTabIndex==1&&SettingsSubscription.init();setTabSubUrl(k.activeTabIndex)});var f=parseInt(lastSubUrl);f>=0&&f<d.tabCount?(f==1&&SettingsSubscription.init(),d.activeTabIndex=f,d.updatePanel(f)):lastUrl==="#!settings"?(d.activeTabIndex=2,d.updatePanel(2)):window.location.hash==="#!upgrade"&&(SettingsSub
3317scription.init(),d.activeTabIndex=1,d.updatePanel(1));storage.accountType== 33180?(replaceHtml("settingsBox",'<span class="subsubHeadline2">'+la._52+"</span><br>"+la._53),DomUtil.hide(document.getElementById("settingsSelect")),DomUtil.show(document.getElementById("settingsBox")),DomUtil.setStyles(document.getElementById("settingsTabs"),{borderTop:"0px"})):(SettingsNotification.init(),document.getElementById("notification-channels")?.setAttribute("rel","active"),c(),isSettings=!0,insertSettings(),d.listen("MDCTabBar:change",({detail:k})=>{k.activeTabIndex==1&&SettingsSubscription.init(); 3319var n=document.getElementById("accountEmailSave");k.activeTabIndex==2&&n&&!DomUtil.isVisible(n)&&(k=document.getElementById("accountEmailInput"))&&(k.value=storage.email||"")}))},b=(d,f)=>{document.querySelectorAll('label[for="'+d+'"]').forEach(k=>{k.querySelectorAll(".error").forEach(n=>n.remove());f&&k.insertAdjacentHTML("beforeend",'<span class="error">'+f+"</span>")})},c=()=>{var d=getNewPasswordHtml(),f='<div id="passCheck" ><table class="trackFormTable"><tr><td colspan="2"><label for="pwCheck">'+ 3320la._60+'</label></td></tr><tr><td class="trackFormTable-id"><input type="password" rel="ids" maxlength="1024" name="pwCheck" id="pwCheck" /><div style="padding: 10px;"></div><input type="submit" id="submitDelete" class="button" value="'+la._61+'" /></tr></table></div>';d=`<div class="dashboard"> 3321 <h3 class="group-header">${la._516}</h3> 3322 3323 <div class="card"> 3324 <h4 class="card-title">${la._41}</h4> 3325 <div class="setting-row -compact"> 3326 <div class="setting-row__label">${la._4}</div> 3327 <div class="setting-row__control"> 3328 <span class="account-username">${SubscriptionUtil.escapeHtml(storage.username)}</span> 3329 </div> 3330 </div> 3331 <div class="setting-row -compact"> 3332 <div class="setting-row__label">${la._5}</div> 3333 <div class="setting-row__control"> 3334 <div class="account-email"> 3335 <input type="text" id="accountEmailInput" class="js-email-input inputDefault" rel="ids" 3336 value="${storage.email||""}" placeholder="${la._69}"> 3337 <span id="accountEmailSave" class="card-action js-email-save" style="display: none;"><i class="fa fa-floppy-o"></i>${la._1176}</span> 3338 </div> 3339 </div> 3340 </div> 3341 <p class="card-desc account-hint">${la._1724}</p> 3342 </div> 3343 3344 <div class="card"> 3345 <h4 class="card-title">${la._6}</h4> 3346 <span class="card-action settings-chpw"><i class="fa fa-key"></i>${isSocialAccount?"Create account credentials":la._63}</span> 3347 <form id="addTrackForm" method="post" action="" style="display:none;"> 3348 ${d} 3349 <br><input type="submit" id="submit" class="button" value="${la._1736}"><br> 3350 </form> 3351 </div> 3352 3353 <div class="card" id="linkedAccountsCard" style="display:none;"></div> 3354 3355 <h3 class="group-header">${la._956}</h3> 3356 <div class="card" id="devicesCard" style="display:none;"> 3357 <table id="sessionsList"></table> 3358 </div> 3359 </div>`;var k=`<div class="dashboard"> 3360 <h3 class="group-header">${la._61}</h3> 3361 <div class="card">`;k=hasDataAccessSubscription?k+`<div id="settingsDeletion"> 3362 <p class="card-desc mb-4"><i class="fa fa-info-circle -tomato"></i> ${la._992}</p> 3363 <p class="card-desc">${la._66}<br> 3364 ${la._940.replace('">info'," "+storage.username+" - "+(storage.rssHash||"").substring(0,3)+'">info')}</p> 3365 </div>`:k+`<div id="settingsDeletion"> 3366 <p class="card-desc mb-4">${la._66}</p> 3367 <span id="settingsDeleteUndo" style="display:none">${la._67}</span> 3368 <span id="settingsDelete" class="card-action -danger"><i class="fa fa-trash"></i>${la._68}</span> 3369 </div> 3370 <form id="deleteForm" method="post" action="" style="display:none;"> 3371 <p class="mdc-typography--body2">${la._65}</p> 3372 <p class="mdc-typography--body2"> 3373 ${f} 3374 </p> 3375 </form>`;k+="</div></div>";network.request({path:"user/settings",type:"getSettings"}).done(function(G){G=G.user;if(G.googleUsername||G.amazonUsername){var da=(X,P,ka)=>`<div class="linked-account"> 3376 <span class="linked-account__info"><i class="fa ${P}"></i>${ka}</span> 3377 <span class="card-action -danger sso-remove" data-rel="${X}"><i class="fa fa-times"></i>${la._518}</span> 3378 </div>`,Y="";G.googleUsername&&(Y+=da("googleLogin","fa-google",G.googleUsername));
3378G.amazonUsername&&(Y+=da("amazonLogin","fa-amazon",G.amazonUsername));if(da=document.getElementById("linkedAccountsCard"))da.innerHTML=`<h4 class="card-title">${la._1725}</h4>${Y}`,DomUtil.show(da)}G.sessions!=null&&G.sessions.length>0&&(DomUtil.show(document.getElementById("devicesCard")),Y=document.createElement("script"),Y.src="//keepa.com/cdn/bowser.js",Y.addEventListener("load",function(){var X=`<tr><th>${la._956}</th><th>${la._957}</th><th>${la._958}</th><th>${la._959}</th><th> </th></tr>`; 3379G.sessions.sort(function(D,W){return D.lastVisit<W.lastVisit?1:-1});for(var P of G.sessions){let D={browser:{name:""},os:{name:""},platform:{type:""}};P.device===""&&(P.device="KeepaMobile");var ka="";P.device&&(D=bowser.getParser(P.device).parsedResult,P.device.indexOf("KeepaMobile")===0?(ka=P.device.split(" "),ka.length===1?(D.os={name:"Android / iOS",version:""},D.browser={name:"Keepa Mobile App",version:""}):(ka=ka[0].split("/")[1],D.browser={name:"Keepa Mobile App",version:ka}),ka=`${D.os.name}${D.os.version? 3380` ${D.os.version}`:""}${D.browser.name?`, ${D.browser.name}${D.browser.version?` (${D.browser.version})`:""}`:""}`):ka=`${D.os.name}${D.os.versionName?` ${D.os.versionName}`:""}${D.browser.name?`, ${D.browser.name} (${D.browser.version})`:""}`);let W=D.platform.type,N="";if(W=="desktop")D.os.name=="Windows"&&(W="windows"),D.os.name=="Linux"&&(W="linux"),D.os.name=="iOS"&&(W="apple");else if(W=="mobile"||W=="tablet")N="font-size: 23px;";X+=`<tr><td>${'<i class="fa fa-'+W+' fa-lg" style="width: 15px;text-align: center;'+ 3381N+'"></i>'} ${ka}</td><td title="${P.ip}">${P.country||""}</td><td>${(new Date(keepaTime.minutesToEpoch(P.lastVisit))).formatDate("M j, Y %a%t G:i")}</td><td>${(new Date(keepaTime.minutesToEpoch(P.created))).formatDate(isTest?"M j, Y %a%t G:i":"M j, Y")}</td><td class="removeDevice" data-id="${P.id}"><i class="fa fa-ban fa-lg"></i> ${la._960}</td></tr>`}if(P=document.getElementById("sessionsList"))P.innerHTML=X;document.querySelectorAll(".removeDevice").forEach(D=>{D.addEventListener("mouseenter", 3382function(){this.querySelectorAll(".fa").forEach(W=>DomUtil.setStyles(W,{color:"red"}))});D.addEventListener("mouseleave",function(){this.querySelectorAll(".fa").forEach(W=>DomUtil.setStyles(W,{color:""}))});D.addEventListener("click",W=>{W.target.attributes["data-id"]&&network.request({path:"user/session",type:"deleteSession",token:W.target.attributes["data-id"].value}).done(function(N){if(N.error==null){let ha=W.target.parentElement;window.keepaAnim.fadeOut(ha,{duration:600,complete:()=>ha.remove()})}else showErrorPopup()}).fail(N=> 3383{showErrorPopup()})})})}),document.head.appendChild(Y));document.getElementById("linkedAccountsCard")?.addEventListener("click",function(X){(X=X.target.closest(".sso-remove"))&&this.contains(X)&&(X=DomUtil.data(X,"rel"),X==void 0||X==""?(showErrorPopup(null,!0),reportBug("ssoremove rel is undefined")):network.request({path:"user/session",type:"ssoremove",content:X}).done(function(P){P.error==null?a():P.error.type=="nopw"?showPopup("No password set","You can not remove this linked external account, as your Keepa account does not have any other method of authentication. You need to set up account credentials first or add another external account.", 3384!0):showErrorPopup()}).fail(P=>{showErrorPopup();a()}))})}).fail(G=>{G.status==401&&settings.reset(!1,!1)});replaceHtml("settingsBox",d+k);SettingsNotification.setupEmailEditor("#accountEmailInput","#accountEmailSave");storage.accountType!=2&&(document.querySelectorAll(".settings-chpw").forEach(G=>DomUtil.hide(G)),DomUtil.hide(document.getElementById("passCheck")));document.querySelectorAll(".switch-tab").forEach(G=>G.addEventListener("click",function(){var da=DomUtil.data(this,"tab"),Y=DomUtil.data(this, 3385"focus");tabBars.activeTabIndex=da;setTabSubUrl(da);setTimeout(()=>{tabBars.updatePanel(da);Y&&document.querySelector(Y)?.focus()},100)}));document.querySelectorAll(".settings-chpw").forEach(G=>G.addEventListener("click",function(){DomUtil.show(document.getElementById("addTrackForm"));DomUtil.show(document.getElementById("passBox"));DomUtil.hide(this)},{once:!0}));var n=!1;document.getElementById("addTrackForm")?.addEventListener("submit",function(G){G.preventDefault();if(n)G.stopPropagation();else{G= 3386document.getElementById("oldPW").value.trim();var da=document.getElementById("newPW").value.trim(),Y=document.getElementById("newPW2").value.trim(),X=this.querySelector("#submit");X.value=la._45;G.length!=0?da!=Y?(b("newPW",la._236),X.value=la._1736):(b("newPW"),n=!0,network.request({path:"user/session",type:"changepw",password:da,oldPassword:G}).always(function(P){n=!1;if(P.error==null)X.value=la._44,settings.retrieve();else{let ka="",D="";switch(P.error.type){case "newPWWrong":ka="newPW";D=la._74; 3387break;case "oldPWWrong":ka="oldPW";D=isSocialAccount?la._48:la._75;break;case "usernametaken":ka="oldPW";D=la._50;break;default:reportBug("user/session/ changepw default",JSON.stringify(P)),showErrorPopup(null,!0)}P.status!=0&&(b(ka,D),X.value=la._1736)}}),setTimeout(()=>{X.value=la._1736},1E3)):(b("oldPW",la._75),X.value=la._1736)}});var q=document.getElementById("settingsDelete"),r=function(){if(storage.accountType!=2&&storage.accountType!=0){DomUtil.hide(this);let G=document.getElementById("settingsDeleteUndo"); 3388DomUtil.show(G);G?.addEventListener("click",function(){DomUtil.hide(this);this.innerHTML=la._67;DomUtil.setStyles(this,{color:"#000"});DomUtil.show(q)},{once:!0});window.setTimeout(()=>{settingsUndo(G)},1E3)}else DomUtil.hide(document.getElementById("settingsDeletion")),DomUtil.show(document.getElementById("deleteForm")),this.removeEventListener("click",r),this.className=""};q?.addEventListener("click",r);var u=!1,B=document.getElementById("deleteForm"),t=()=>{if(hasDataAccessSubscription||u)return!1; 3389u=!0;document.querySelectorAll("span.error").forEach(G=>G.remove());network.request({path:"user/session",type:"delete",password:B.querySelector("#pwCheck").value.trim()}).always(function(G){u=!1;G.error==null?(window.keepaAnim.shrinkOut(document.getElementById("settingsPage"),1E3,function(){window.location.hash=""}),logout()):G.error.type=="pwrong"?b("pwCheck",la._76):(reportBug("user/session deleteAccount",JSON.stringify(G)),showErrorPopup(null,!0))})};B?.addEventListener("submit",function(G){G.preventDefault(); 3390G=material.getButton("confirmDelete",la._68,null,"trash");var da=material.getButton("cancelDelete",la._380,"ban",null,!1,!0),Y=showPopup(la._66,`<div style="margin:1em 0 2em 0;width:500px;"> 3391 ${la._899} 3392 ${hasDataAccessSubscription?`<br><br><span style="color:red;">${la._898}</span>`:""}
3393 </div> 3394 <div style="margin:1em 0;"> 3395 ${G} ${da} 3396 </div>`,!0);document.getElementById("cancelDelete")?.addEventListener("click",function(X){Y.close();X.preventDefault();X.stopPropagation()});document.getElementById("confirmDelete")?.addEventListener("click",function(X){Y.close();t()})})};return{init:a}})();const StartPage=(()=>{var a=()=>{var b=document.querySelector("#startLocales"),c,d=async()=>{if(window_focus&&lastHash==="#!")try{var f=await network.request({path:"service/features",type:"website"});if(parseInt(f)!==0)if(b){({data:{productCount:f}}=f);var k=[7,13,14],n=0,q="";for(let [u,B]of Object.entries(f)){let t=Number(u);k.includes(t)||t<1||t>=numberOfDomains||(n+=B,q+=`<span title="Amazon.${getTldByDomain(t)}" class="flag-wrapper"> 3397 <img src="${flags[t]}" class="flag" /> ${NumberUtil.format(B)}  3398 </span> `)}var r=la._189.replace("<span id='productCount'></span>",NumberUtil.format(n)).replace(":","!");b.innerHTML=`<h4 class="card-title text-center">${r}</h4> 3399 <p class="card-desc text-center">${q}</p> 3400 `;c=setTimeout(d,2E3)}else clearTimeout(c)}catch(u){console.error(u)}};d()};return{init:()=>{PageLayoutGrid.init("start");var b=getPlatformConfig(),c=(k,n,q,r)=>` 3401 <a href="${k}" title="${n}" target="_blank" class="platform-link"> 3402 <img src="${imgCDNUrl}${q}" alt="${r}" class="platform-img-sm" /> 3403 </a>`,d="";d=b.type==="mobile"?` 3404 <a href="${b.url}" target="_blank" class="mobile-badge-link"> 3405 <img src="${b.type2==="android"?"https://keepa.com/cdn/img/app-store/en_badge_web_generic_no_border.png":"https://keepa.com/cdn/img/app-store/Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917.svg"}" alt="${b.text}" height="65"> 3406 </a>`:` 3407 <a href="${b.url}" target="_blank" id="hero-download-btn" class="btn-primary-cta"> 3408 ${b.icon?`<img src="${imgCDNUrl}${b.icon}" class="cta-icon" alt="">`:""} 3409 <span>${b.text}</span> 3410 </a>`;b=` 3411 <div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-12 mt-2 px-4"> 3412 <h1 class="hero-title mdc-layout-grid__cell mdc-layout-grid__cell--span-12 text-center">${la._728}</h1> 3413 <p class="hero-lead mdc-typography--body1 text-center px-4">${la._729}</p> 3414 ${b.type==="mobile"?"":`<p class="hero-sublead mdc-typography--body2 text-center px-4">${la._730}</p>`} 3415 3416 <div class="hero-section-container"> 3417 <p class="hero-social text-center"><span class="hero-social-proof">${la._726}</span></p> 3418 <div class="extension-preview-wrap"> 3419 <div id="heroGraph" class="hero-graph"></div> 3420 </div> 3421 3422 ${d} 3423 3424 3425 <div class="all-platforms-drawer"> 3426 <div class="platform-group mdc-layout-grid__inner"> 3427 <div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-6 mdc-layout-grid__cell--span-8-tablet"> 3428 <p class="text-center font-bold text-sx text-grey-500 uppercase spaced-caps-text">${la._32}</p> 3429 <div class="icon-row"> 3430 ${c("https://chrome.google.com/webstore/detail/neebplgakaahbhdphmkckjjcegoiijjo",la._721,"chrome_128x128.png","Chrome")} 3431 ${c(getEdgeLink(),la._723,"edgechromium_128x128.png","Edge")} 3432 ${c("https://addons.mozilla.org/firefox/addon/keepa",la._720,"firefox_128x128.png","Firefox")} 3433 ${c("https://chrome.google.com/webstore/detail/neebplgakaahbhdphmkckjjcegoiijjo",la._722,"opera_128x128.png","Opera")} 3434 </div> 3435 </div> 3436 <div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-6 mdc-layout-grid__cell--span-8-tablet"> 3437 <p class="text-center font-bold text-sx text-grey-500 uppercase spaced-caps-text">${la._36}</p> 3438 <div class="icon-row"> 3439 <a href="https://play.google.com/store/apps/details?id=com.keepa.mobile" target="_blank" class="platform-link"> 3440 <img src="https://keepa.com/cdn/img/app-store/en_badge_web_generic_no_border.png" alt="${la._708}" height="50"> 3441 </a> 3442 <a href="https://apps.apple.com/app/keepa-price-tracker/id1518541385" target="_blank" class="platform-link"> 3443 <img src="https://keepa.com/cdn/img/app-store/Download_on_the_App_Store_Badge_US-UK_RGB_blk_092917.svg" alt="${la._709}" height="50"> 3444 </a> 3445 </div> 3446 </div> 3447 </div> 3448 </div> 3449 </div> 3450 </div>`;c=(k,n,q,r,u=!1)=>` 3451 <div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-8-tablet card -nav -pro${u?" -featured":""}" onclick="location.href='${q}'"> 3452 <div class="card-icon">${r}</div> 3453 <h4 class="card-title">${k}</h4> 3454 <p class="card-desc">${n}</p> 3455 </div>`;var f=(k,n,q)=>` 3456 <div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-8-tablet card"> 3457 <i class="card-icon fa fa-fw ${q}"></i> 3458 <h4 class="card-title">${k}</h4> 3459 <p class="card-desc">${n}</p> 3460 </div>`;d=(k,n,q,r=!1)=>` 3461 <div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-8-tablet card -pro${r?" -featured":""}"> 3462 <div class="card-icon">${q}</div> 3463 <h4 class="card-title">${k}</h4> 3464 <p class="card-desc">${n}</p> 3465 </div>`;f=` 3466 <h1 class="mdc-layout-grid__cell mdc-layout-grid__cell--span-12 text-center">${la._739}</h1> 3467 ${f(la._718,la._719,"fa-line-chart")} 3468 ${f(la._1655,la._725,"fa-bell-o")} 3469 ${f(la._731,la._727,"fa-globe")}`;c=` 3470 <h1 class="mdc-layout-grid__cell mdc-layout-grid__cell--span-12 text-center">${la._740}</h1> 3471 <p class="mdc-layout-grid__cell mdc-layout-grid__cell--span-12 mdc-typography--body1 text-center px-4 pro-features-desc">${la._1672}</p> 3472 ${hasDataAccessSubscription?` 3473 ${c(la._736,la._1675,"#!finder","\ud83d\udd0e",!0)} 3474 ${c(la._738,la._1676,"#!viewer","\ud83d\udccb",!0)} 3475 ${c(la._962,la._1677,"#!bestseller","\ud83c\udfc6",!0)} 3476 ${c(la._1678,la._1679,"#!topseller","\ud83d\udca1",!0)} 3477 ${c(la._909,la._897,"#!sellerlookup","\ud83c\udfea",!0)} 3478 ${c(la._1685,la._1686,"#!deals","\ud83d\udd25",!0)} 3479 `:` 3480 ${d(la._736,la._1675,"\ud83d\udd0e",!0)} 3481 ${d(la._738,la._1676,"\ud83d\udccb",!0)} 3482 ${d(la._962,la._1677,"\ud83c\udfc6",!0)} 3483 ${d(la._1678,la._1679,"\ud83d\udca1",!0)} 3484 ${d(la._909,la._897,"\ud83c\udfea",!0)} 3485 ${d(la._1685,la._1686,"\ud83d\udd25",!0)} 3486 `} 3487 `;PageLayoutGrid.initBodyPanel(` 3488 ${b} 3489 ${f} 3490 ${c} 3491 ${'\n <div id="startLocales" class="mdc-layout-grid__cell mdc-layout-grid__cell--span-12 card mt-10">\n </div>\n '} 3492 ${`<div class="mdc-layout-grid__cell mdc-layout-grid__cell--span-12"> 3493 <p class="mdc-typography--caption footnote text-center"> 3494 <a href="#!terms" class="href -pro">${la._793}</a>  3495 <a href="https://keepa.com/privacypolicy.html" class="href -pro" target="_blank" rel="noopener">${la._168}</a>  3496 <a href="#!disclaimer" class="href -pro">${la._170}</a>  3497 <a href="#!cancel" class="href -pro">${la._1862}</a> 3498 </p> 3499 </div>`} 3500 `);ColorTip.attach(".platform-link",{color:"black"});a();HeroGraph.init()}}})();const KeepaNav=(()=>{var a=0,b={"&":"&","<":"<",">":">",'"':""","'":"'"},c=O=>String(O??"").replace(/[&<>"']/g,wa=>b[wa]),d=/^(?:#|\/(?!\/)|https?:\/\/|mailto:)/i,f=O=>d.test(String(O??""))?String(O):"#",k=(O,wa)=>{O=O&&window.la?window.la[O]:null;return O==null||O===""?wa:O},n=()=>
3500(typeof languageTag==="function"?languageTag():null)||document.documentElement.lang||void 0,q=O=>{try{return(new Intl.NumberFormat(n())).format(O)}catch(wa){return String(O)}},r={list:'<path d="M8 6h13M8 12h13M8 18h13"/><circle cx="3.6" cy="6" r="1.2"/><circle cx="3.6" cy="12" r="1.2"/><circle cx="3.6" cy="18" r="1.2"/>', 3501bell:'<path d="M18.4 15.6V10a6.4 6.4 0 1 0-12.8 0v5.6L3.8 18h16.4l-1.8-2.4Z"/><path d="M9.6 18a2.4 2.4 0 0 0 4.8 0"/>',webhook:'<path d="M17.5 15.5V10a5.5 5.5 0 0 0-10.6-2"/><path d="M4.4 18h13.2"/><path d="m20 5.5-2.4 2.4L20 10.3"/>',funnel:'<path d="M3.4 4.4h17.2l-6.7 8v7.2l-3.8-2v-5.2L3.4 4.4Z"/>',table:'<rect x="3.2" y="4.2" width="17.6" height="15.6" rx="2"/><path d="M3.2 9.4h17.6M9.6 9.4v10.4"/>',bars:'<path d="M4.6 19.4V13M9.7 19.4V6.6M14.8 19.4v-8.6M19.9 19.4V9"/>',trend:'<path d="m3.4 15.8 5.4-5.6 3.6 3.4 7.9-8.2"/><path d="M15.6 5.4h4.7v4.7"/>', 3502store:'<path d="M4 9.6V19a1.4 1.4 0 0 0 1.4 1.4h13.2A1.4 1.4 0 0 0 20 19V9.6"/><path d="M2.6 9.6 4.8 4h14.4l2.2 5.6a3 3 0 0 1-5.2 1.8 3 3 0 0 1-5.2 0 3 3 0 0 1-5.2 0 3 3 0 0 1-4.2-1.8Z"/>',tree:'<rect x="8.6" y="3" width="6.8" height="4.6" rx="1.2"/><rect x="2.6" y="16.4" width="6.4" height="4.6" rx="1.2"/><rect x="15" y="16.4" width="6.4" height="4.6" rx="1.2"/><path d="M12 7.6v4.6M5.8 16.4V12h12.4v4.4"/>',key:'<circle cx="8" cy="8" r="4.4"/><path d="m11.2 11.2 8 8M16.4 16.4l1.8-1.8M18.6 18.6l1.8-1.8"/>', 3503book:'<path d="M4 4.6A1.6 1.6 0 0 1 5.6 3h12.8A1.6 1.6 0 0 1 20 4.6v14.8H5.6A1.6 1.6 0 0 1 4 17.8V4.6Z"/><path d="M4 17.8a1.6 1.6 0 0 1 1.6-1.6H20"/><path d="M9 7.6h6"/>',buoy:'<circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="3.6"/><path d="m5.6 5.6 3.8 3.8M14.6 14.6l3.8 3.8M18.4 5.6l-3.8 3.8M9.4 14.6l-3.8 3.8"/>',spark:'<path d="M12 3.2 13.9 9l5.9 1.9-5.9 1.9L12 18.7 10.1 12.8 4.2 10.9 10.1 9 12 3.2Z"/><path d="M18.8 3.4v2.8M17.4 4.8h2.8"/>',news:'<path d="M4 8.8h4.4L15 4.4v15.2L8.4 15.2H4a1 1 0 0 1-1-1V9.8a1 1 0 0 1 1-1Z"/><path d="M18.4 9.2a4.4 4.4 0 0 1 0 5.6"/>', 3504users:'<circle cx="9.2" cy="8.4" r="3.6"/><path d="M2.8 20.2a6.4 6.4 0 0 1 12.8 0"/><path d="M16.4 5.2a3.6 3.6 0 0 1 0 6.6M17.6 20.2a6.5 6.5 0 0 0-2-4.7"/>',shield:'<path d="M12 3 4.6 5.8v5.6c0 4.6 3.1 8 7.4 9.6 4.3-1.6 7.4-5 7.4-9.6V5.8L12 3Z"/><path d="m9 11.8 2.2 2.2 4-4"/>',cancel:'<circle cx="12" cy="12" r="8.8"/><path d="m5.8 5.8 12.4 12.4"/>',search:'<circle cx="10.4" cy="10.4" r="7"/><path d="m15.6 15.6 5.4 5.4"/>',clock:'<path d="M12 7v5l3.5 2"/><circle cx="12" cy="12" r="8.6"/>',burger:'<path d="M3.6 7.2h16.8M3.6 12h16.8M3.6 16.8h16.8"/>', 3505close:'<path d="M6 6l12 12M18 6 6 18"/>',user:'<circle cx="12" cy="8" r="3.8"/><path d="M4.8 20.4a7.2 7.2 0 0 1 14.4 0"/>',userAdd:'<circle cx="9.6" cy="8" r="3.8"/><path d="M2.4 20.4a7.2 7.2 0 0 1 13.4-3.6"/><path d="M18.2 14.6v5.8M15.3 17.5h5.8"/>',signin:'<path d="M13.4 3.6h4a1.6 1.6 0 0 1 1.6 1.6v13.6a1.6 1.6 0 0 1-1.6 1.6h-4"/><path d="m9.2 8.2 3.8 3.8-3.8 3.8M13 12H3.6"/>',cog:'<circle cx="12" cy="12" r="3.2"/><path d="M19.4 15a1.7 1.7 0 0 0 .34 1.88l.06.06a2 2 0 1 1-2.84 2.84l-.06-.06A1.7 1.7 0 0 0 15 19.4a1.7 1.7 0 0 0-1 1.56V21a2 2 0 1 1-4 0v-.1A1.7 1.7 0 0 0 8.9 19.3a1.7 1.7 0 0 0-1.88.34l-.06.06a2 2 0 1 1-2.84-2.84l.06-.06A1.7 1.7 0 0 0 4.6 15a1.7 1.7 0 0 0-1.56-1H3a2 2 0 1 1 0-4h.1A1.7 1.7 0 0 0 4.7 8.9a1.7 1.7 0 0 0-.34-1.88l-.06-.06a2 2 0 1 1 2.84-2.84l.06.06A1.7 1.7 0 0 0 9 4.6a1.7 1.7 0 0 0 1-1.56V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.56 1.7 1.7 0 0 0 1.88-.34l.06-.06a2 2 0 1 1 2.84 2.84l-.06.06A1.7 1.7 0 0 0 19.4 9v.1a1.7 1.7 0 0 0 1.56 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1Z"/>', 3506unlock:'<rect x="4.4" y="10.6" width="15.2" height="10.4" rx="2"/><path d="M8 10.6V7a4 4 0 0 1 7.7-1.5"/>',power:'<path d="M12 3.6v8.2"/><path d="M18 6.4a8.4 8.4 0 1 1-12 0"/>',sliders:'<path d="M4 8h10M18 8h2M4 16h4M12 16h8"/><circle cx="16" cy="8" r="2.2"/><circle cx="10" cy="16" r="2.2"/>',globe:'<circle cx="12" cy="12" r="9.2"/><path d="M2.8 12h18.4M12 2.8c2.5 2.8 3.8 5.9 3.8 9.2s-1.3 6.4-3.8 9.2c-2.5-2.8-3.8-5.9-3.8-9.2s1.3-6.4 3.8-9.2Z"/>',translate:'<path d="M2.8 5.1h9.9M7.8 3v2.1M9.9 5.1c0 3.9-2.6 7.1-7.1 8.6M5.4 9.2c1.4 2.4 3.5 3.9 6 4.7"/><path d="M12.6 21.2 17.1 10l4.5 11.2M14.4 17.4h5.6"/>'}, 3507u={US:'<path fill="#fff" d="M0 0h20v14H0z"/><g fill="#b22234"><path d="M0 0h20v1.1H0zM0 2.2h20v1.1H0zM0 4.4h20v1.1H0zM0 6.6h20v1.1H0zM0 8.8h20v1.1H0zM0 11h20v1.1H0zM0 13.2h20V14H0z"/></g><path fill="#3c3b6e" d="M0 0h8.6v7.7H0z"/><g fill="#fff"><circle cx="2" cy="1.9" r=".55"/><circle cx="4.3" cy="1.9" r=".55"/><circle cx="6.6" cy="1.9" r=".55"/><circle cx="3.15" cy="3.85" r=".55"/><circle cx="5.45" cy="3.85" r=".55"/><circle cx="2" cy="5.8" r=".55"/><circle cx="4.3" cy="5.8" r=".55"/><circle cx="6.6" cy="5.8" r=".55"/></g>', 3508CA:'<path fill="#fff" d="M0 0h20v14H0z"/><path fill="#d52b1e" d="M0 0h5v14H0zM15 0h5v14h-5z"/><path fill="#d52b1e" d="m10 3.2.85 2.1 1.85-.75-.75 1.9 1.75.85-1.9.5.3 1.5-1.55-.9-.3 2.5-.5-2.5-1.55.9.3-1.5-1.9-.5 1.75-.85-.75-1.9 1.85.75z"/>',MX:'<path fill="#fff" d="M0 0h20v14H0z"/><path fill="#006847" d="M0 0h6.7v14H0z"/><path fill="#ce1126" d="M13.3 0H20v14h-6.7z"/><circle cx="10" cy="7" r="2.1" fill="none" stroke="#8c6239" stroke-width="1.1"/>',BR:'<path fill="#009c3b" d="M0 0h20v14H0z"/><path fill="#ffdf00" d="M10 1.4 18.6 7 10 12.6 1.4 7z"/><circle cx="10" cy="7" r="2.7" fill="#002776"/><path d="M7.5 6.3c1.7-.75 3.4-.6 5 .4" stroke="#fff" stroke-width=".75" fill="none"/>', 3509UK:'<path fill="#012169" d="M0 0h20v14H0z"/><path stroke="#fff" stroke-width="3" d="m0 0 20 14M20 0 0 14"/><path stroke="#c8102e" stroke-width="1.6" d="m0 0 20 14M20 0 0 14"/><path stroke="#fff" stroke-width="4.8" d="M10 0v14M0 7h20"/>
3509<path stroke="#c8102e" stroke-width="2.7" d="M10 0v14M0 7h20"/>',DE:'<path fill="#000" d="M0 0h20v4.67H0z"/><path fill="#dd0000" d="M0 4.67h20v4.66H0z"/><path fill="#ffce00" d="M0 9.33h20V14H0z"/>',FR:'<path fill="#002395" d="M0 0h6.67v14H0z"/><path fill="#fff" d="M6.67 0h6.66v14H6.67z"/><path fill="#ed2939" d="M13.33 0H20v14h-6.67z"/>', 3510IT:'<path fill="#008c45" d="M0 0h6.67v14H0z"/><path fill="#f4f5f0" d="M6.67 0h6.66v14H6.67z"/><path fill="#cd212a" d="M13.33 0H20v14h-6.67z"/>',ES:'<path fill="#aa151b" d="M0 0h20v14H0z"/><path fill="#f1bf00" d="M0 3.5h20v7H0z"/><rect x="4.2" y="5.1" width="2.6" height="3.8" rx=".5" fill="#ad1519"/>',JP:'<path fill="#fff" d="M0 0h20v14H0z"/><circle cx="10" cy="7" r="4" fill="#bc002d"/>',IN:'<path fill="#ff9933" d="M0 0h20v4.67H0z"/><path fill="#fff" d="M0 4.67h20v4.66H0z"/><path fill="#138808" d="M0 9.33h20V14H0z"/><circle cx="10" cy="7" r="1.7" fill="none" stroke="#000080" stroke-width=".55"/>'}, 3511B=O=>`<svg class="${O}" viewBox="0 0 12 12" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4.2 2.4h5.4v5.4M9.6 2.4 3 9"/></svg>`,t=B("knav-ext"),G=B("knav-sub__ext"),da=[{id:"deals",k:"_12",en:"Deals",href:"#!deals",sec:"deals",routes:["#!deals"]},{id:"track",k:"_13",en:"Track",href:"#!tracking",sec:"track",routes:["#!tracking","#!manage","#!notification","#!notificationAPI"],live:!0,items:[{icon:"list",k:"_20",en:"Tracking Overview", 3512dk:"_240",den:"Every product you watch, in one place",href:"#!manage",state:"tracked",promo:{art:"rows",tk:"_797",ten:"Everything you watch",xk:"_1814",xen:"Every product you track, the price you asked for, and how far off it is right now.",head:[["_1834","Product"],["_1835","Target"],""],fill:"products",rows:[[62,40,null],[48,46,null],[55,34,null]],stats:[[["_1841","Tracked products"],"tracked"]]}},{icon:"bell",k:"_412",en:"Recent Notifications",dk:"_276",den:"Price alerts already sent to you",href:"#!notification", 3513state:"alertsNew",hot:!0,promo:{art:"alert",tk:"_798",ten:"Your latest price alerts",xk:"_1815",xen:"The last prices that hit your target, with the history that got them there.",cards:[[86,34],[64,28]],stats:[[["_1842","Alerts, last 7 days"],"alertsWeek"],[["_1843","Last alert"],"alertsLastAt","ago"]]}},{icon:"webhook",k:"_186",en:"API Notifications",dk:"_277",den:"Alerts delivered to your webhook",href:"#!notificationAPI",gate:"apiNotify",promo:{art:"code",tk:"_800",ten:"Delivered to your endpoint", 3514xk:"_1816",xen:"The same alerts as JSON, POSTed to your webhook the moment they fire.",lines:['<span class="c">POST https://your.host/keepa-hook</span>',"{",' <span class="k">"asin"</span>: <span class="s">"B08N5WRWNW"</span>,',' <span class="k">"currentPrice"</span>: <span class="n">2499</span>',"}"]}}],promo:{art:"chart",tk:"_942",ten:"What you track, and what we sent you",xk:"_1817",xen:"Every product you watch, and every price alert it has triggered.",stats:[[["_1841","Tracked products"], 3515"tracked"],[["_1842","Alerts, last 7 days"],"alertsWeek"],[["_1843","Last alert"],"alertsLastAt","ago"]]}},{id:"apps",k:"_14",en:"Apps",href:"#!addon",sec:"apps",routes:["#!addon","#!app","#!android","#!bot","#!imageapi"]},{id:"pro",k:null,en:"Pro",href:"#!data",sec:"pro",gate:"pro",routes:"#!data #!finder #!viewer #!bestseller #!topseller #!sellerlookup #!seller #!categorytree".split(" "),items:[{icon:"funnel",k:"_736",en:"Product Finder",dk:"_281",den:"Query the catalogue by almost any field",href:"#!finder", 3516promo:{art:"rows",tk:"_1094",ten:"Query the whole catalogue",xk:"_1818",xen:"Filters over every product in our database. Save the query, export the rows.",head:[["_177","Filter"],["_853","Value"],""],dot:!1,rows:[[["_391","Sales rank"],"< 5000",null],[["_442","Buy Box"],"10 \u2013 40",null],[["_1836","Offer count"],"< 8",null],[["_440","Rating"],"\u2265 4",null]]}},{icon:"table",k:"_738",en:"Product Viewer",dk:"_291",den:"Load and compare products in bulk",href:"#!viewer",promo:{art:"transform",tk:"_1377", 3517ten:"Paste a list, get the data",xk:"_1819",xen:"Up to 10,000 ASINs, product codes or ASIN prefixes at a time. Save the list and refresh it on demand.",from:["B08N5WRWNW","B0BDHWDR12","B09B8V1LZ3","\u2026"],to:[["_97","Price history"],["_391","Sales rank"],["_1837","Offers & sellers"],["_440","Rating"],["_1838","Sold / mo"]]}},{icon:"bars",k:"_962",en:"Product Best Sellers",dk:"_339",den:"Top products in any category",href:"#!bestseller",promo:{art:"rows",tk:"_1423",ten:"The top of any category", 3518xk:"_1820",xen:"Identify market leaders across every Amazon category.",head:[["_1834","Product"],["_1379","Sold"],""],dot:!1,rows:[["1 \u00b7 Ninja Air Fryer","31400",null],["2 \u
351800b7 Stanley Quencher","24900",null],["3 \u00b7 LEGO Botanicals","18200",null],["4 \u00b7 Bose QC Ultra","11650",null],["5 \u00b7 Logitech MX Master 3S","9300",null]]}},{icon:"trend",k:"_964",en:"Top Seller List",dk:"_340",den:"The most rated sellers per marketplace",href:"#!topseller",promo:{art:"rows",tk:"_1474",ten:"Who sells the most", 3519xk:"_1821",xen:"The highest-rated sellers in a marketplace, ranked by how many ratings they carry.",head:[["_554","Seller"],["_1075","Ratings"],""],dot:!1,rows:[["Amazon","96400",null],[58,"58200",null],[46,"41800",null],[52,"27500",null],[40,"16300",null]]}},{icon:"store",k:"_909",en:"Seller Lookup",dk:"_513",den:"Storefronts, ratings and history",href:"#!sellerlookup",promo:{art:"facts",tk:"_1649",ten:"Search every merchant",xk:"_1822",xen:"Find a seller by name, id, VAT number or address \u2014 then narrow it down with sixty filters across seven groups.", 3520facts:[[["_440","Rating"],22],[["_1563","Rating Count"],40],[["_1192","Verified listings"],30],[["_1195","Found FBA listings"],16],[["_1839","Buy Box New Ownership"],26],[["_1840","Tracked since"],34]]}},{icon:"tree",k:"_966",en:"Category Tree",dk:"_514",den:"Browse and search the full category tree",href:"#!categorytree",promo:{art:"branch",tk:"_1652",ten:"Browse the whole tree",xk:"_1823",xen:"Every category Amazon publishes, with the product count at each level."}}],promo:{art:"field",tk:"_1653", 3521ten:"The Pro toolset",xk:"_1824",xen:"Six tools over every product and every seller Amazon lists \u2014 query them, rank them, export them."}},{id:"api",k:null,en:"API",href:"#!api",sec:"api",gate:"api",noSub:!0,routes:["#!api"],items:[{icon:"key",k:"_190",en:"Dashboard",dk:"_691",den:"Your access key, token rate and plans",href:"#!api",promo:{art:"doc",page:"dashboard",tk:"_1665",ten:"Your key and your tokens",xk:"_1825",xen:"Your access key, the plan you are on, and the token rate it refills at."}}, 3522{icon:"book",k:"_1722",en:"API Docs",dk:"_724",den:"Endpoints and response objects",href:"https://keepa.com/api-docs/",ext:!0,promo:{art:"doc",tk:"_1666",ten:"Every endpoint, documented",xk:"_1826",xen:"Request parameters, response objects, and what each call costs you in tokens."}}],promo:{art:"code",tk:"_1667",ten:"Build on Keepa data",xk:"_1827",xen:"The same data behind our graphs, as JSON over HTTPS. Tokens accrue every minute.",lines:['<span class="c">GET /product?key=…&asin=B08N5WRWNW</span>', 3523"{",' <span class="k">"title"</span>: <span class="s">"Echo Dot (5th Gen)"</span>,',' <span class="k">"buyBoxPrice"</span>: <span class="n">3499</span>,',' <span class="k">"tokensLeft"</span>: <span class="n">1187</span>',"}"]}},{id:"resources",k:"_15",en:"Resources",href:"#!support",sec:"resources",routes:"#!support #!features #!news #!affiliate #!disclaimer #!cancel".split(" "),items:[{icon:"buoy",k:"_594",en:"Help & Support",dk:"_781",den:"Answers, and a way to reach us", 3524href:"#!support",promo:{art:"shelf",sheet:"ask",tk:"_1771",ten:"Answers, then a person",xk:"_1828",xen:"An FAQ grouped by topic, and a contact form for when it does not cover your case."}},{icon:"spark",k:"_23",en:"Site features",dk:"_782",den:"What Keepa can do for you",href:"#!features",promo:{art:"shelf",sheet:"grid",tk:"_1787",ten:"What Keepa can do",xk:"_1829",xen:"The whole feature set on one page, from the price graph to the browser extensions."}},{icon:"news",k:"_25",en:"News",dk:"_783",den:"Major updates and announcements", 3525href:"#!news",promo:{art:"shelf",sheet:"story",tk:"_1810",ten:"News from Keepa",xk:"_1830",xen:"Milestones, bigger features and service changes."}},{icon:"users",k:"_779",en:"Affiliate Program",dk:"_795",den:"Earn by referring Keepa",href:"#!affiliate",gate:"affiliate",promo:{art:"shelf",sheet:"refer",tk:"_1811",ten:"Earn by referring",xk:"_1831",xen:"Share your link. When somebody you referred subscribes to Pro, a fixed credit lands in your account."}},{icon:"shield",k:"_26",en:"Disclaimer",dk:"_796", 3526den:"Legal and privacy information",href:"#!disclaimer",promo:{art:"shelf",sheet:"shield",tk:"_1812",ten:"The legal part",xk:"_1832",xen:"Terms, privacy, trademarks and the imprint \u2014 who we are and the rules the site runs under."}},{icon:"cancel",k:"_1862",en:"Cancel contracts here",dk:"_1863",den:"Cancel a paid subscription contract",href:"#!cancel",promo:{blank:!0}
3526}],promo:{art:"shelf",tk:"_1813",ten:"Everything documented",xk:"_1833",xen:"How Keepa works, what has changed since, and how to reach us when something is not covered."}}], 3527Y=[{k:"_352",en:"America",list:[{cc:"US",tld:".com",name:"United States",domain:1},{cc:"CA",tld:".ca",name:"Canada",domain:6},{cc:"MX",tld:".com.mx",name:"Mexico",domain:11},{cc:"BR",tld:".com.br",name:"Brazil",domain:12}]},{k:"_353",en:"Europe",list:[{cc:"UK",tld:".co.uk",name:"United Kingdom",domain:2},{cc:"DE",tld:".de",name:"Germany",domain:3},{cc:"FR",tld:".fr",name:"France",domain:4},{cc:"IT",tld:".it",name:"Italy",domain:8},{cc:"ES",tld:".es",name:"Spain",domain:9}]},{k:"_354",en:"Asia",list:[{cc:"JP", 3528tld:".co.jp",name:"Japan",domain:5},{cc:"IN",tld:".in",name:"India",domain:10}]}],X=[{code:1,label:"English"},{code:3,label:"Deutsch"},{code:4,label:"Fran\u00e7ais"},{code:5,label:"\u65e5\u672c\u8a9e"},{code:7,label:"\u4e2d\u6587"},{code:8,label:"Italiano"},{code:9,label:"Espa\u00f1ol"},{code:12,label:"Portugu\u00eas"}],P=new Set([4,11,16,23,35,43,47,54,66,72,75,83,94,101,104,107,112]),ka=["M0 7l12 3 10-4 14 5 12-2 11 4 13-3 12 6 10 2 14 1 12 2","M0 5l11 2 13 4 10-3 12 5 14 3 11-2 12 4 10 2 15 0 12 1"], 3529D=O=>Array.isArray(O)?c(k(O[0],O[1])):c(O),W={plain:'<rect x="42" y="35" width="60" height="3" rx="1.5" fill="#dfe6ea"/>\n\t\t\t<rect x="42" y="41.5" width="60" height="3" rx="1.5" fill="#dfe6ea"/>\n\t\t\t<rect x="42" y="48" width="52" height="3" rx="1.5" fill="#dfe6ea"/>\n\t\t\t<rect x="42" y="54.5" width="38" height="3" rx="1.5" fill="#dfe6ea"/>',ask:'<path d="M46 34h38a4 4 0 0 1 4 4v14a4 4 0 0 1-4 4H58l-8 6 2-6h-6a4 4 0 0 1-4-4V38a4 4 0 0 1 4-4z" fill="#eaf2f7" stroke="#cfe0ea"/>\n\t\t\t<rect x="50" y="40" width="26" height="3" rx="1.5" fill="#a8c6d8"/>\n\t\t\t<rect x="50" y="46.5" width="18" height="3" rx="1.5" fill="#a8c6d8"/>', 3530grid:'<rect x="42" y="34" width="18" height="10" rx="2" fill="#256a93"/>\n\t\t\t<rect x="64" y="34" width="18" height="10" rx="2" fill="#eef3f6" stroke="#e0e8ec"/>\n\t\t\t<rect x="86" y="34" width="18" height="10" rx="2" fill="#eef3f6" stroke="#e0e8ec"/>\n\t\t\t<rect x="42" y="48" width="18" height="10" rx="2" fill="#eef3f6" stroke="#e0e8ec"/>\n\t\t\t<rect x="64" y="48" width="18" height="10" rx="2" fill="#eef3f6" stroke="#e0e8ec"/>\n\t\t\t<rect x="86" y="48" width="18" height="10" rx="2" fill="#eef3f6" stroke="#e0e8ec"/>', 3531story:'<rect x="42" y="34" width="22" height="18" rx="2" fill="#dfe6ea"/>\n\t\t\t<rect x="68" y="35" width="34" height="3" rx="1.5" fill="#dfe6ea"/>\n\t\t\t<rect x="68" y="41.5" width="34" height="3" rx="1.5" fill="#dfe6ea"/>\n\t\t\t<rect x="68" y="48" width="22" height="3" rx="1.5" fill="#dfe6ea"/>\n\t\t\t<rect x="42" y="56" width="52" height="3" rx="1.5" fill="#dfe6ea"/>',refer:'<path d="M58 43l24-5M58 47l24 5" stroke="#dfe6ea" stroke-width="2.5" stroke-linecap="round" fill="none"/>\n\t\t\t<circle cx="52" cy="45" r="7" fill="#256a93"/>\n\t\t\t<circle cx="88" cy="37" r="5.5" fill="#eaf2f7" stroke="#cfe0ea"/>\n\t\t\t<circle cx="88" cy="53" r="5.5" fill="#eaf2f7" stroke="#cfe0ea"/>', 3532shield:'<path d="M74 33l15 4.5v10c0 7.5-6.5 12-15 14.5-8.5-2.5-15-7-15-14.5v-10z" fill="#eaf2f7" stroke="#cfe0ea"/>\n\t\t\t<path d="M68 46.5l4.5 4.5 9-9" stroke="#256a93" stroke-width="3" fill="none" stroke-linecap="round" stroke-linejoin="round"/>'},N={reference:'<rect x="39" y="28" width="70" height="3" rx="1.5" fill="#dfe6ea"/>\n\t\t\t<rect x="39" y="34.5" width="58" height="3" rx="1.5" fill="#dfe6ea"/>\n\t\t\t<rect x="39" y="42" width="70" height="18" rx="2" fill="#f4f7f8" stroke="#e4e9ec"/>\n\t\t\t<rect x="44" y="46.5" width="30" height="2.5" rx="1.25" fill="#1f7a4d"/>\n\t\t\t<rect x="44" y="51" width="44" height="2.5" rx="1.25" fill="#256a93"/>\n\t\t\t<rect x="44" y="55.5" width="22" height="2.5" rx="1.25" fill="#8a5e0f"/>\n\t\t\t<rect x="39" y="64" width="46" height="3" rx="1.5" fill="#dfe6ea"/>', 3533dashboard:'<rect x="39" y="28" width="33" height="17" rx="2" fill="#fff" stroke="#e0e6ea"/>\n\t\t\t<rect x="76" y="28" width="33" height="17" rx="2" fill="#fff" stroke="#e0e6ea"/>\n\t\t\t<rect x="43" y="31.5" width="14" height="2" rx="1" fill="#dfe6ea"/>\n\t\t\t<rect x="43" y="36" width="18" height="5" rx="1.5" fill="#256a93"/>\n\t\t\t<rect x="80" y="31.5" width="16" height="2" rx="1" fill="#dfe6ea"/>\n\t\t\t<rect x="80" y="36" width="13" height="5" rx="1.5" fill="#256a93"/>\n\t\t\t<rect x="39" y="49" width="50" height="7" rx="2" fill="#f0f3f5" stroke="#e4e9ec"/>\n\t\t\t<g fill="#b9c6cd"><circle cx="44" cy="52.5" r="1"/><circle cx="48" cy="52.5" r="1"/>\n\t\t\t\t<circle cx="52" cy="52.5" r="1"/><circle cx="56" cy="52.5" r="1"/>\n\t\t\t\t<circle cx="60" cy="52.5" r="1"/><circle cx="64" cy="52.5" r="1"/>\n\t\t\t\t<circle cx="68" cy="52.5" r="1"/><circle cx="72" cy="52.5" r="1"/></g>\n\t\t\t<rect x="92" y="51" width="7" height="3" rx="1.5" fill="#dfe6ea"/>\n\t\t\t<rect x="102" y="51" width="7" height="3" rx="1.5" fill="#dfe6ea"/>\n\t\t\t<rect x="39" y="60" width="70" height="2.5" rx="1.25" fill="#eef1f3"/>\n\t\t\t<rect x="39" y="64.5" width="70" height="2.5" rx="1.25" fill="#eef1f3"/>'}, 3534ha={chart:(O,wa)=>`<svg class="knav-art" viewBox="0 0 300 168" preserveAspectRatio="none" aria-hidden="true"> 3535 <defs><linearGradient id="${wa}-g" x1="0" y1="0" x2="0" y2="1"> 3536 <stop offset="0" stop-color="#256a93" stop-opacity=".16"/><stop offset="1" stop-color="#256a93" stop-opacity="0"/> 3537 </linearGradient></defs> 3538 <path d="M0 96h20l14-22 18 30 16-8 20 12 18-34 20 18 16-6 20 26 18-12 20 8 16-30 20 22 24-16v78H0Z" fill="url(#${wa}-g)"/> 3539 <path d="M0 96h20l14-22 18 30 16-8 20 12 18-34 20 18 16-6 20 26 18-12 20 8 16-30 20 22 24-16" fill="none" stroke="#256a93" stroke-width="2"/> 3540 <path d="M0 118h300" stroke="#3cb371" stroke-width="1.5" stroke-dasharray="5 5"/> 3541 <circle cx="266" cy="118" r="5" fill="#3cb371" stroke="#fff" stroke-width="2.5"/> 3542 </svg>`,rows:O=>`<div class="knav-mini" aria-hidden="true"${O.fill?` data-fill="${c(O.fill)}"`:""}> 3543 ${O.head?`<div class="knav-mini__row">${O.head.map(wa=>`<span>${D(wa)}</span>`).join("")}</div>`:""} 3544 ${(O.rows||[]).map(([wa,La,Ba])=>` 3545 <div class="knav-mini__row"><span class="knav-mini__name">${O.dot===!1?"":'<i class="knav-mini__dot"></i>'}
3545${typeof wa!=="number"?D(wa):O.fill?`<span class="knav-mini__slot" data-fill-name style="--w:${Number.isFinite(wa)?wa:0}px"></span>`:`<i class="knav-mini__ghost" style="width:${Number.isFinite(wa)?wa:0}px"></i>`}</span>${La==null?"<span></span>":typeof La==="number"?`<span class="knav-mini__bar" style="width:${Number.isFinite(La)?La:0}px"></span>`:`<span class="knav-mini__mid">${c(La)}</span>`}${Ba== 3546null?"<span></span>":`<span class="knav-mini__${String(Ba).trim().startsWith("-")?"down":"up"}">${c(Ba)}</span>`}</div>`).join("")} 3547 </div>`,code:O=>`<div class="knav-code" aria-hidden="true">${(O.lines||[]).join("<br>")}</div>`,doc:O=>`<svg class="knav-doc" viewBox="0 0 150 80" aria-hidden="true"> 3548 <rect x="36" y="3" width="88" height="66" rx="3" fill="#f2f5f7" stroke="#e7eaec"/> 3549 <rect x="30" y="8" width="88" height="66" rx="3" fill="#fff" stroke="#e0e6ea"/> 3550 <rect x="39" y="17" width="32" height="5" rx="2.5" fill="#256a93"/> 3551 ${N[O.page]||N.reference} 3552 </svg>`,alert:O=>`<div class="knav-alerts" aria-hidden="true">${(O.cards||[]).map(([wa,La],Ba)=>` 3553 <div class="knav-alerts__card" data-alert> 3554 <i class="knav-alerts__thumb" data-alert-thumb></i> 3555 <div class="knav-alerts__body"> 3556 <div class="knav-alerts__head"><span data-alert-title style="--w:${Number.isFinite(wa)?wa:0}px"></span><b data-alert-price style="--w:${Number.isFinite(La)?La:0}px"></b></div> 3557 <svg class="knav-alerts__spark" viewBox="0 0 120 22" preserveAspectRatio="none" data-alert-spark> 3558 <path d="M0 15h120" stroke="#3cb371" stroke-width="1" stroke-dasharray="3 3"/> 3559 <path d="${ka[Ba%ka.length]}" fill="none" stroke="#256a93" stroke-width="1.5" 3560 stroke-linejoin="round" stroke-linecap="round"/> 3561 </svg> 3562 <span class="knav-alerts__graph" data-alert-graph hidden></span> 3563 </div> 3564 </div>`).join("")}</div>`,field:()=>{var O="";for(let wa=0;wa<120;wa++)O+=`<rect x="${wa%15*10+2}" y="${Math.floor(wa/15)*10+2}" width="6" height="6" rx="1.5"${P.has(wa)?' fill="#256a93"':""}/>`;return`<svg class="knav-field" viewBox="0 0 150 80" aria-hidden="true" fill="#dfe6ea">${O}</svg>`},transform:O=>`<div class="knav-xform" aria-hidden="true"> 3565 <div class="knav-xform__in">${(O.from||[]).map(wa=>`<span>${D(wa)}</span>`).join("")}</div> 3566 <i class="knav-xform__arrow"></i> 3567 <div class="knav-xform__out">${(O.to||[]).map(wa=>`<span>${D(wa)}</span>`).join("")}</div> 3568 </div>`,facts:O=>`<div class="knav-facts" aria-hidden="true">${(O.facts||[]).map(([wa,La])=>` 3569 <div class="knav-facts__item"><span>${D(wa)}</span>${typeof La==="number"?`<i class="knav-facts__bar" style="width:${Number.isFinite(La)?La:0}px"></i>`:`<b>${c(La)}</b>`}</div>`).join("")}</div>`,branch:()=>'<svg class="knav-branch" viewBox="0 0 150 80" aria-hidden="true">\n\t\t\t<g stroke="#dfe6ea" stroke-width="2.5" fill="none" stroke-linecap="round">\n\t\t\t\t<path d="M32 40h14"/><path d="M46 18v44"/><path d="M46 18h21M46 40h21M46 62h21"/>\n\t\t\t\t<path d="M77 40h10"/><path d="M87 30v20"/><path d="M87 30h15M87 50h15"/>\n\t\t\t</g>\n\t\t\t<circle cx="26" cy="40" r="6" fill="#256a93"/>\n\t\t\t<circle cx="72" cy="18" r="5" fill="#eaf2f7" stroke="#cfe0ea"/>\n\t\t\t<circle cx="72" cy="40" r="5" fill="#eaf2f7" stroke="#cfe0ea"/>\n\t\t\t<circle cx="72" cy="62" r="5" fill="#eaf2f7" stroke="#cfe0ea"/>\n\t\t\t<circle cx="106" cy="30" r="4" fill="#256a93"/>\n\t\t\t<circle cx="106" cy="50" r="4" fill="#eaf2f7" stroke="#cfe0ea"/>\n\t\t</svg>', 3570shelf:O=>`<svg class="knav-shelf" viewBox="0 0 150 80" aria-hidden="true"> 3571 <rect x="46" y="4" width="76" height="58" rx="3" fill="#f2f5f7" stroke="#e7eaec"/> 3572 <rect x="40" y="9" width="76" height="58" rx="3" fill="#f8fafb" stroke="#e4e9ec"/> 3573 <rect x="34" y="14" width="76" height="58" rx="3" fill="#fff" stroke="#dde4e8"/> 3574 <rect x="42" y="23" width="28" height="5" rx="2.5" fill="#256a93"/> 3575 ${W[O.sheet]||W.plain} 3576 </svg>`},V=()=>new Promise(O=>{setTimeout(()=>O({tracked:142,products:["Echo Dot (5th Gen)","Kindle Paperwhite","Fire TV Stick 4K"],alertsNew:5,alertsWeek:17,alertsLastAt:Date.now()-72E4,alerts:[{title:"Anker 737 Charger (GaNPrime 120W)",thumb:null,price:"$79.99",drop:!0,graph:null},{title:"Sonos Era 100",thumb:null,price:"$199.00",drop:!0,graph:null}],headline:"Anker 737 Charger (GaNPrime 120W) \u2014 $79.99"}),420)});return{mount:function(O={}){function wa(y,R){var qa=F.querySelector(".knav-sub"), 3577xa=qa&&(qa||F).querySelector(".knav-sub__inner");if(qa&&xa){var ja=pb(y);ja.length?(qa.hidden=!1,qa.setAttribute("style",ra(y)),qa.setAttribute("aria-label",k(y.k,y.en)),xa.innerHTML=ja.map(Na=>` 3578 <a class="knav-sub__link" href="${c(f(Na.href))}"${Na.ext?' target="_blank" rel="noopener noreferrer"':""}${Na.href===R?' aria-current="page"':""}>${ca(Na.icon,"knav-sub__ico")}<span>${c(k(Na.k,Na.en))}</span>${Na.ext?G:""} 3579 </a>`).join(""),La(),(y=(qa||F).querySelector('.knav-sub__link[aria-current="page"]'))&&xa.scrollWidth>xa.clientWidth&&(xa.scrollLeft=Math.max(0,y.offsetLeft-(xa.clientWidth-y.offsetWidth)/2))):(qa.hidden=!0,xa.innerHTML="",qa.removeAttribute("style"))}}function La(){var y=F.querySelector(".knav-sub__inner"),R=F.querySelector(".knav-sub__aside");if(y&&R){var qa=!!R.firstElementChild;R.hidden=!qa;y.style.paddingInlineEnd=qa?R.offsetWidth+"px":""}}function Ba(){Q.open=null;Q.sheet=!1;Q.stick=!1; 3580e(!1);
3580clearTimeout(M);F.classList.add("knav");F.dataset.sheet="false";delete F.dataset.menu;var y=F.querySelector(".knav-sub__aside");F.innerHTML=Z()+`<a class="knav__skip" href="${c(f(O.skipTo||"#bodyPanel"))}">${c(k(null,"Skip to content"))}</a>`+`<a class="knav__brand" href="#!" aria-label="Keepa">${'<svg class="knav__logo" viewBox="0 668.9 599 166" role="img" aria-label="Keepa"><defs><filter id="'+z+'-sh" x="-40%" y="-40%" width="180%" height="180%" color-interpolation-filters="sRGB"><feDropShadow dx="0" dy="4.15" stdDeviation="2.77" flood-color="#000" flood-opacity="0.3"/></filter></defs><g filter="url(#'+ 3581z+'-sh)"><circle cx="66.4" cy="734.1" r="50.2" fill="#256A93"/><path d="M100.7,744.4H77v23.7H55.2v-23.7H31.5v-21.5h23.7v-23.7h21.5v23.7h23.7v21.5H100.7z M56.5,724v19.3h19V724 H56.5L56.5,724z" fill="#fff"/><path d="M248.9,785.1h-17.8c0-0.7-3.1-5.4-9.3-14.1c-7.2-10.2-13.7-18.8-19.7-25.4c-8.1-9.1-13.9-13.7-17.8-13.7 h-2.5c0,12.7,0.2,30.3,0.9,53.2h-15.3c0.9-16.9,1.2-35.4,1.2-55.5c0-19-0.4-35.8-1.2-50.2h15.3c-0.4,14.3-0.9,29.2-0.9,43.9h1.9 c3.1,0,10.4-7,22.4-20.9c11.8-13.9,17.8-21.5,17.8-23.2h16.9c0,1.6-5.8,8.3-17.4,20.1c-11.6,11.8-20.1,19.7-25.9,23.8v0.9 c6.2,2.3,16.6,13.2,31.2,32.3C242.1,773.9,248.9,783.6,248.9,785.1z" fill="currentColor"/><path d="M328,737.5c0,2.3,0,5.4-0.2,9.5l-55.9,0.9c0.4,7.9,3.7,14.5,9.3,19.9c5.6,5.4,13,8.1,22.2,8.1 c8.3,0,15.9-0.9,23.2-3.1l-1.4,11.6c-5.4,2.1-13,3.3-22.9,3.3c-14.1,0-24.8-3.9-32.1-11.6c-7.4-7.6-11.1-17.1-11.1-28.2 c0-11.8,3.5-22,10.2-30.6c6.7-8.5,15.7-12.7,27.3-12.7c10.4,0,18.5,3.1,23.8,9.3C325.5,720.2,328,727.8,328,737.5z M314.5,737.5 c0-15.3-6.4-22.9-19.2-22.9c-13,0-20.5,7.9-22.9,23.8L314.5,737.5z" fill="currentColor"/><path d="M413.5,737.5c0,2.3,0,5.4-0.2,9.5l-55.9,0.9c0.4,7.9,3.7,14.5,9.3,19.9c5.6,5.4,13,8.1,22.2,8.1 c8.3,0,15.9-0.9,23.2-3.1l-1.4,11.6c-5.4,2.1-13,3.3-22.9,3.3c-14.1,0-24.8-3.9-32.1-11.6c-7.4-7.6-11.1-17.1-11.1-28.2 c0-11.8,3.5-22,10.2-30.6c6.7-8.6,15.7-12.7,27.3-12.7c10.4,0,18.5,3.1,23.8,9.3C411,720.2,413.5,727.8,413.5,737.5z M399.9,737.5c0-15.3-6.4-22.9-19.2-22.9c-13,0-20.5,7.9-22.9,23.8L399.9,737.5z" fill="currentColor"/><path d="M506.1,743.3c0,11.8-3.3,22-9.9,30.8c-6.7,8.7-15.9,13.2-28,13.2c-9.9,0-16.4-1.9-19.7-5.4h-0.9 c0,15.1,0.2,28.4,0.4,40.2h-15.3c1.2-14.3,1.9-32.1,1.9-53.4c0-26.1-1.4-46.3-4.2-60.6l14.3-2.1l1.2,8.1h0.9 c5.4-6,13.9-9.3,25.4-9.3c10.4,0,18.5,3.7,24.5,11.4S506.1,732.9,506.1,743.3z M491.5,745.4c0-8.1-2.1-14.9-6.2-20.5 c-4.2-5.7-10.2-8.5-17.8-8.5c-9.7,0-16.6,3.1-21.1,8.7c0.9,18.2,1.4,33.8,1.4,47c4.4,3.7,10.2,5.6,17.1,5.6 c9.1,0,15.7-3.3,20.1-9.5C489.4,761.8,491.5,754.2,491.5,745.4z" fill="currentColor"/><path d="M585.8,785.1l-12.7,0.4c-0.7-2.5-0.9-5.1-0.9-7.6h-0.9c-6.7,6-15.7,9.1-27.3,9.1c-6.2,0-11.6-1.9-16.2-5.6 c-4.6-3.7-6.7-8.7-6.7-15.7c0-8.3,3.5-15.1,10.6-20.1c7-5.1,20.1-7.6,39.3-8.1c0.2-1.4,0.2-2.7,0.2-4.4c0-6.7-1.9-11.1-5.4-13.4 c-3.5-2.3-9.1-3.3-16.2-3.3c-8.5,0-16.9,1.2-25.2,3.3l1.4-11.4c8.1-2.3,17.6-3.5,28-3.5c9.7,0,17.1,2.1,22.4,6 c5.4,3.9,7.9,10.9,7.9,20.3c0,2.5-0.2,7.2-0.4,13.9s-0.4,11.1-0.4,13.4C583.8,768.8,584.4,777.5,585.8,785.1z M571.5,769.4 c-0.2-8.3-0.4-15.7-0.4-22.2c-10.2,0-18,0.7-23.4,2.3c-8.7,2.7-13.4,7.9-13.4,15.5c0,7.4,5.4,11.1,15.7,11.1 C559,776.2,566.2,773.9,571.5,769.4z" fill="currentColor"/></g></svg>'}</a>`+ 3582`<nav class="knav__nav" aria-label="${c(k(null,"Main"))}"><ul class="knav__list">${S.map(Ha).join("")}</ul></nav>`+'<div class="knav__spacer"></div><div class="knav__actions">'+`<div class="knav__item" data-open="false" data-hover="false"> 3583 <button class="knav-btn knav-btn--icon" type="button" aria-expanded="false" aria-controls="${z}-p-search" 3584 aria-label="${c(k("_19","Search"))}" title="${c(k("_19","Search"))}">${ca("search")}</button> 3585 <div class="knav-panel knav-panel--search" id="${z}-p-search"> 3586 <form class="knav-srch" role="search" data-search-form> 3587 ${ca("search")} 3588 <input type="search" autocomplete="off" spellcheck="false" enterkeyhint="search" 3589 placeholder="${c(k("_159","Search for products"))}" aria-label="${c(k("_19","Search"))}" data-search-input> 3590 <button class="knav-srch__kbd" type="submit" aria-label="${c(k("_19","Search"))}" 3591 title="${c(k("_19","Search"))}">⏎</button> 3592 </form> 3593 <div data-recent hidden> 3594 <div class="knav-shint"> 3595 <span>${c(k(null,"Recent"))}</span> 3596 <button class="knav-sclear" type="button" data-clear>${c(k(null,"Clear"))}</button> 3597 </div> 3598 <div data-recent-list></div>
3599 </div> 3600 </div> 3601 </div>`+za()+cb()+`<button class="knav-btn knav-btn--icon knav__burger" type="button" data-burger aria-expanded="false" aria-controls="${z}-sheet" aria-label="${c(k(null,"Menu"))}">${ca("burger")}${ca("close")}</button>`+'</div><nav class="knav-sub" hidden><div class="knav-sub__inner"></div><div class="knav-sub__aside"></div></nav>'+fb();y&&F.querySelector(".knav-sub__aside").replaceWith(y);fa();Aa();Ra();Q.tracking&&Ia(Q.tracking);F.dataset.measuring="true";U=F.offsetWidth+24;delete F.dataset.measuring; 3602C()}function fa(){var y=Y.flatMap(xa=>xa.list);y=y.find(xa=>xa.domain===Number(Q.domain))||y[0];var R=F.querySelector("[data-tld]");F.querySelector(".knav-btn--region [data-flag] use")?.setAttribute("href",`#${z}-f-${u[y.cc]?y.cc:"US"}`);R&&(R.textContent=y.tld);ba();R=F.querySelector("[data-tab-mk]");var qa=F.querySelector("[data-tab-lg]");R&&(R.textContent="amazon"+y.tld);qa&&(qa.textContent=(X.find(xa=>xa.code===Number(Q.language))||X[0]).label);[...F.querySelectorAll("[data-domain]")].forEach(xa=> 3603{xa.setAttribute("aria-current",Number(xa.dataset.domain)===Number(Q.domain)?"true":"false")});[...F.querySelectorAll("[data-lang]")].forEach(xa=>{xa.setAttribute("aria-current",Number(xa.dataset.lang)===Number(Q.language)?"true":"false")})}function ia(y,R){var qa=F.querySelector(".knav-seg");qa&&(qa.style.setProperty("--knav-seg-i",y==="lg"?1:0),[...(qa||F).querySelectorAll(".knav-seg__b")].forEach(xa=>{var ja=xa.dataset.tab===y;xa.setAttribute("aria-selected",String(ja));xa.tabIndex=ja?0:-1;ja&& 3604R&&xa.focus()}),[...F.querySelectorAll(".knav-rpane")].forEach(xa=>{xa.hidden=xa.dataset.pane!==y}),ba())}function Aa(){var y=ob(),R=S.find(qa=>(qa.routes||[]).includes(y));[...F.querySelectorAll(".knav__top, .knav-sheet__btn")].forEach(qa=>{R&&qa.dataset.sec===R.id?qa.setAttribute("aria-current","page"):qa.removeAttribute("aria-current")});[...F.querySelectorAll(".knav-row")].forEach(qa=>{qa.dataset.id===y?qa.setAttribute("aria-current","page"):qa.removeAttribute("aria-current")});wa(R,y)}function Ia(y){[...F.querySelectorAll("[data-state]")].forEach(qa=> 3605{var xa=y?y[qa.dataset.state]:null;qa.classList.remove("is-loading");qa.hidden=xa==null||qa.dataset.hot==="true"&&!xa;xa!=null&&(qa.textContent=q(xa))});[...F.querySelectorAll("[data-stat]")].forEach(qa=>{var xa=y?y[qa.dataset.stat]:null;if(xa==null)var ja="\u2014";else if(qa.dataset.statMod==="ago"){{xa=Math.round((xa-Date.now())/1E3);let Na=[["second",60],["minute",60],["hour",24],["day",30],["month",12],["year",Infinity]],hb=xa,qb="second";for(let [ab,Jb]of Na){qb=ab;if(Math.abs(hb)<Jb)break;hb= 3606Math.round(hb/Jb)}try{ja=(new Intl.RelativeTimeFormat(n(),{numeric:"auto"})).format(hb,qb)}catch(ab){ja=Math.abs(Math.round(xa/60))+" min"}}}else ja=q(xa);qa.textContent=ja});Ya(y&&y.alerts);Ga(y);var R=F.querySelector("[data-headline]");R&&(R.textContent=y&&y.headline||R.dataset.headline||"")}function Ga(y){[...F.querySelectorAll("[data-fill]")].forEach(R=>{var qa=Q.account&&y?y[R.dataset.fill]:null;[...(R||F).querySelectorAll("[data-fill-name]")].forEach((xa,ja)=>{xa.textContent=Array.isArray(qa)&& 3607qa[ja]||""})})}function Ya(y){var R=[...F.querySelectorAll("[data-alert]")];if(R.length){var qa=Array.isArray(y)&&y.length?y:null;R.forEach((xa,ja)=>{if(!l.has(xa)){var Na=l,hb=Na.set;var qb={title:xa.querySelector("[data-alert-title]")?.textContent??"",price:xa.querySelector("[data-alert-price]")?.textContent??"",rise:!!xa.querySelector("[data-alert-price]")?.classList.contains("is-rise"),thumb:null,graph:null,live:!1};hb.call(Na,xa,qb)}if(qa)if(y[ja]){var ab=y[ja];ja=ab.title??"";Na=ab.price??""; 3608hb=ab.drop===!1;qb=String(ab.thumb??"");qb=d.test(qb)&&!/["'()\\\s]/.test(qb)?qb:null;ab=(ab=String(ab.graph??""))&&/^[A-Za-z0-9+/]+={0,2}$/.test(ab)?`data:image/png;base64,${ab}`:null;ja={title:ja,price:Na,rise:hb,thumb:qb,graph:ab,live:!0}}else ja=null;else ja=l.get(xa);xa.hidden=!ja;if(ja){if(Na=xa.querySelector("[data-alert-title]"))Na.textContent=ja.title;if(Na=xa.querySelector("[data-alert-price]"))Na.textContent=ja.price,Na.classList.toggle("is-rise",ja.rise);if(Na=xa.querySelector("[data-alert-thumb]"))Na.style.backgroundImage= 3609ja.thumb?`url("${ja.thumb}")`:"",Na.style.backgroundSize=ja.thumb?"contain":"";Na=xa.querySelector("[data-alert-spark]");xa=xa.querySelector("[data-alert-graph]");Na?.toggleAttribute("hidden",ja.live);xa&&(xa.toggleAttribute("hidden",!ja.graph),xa.style.backgroundImage=ja.graph?`url("${ja.graph}")`:"")}})}}
3609function Pa(){[...F.querySelectorAll("[data-state]")].forEach(y=>{y.hidden=!1;y.textContent="";y.classList.add("is-loading")})}function ta(){if(Q.account){var y=O.trackingMaxAge??6E4;if(!(Q.trackingBusy|| 3610Date.now()-Q.trackingAt<y)){Q.trackingBusy=!0;Q.tracking||Pa();var R=Q.account.name??null;Promise.resolve().then(O.tracking||V).then(qa=>{(Q.account?.name??null)===R&&(Q.tracking=qa,Q.trackingAt=Date.now(),Ia(qa))}).catch(()=>{(Q.account?.name??null)===R&&Ia(null)}).then(()=>{Q.trackingBusy=!1})}}}function ea(){try{let y=JSON.parse(sessionStorage.getItem("keepa.nav.recent")||"[]");return Array.isArray(y)?y.filter(R=>R&&typeof R.q==="string").slice(0,6):[]}catch(y){return[]}}function Fa(y){try{sessionStorage.setItem("keepa.nav.recent", 3611JSON.stringify(y.slice(0,6)))}catch(R){}Ra()}function bb(y){var R=String(y.q||"").trim();if(R){var qa=Number(y.d)||Number(Q.domain),xa=ea().find(ja=>ja.q===R&&ja.d===qa);Fa([{q:R,d:qa,n:y.n??xa?.n,img:y.img??xa?.img??[]},...ea().filter(ja=>!(ja.q===R&&ja.d===qa))])}}function Ra(){var y=F.querySelector("[data-recent]"),R=F.querySelector("[data-recent-list]");if(y&&R){var qa=ea();y.hidden=!qa.length;R.innerHTML=qa.map(xa=>{var ja=ub(xa.d);ja=[ja?ja.tld:null,xa.n==null?null:q(xa.n)].filter(Boolean).join(" \u00b7 "); 3612var Na=(xa.img||[]).slice(0,4).map(hb=>`<img src="${c(f(hb))}" alt="" loading="lazy" decoding="async">`).join("");return`<button class="knav-sitem knav-recent" type="button" data-recent-q="${c(xa.q)}" data-recent-d="${c(xa.d)}"> 3613 ${ca("clock")} 3614 <span class="knav-recent__text"> 3615 <span class="knav-recent__q">${c(xa.q)}</span> 3616 ${ja?`<span class="knav-recent__meta"${xa.n==null?"":` title="${c(k("_10","Search Results"))}"`}>${c(ja)}</span>`:""} 3617 </span> 3618 ${Na?`<span class="knav-recent__thumbs">${Na}</span>`:""} 3619 </button>`}).join("")}}function Sa(y,R){if(y){var qa=[...(y||F).querySelectorAll(".knav-promo")];
3619if(!(qa.length<2)){var xa=R&&y.querySelector(`[data-promo-for="${CSS.escape(R)}"]`)||y.querySelector("[data-promo-default]");qa.forEach(ja=>{var Na=ja===xa;ja.toggleAttribute("data-on",Na);Na?ja.removeAttribute("aria-hidden"):ja.setAttribute("aria-hidden","true")})}}}function db(y){var R=y.target.closest?.("[data-list]");R&&(y=y.target.closest(".knav-row"),Sa(R.parentElement,y?.dataset.id||null))} 3620function eb(y){Q.stick=y;var R=F.querySelector("[data-search-input]")?.closest(".knav__item");R&&(R.dataset.stick=String(y))}function sa(y){eb(!1);var R=Q.open;R&&(Q.open=null,Q.hoverOpened=!1,delete F.dataset.menu,R.dataset.open="false",R=R.querySelector("[aria-expanded]"),R?.setAttribute("aria-expanded","false"),y&&R&&F.contains(document.activeElement)&&R.focus())}function Qa(y,R){if(y&&Q.open!==y){sa(!1);Q.hoverOpened=!!R;Q.open=y;F.dataset.menu="open";y.dataset.open="true";y.querySelector("[aria-expanded]")?.setAttribute("aria-expanded", 3621"true");if(R=y.querySelector(".knav-panel"))if(Sa(R,null),R.querySelector(".knav-seg")&&ia("mk",!1),Ta(R),R=R.querySelector("input"))R.focus({preventScroll:!0}),R.select();y.querySelector("[data-state]")&&ta()}}function Ta(y){if(y&&y.offsetParent){var R=document.documentElement.clientWidth;y.style.maxWidth=R-24+"px";y.style.left="0px";var qa=y.offsetParent.getBoundingClientRect().left+y.offsetLeft,xa=qa+y.offsetWidth,ja=0;xa>R-12&&(ja=-(xa-(R-12)));qa+ja<12&&(ja=12-qa);ja&&(y.style.left=ja+"px")}} 3622function ba(){Q.open&&Ta(Q.open.querySelector(".knav-panel"))}function e(y){var R=document.documentElement;y?L||(y=window.innerWidth-R.clientWidth,L={overflow:R.style.overflow,pad:document.body.style.paddingRight},R.style.overflow="hidden",y>0&&(document.body.style.paddingRight=y+"px")):L&&(R.style.overflow=L.overflow,document.body.style.paddingRight=L.pad,L=null)}function x(y,R=!0){var qa=F.querySelector(".knav-sheet"),xa=F.querySelector("[data-burger]");y=y??!Q.sheet;qa&&xa&&y!==Q.sheet&&(Q.sheet= 3623y,sa(!1),qa.hidden=!y,xa.setAttribute("aria-expanded",String(y)),F.dataset.sheet=String(y),e(y),R&&(y?qa.querySelector(".knav-sheet__btn")?.focus():xa.focus()))}function v(y){if(Q.sheet&&y.key==="Tab"){var R=F.querySelector(".knav-sheet"),qa=[F.querySelector("[data-burger]"),...(R||F).querySelectorAll("a[href], button:not([disabled])")].filter(xa=>xa&&xa.offsetParent!==null);qa.length&&(R=qa[0],qa=qa[qa.length-1],y.shiftKey&&document.activeElement===R?(y.preventDefault(),qa.focus()):y.shiftKey||document.activeElement!== 3624qa||(y.preventDefault(),R.focus()))}}function C(){var y=String(U>0&&U>F.clientWidth);F.dataset.compact!==y&&(F.dataset.compact=y);y==="false"&&Q.sheet&&x(!1,!1);Q.open&&Ta(Q.open.querySelector(".knav-panel"));La()}function A(y,R){if(y=String(y||"").trim()){R=Number(R)||Number(Q.domain);bb({q:y,d:R});var qa=F.querySelector("[data-search-input]");qa&&(qa.value=y);eb(!0);qa&&(qa.focus({preventScroll:!0}),qa.select());ma.search?.(y,R)}}function H(y){var R=Q.domain+"/"+Q.language;y.domain!=null&&(Q.domain= 3625Number(y.domain));y.language!=null&&(Q.language=Number(y.language));fa();R!==Q.domain+"/"+Q.language&&ma.locale?.({domain:Q.domain,language:Q.language})}function Z(){return`<svg class="knav-sprite" aria-hidden="true" focusable="false" width="0" height="0">${Object.keys(r).map(y=>`<symbol id="${z}-i-${y}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.65" stroke-linecap="round" stroke-linejoin="round">${r[y]}</symbol>`).join("")}${Object.keys(u).map(y=>`<symbol id="${z}-f-${y}" viewBox="0 0 20 14">${u[y]}</symbol>`).join("")}</svg>`} 3626function ca(y,R){return r[y]?`<svg class="${R||"knav-ico"}" aria-hidden="true" focusable="false"><use href="#${z}-i-${y}"/></svg>`:""}function K(y){return`<span class="knav-flag" data-flag><svg viewBox="0 0 20 14" aria-hidden="true" focusable="false"><use href="#${z}-f-${u[y]?y:"US"}"/></svg></span>`}var F=typeof O.root==="string"?document.querySelector(O.root):O.root;if(!F)throw Error("KeepaNav.mount: root element not found");var z="knav-"+ ++a,g=new AbortController,m=(y,R,qa,xa)=>y.addEventListener(R, 3627qa,{signal:g.signal,...xa}),w={pro:!0,api:!0,affiliate:!0,apiNotify:!0,apiDashboard:!0,...O.features},I=y=>!y.gate||w[y.gate]!==!1,S=(O.sections||da).filter(I),ma={search:O.onSearch,locale:O.onLocaleChange,login:O.onLogin,register:O.onRegister,logout:O.onLogout,currency:O.onCurrency,navigate:O.onNavigate}
3627,Q={open:null,sheet:!1,hoverOpened:!1,stick:!1,domain:O.domain||1,language:O.language||1,account:O.account||null,tracking:null,trackingAt:0,trackingBusy:!1},l=new WeakMap,M=0,na="mouse",U=0,L=null, 3628ra=y=>`--knav-sec: var(--color-${y.sec}-500, #256a93)`,Da=y=>{var R=y.ext?' target="_blank" rel="noopener noreferrer"':"";return`<a class="knav-row" href="${c(f(y.href))}"${R} data-id="${c(y.href)}"> 3629 <span class="knav-row__tile"${y.ext?' data-ext="true"':""}>${ca(y.icon)}${y.ext?t:""}</span> 3630 <span class="knav-row__text"> 3631 <span class="knav-row__title">${c(k(y.k,y.en))}${y.ext?`<span class="knav-sr">${c(k(null,"(opens in a new tab)"))}</span>`:""}</span> 3632 <span class="knav-row__desc">${c(k(y.dk,y.den))}</span> 3633 </span> 3634 ${y.state?`<span class="knav-row__state" data-state="${c(y.state)}"${y.hot?' data-hot="true"':""} hidden></span>`:""} 3635 </a>`},Ea=(y,R)=>{if(!y)return"";var qa=R?` data-promo-for="${c(R)}" aria-hidden="true"`:" data-promo-default data-on";return y.blank?`<div class="knav-promo"${qa}></div>`:`<div class="knav-promo${y.stats?" knav-promo--live":""}"${qa}> 3636 <div class="knav-promo__art">${(ha[y.art]||(()=>""))(y,z)}</div> 3637 <h3 class="knav-promo__title">${y.stats?'<span class="knav-dot"></span>':""}${c(k(y.tk,y.ten))}</h3> 3638 <p class="knav-promo__text"${y.stats&&!R?` data-headline="${c(k(y.xk,y.xen))}"`:""}>${c(k(y.xk,y.xen))}</p> 3639 ${y.stats?`<div class="knav-promo__stats">${y.stats.map(([xa,ja,Na])=>`<div class="knav-promo__stat"><span>${D(xa)}</span><b data-stat="${c(ja)}"${Na?` data-stat-mod="${c(Na)}" class="is-${c(Na)}"`:""}>—</b></div>`).join("")}</div>`:""} 3640 </div>`},oa=(y,R)=>(y=Ea(y.promo,null)+R.filter(qa=>qa.promo).map(qa=>
3640Ea(qa.promo,qa.href)).join(""))?`<div class="knav-promos">${y}</div>`:"",Ja=y=>`<span class="knav__label">${c(k(y.k,y.en))}</span>`,Ha=y=>{var R=(y.items||[]).filter(I);return R.length?`<li class="knav__item" data-open="false" style="${ra(y)}"> 3641 <a class="knav__top" href="${c(f(y.href))}" data-sec="${c(y.id)}" aria-expanded="false" aria-controls="${`${z}-p-${y.id}`}">${Ja(y)}<svg class="knav-chev" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m1 3.5 4 4 4-4"/></svg></a> 3642 <div class="knav-panel knav-panel--${y.promo?"split":"plain"}" id="${`${z}-p-${y.id}`}"> 3643 <div class="knav-panel__list" data-list>${R.map(Da).join("")}</div> 3644 ${oa(y,R)} 3645 </div> 3646 </li>`:`<li class="knav__item" style="${ra(y)}"> 3647 <a class="knav__top" href="${c(f(y.href))}" data-sec="${c(y.id)}">${Ja(y)}</a></li>`},ya=()=>{var y=null;try{y=new Intl.DisplayNames([n()||"en"],{type:"region"})}catch(xa){}var R={UK:"GB"},qa=xa=>{try{return y?.of(R[xa.cc]||xa.cc)||xa.name}catch(ja){return xa.name}};return`<div class="knav-mkgrid">${Y.map(xa=>` 3648 <span class="knav-rgroup">${c(k(xa.k,xa.en))}</span> 3649 ${xa.list.map(ja=>` 3650 <button class="knav-mk" type="button" data-domain="${ja.domain}" title="Amazon ${c(qa(ja))}"> 3651 ${K(ja.cc)}<span class="knav-mk__name">${c(qa(ja))}</span><span class="knav-mk__tld">${c(ja.tld)}</span> 3652 </button>`).join("")}`).join("")}</div>`},za=()=>`<div class="knav__item" data-open="false" data-hover="close"> 3653 <button class="knav-btn knav-btn--region" type="button" aria-expanded="false" aria-controls="${z}-p-region" 3654 aria-label="${c(k("_157","Choose your Amazon locale"))}"> 3655 ${K("US")}<span class="knav-tld" data-tld></span><svg class="knav-chev" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m1 3.5 4 4 4-4"/></svg> 3656 </button> 3657 <div class="knav-panel knav-panel--region" id="${z}-p-region"> 3658 <div class="knav-seg" role="tablist" aria-label="${c(k("_157","Choose your Amazon locale"))}" style="--knav-seg-i:0"> 3659 <span class="knav-seg__thumb" aria-hidden="true"></span> 3660 <button class="knav-seg__b" type="button" role="tab" data-tab="mk" tabindex="0" 3661 id="${z}-t-mk" aria-controls="${z}-rp-mk" aria-selected="true"> 3662 ${ca("globe","knav-seg__ico")} 3663 <span class="knav-seg__k">${c(k("_1852","Marketplace"))}</span> 3664 <span class="knav-seg__v" data-tab-mk></span> 3665 </button> 3666 <button class="knav-seg__b" type="button" role="tab" data-tab="lg" tabindex="-1" 3667 id="${z}-t-lg" aria-controls="${z}-rp-lg" aria-selected="false"> 3668 ${ca("translate","knav-seg__ico")} 3669 <span class="knav-seg__k">${c(k("_56","Language"))}</span> 3670 <span class="knav-seg__v" data-tab-lg></span> 3671 </button> 3672 </div> 3673 <div class="knav-rpane" id="${z}-rp-mk" role="tabpanel" aria-labelledby="${z}-t-mk" data-pane="mk"> 3674 ${ya()} 3675 <button class="knav-rfoot" type="button" data-currency>${ca("sliders")}${c(k(null,"Currency settings"))}</button> 3676 </div> 3677 <div class="knav-rpane" id="${z}-rp-lg" role="tabpanel" aria-labelledby="${z}-t-lg" data-pane="lg" hidden> 3678 <div class="knav-langgrid"> 3679 ${X.map(y=>`<button class="knav-lang" type="button" data-lang="${y.code}">${c(y.label)}
3679<svg class="knav-lang__check" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m2.5 7.4 3 3 6-7"/></svg></button>`).join("")} 3680 </div> 3681 </div> 3682 </div> 3683 </div>`,cb=()=>{if(!Q.account)return`<button class="knav-btn knav-btn--ghost" type="button" data-login aria-label="${c(k("_9","Log In / Register"))}">${ca("user")}<span class="knav-btn__label">${c(k("_9","Log In / Register"))}</span></button>`;var y=!!Q.account.anon,R=[["cog",k("_8","Settings"),"#!channels"],y?null:["unlock",k("_647","Subscriptions"),"#!settings/1"],y||w.api===!1||w.apiDashboard===!1?null:["key","API Dashboard","#!api"]].filter(Boolean);y=y?`<button class="knav-sitem" type="button" data-register>${ca("userAdd")}${c(k("_42", 3684"Register"))}</button> 3685 <button class="knav-sitem" type="button" data-login>${ca("signin")}${c(k("_2","Log In"))}</button>`:"";var qa=c(Q.account.name||k("_43","Anonymous")),xa=Q.account.pro?'<span class="knav-pro">Pro</span>':"";return`<div class="knav__item" data-open="false"> 3686 <button class="knav-btn knav-btn--user" type="button" aria-expanded="false" aria-controls="${z}-p-user" aria-label="${qa}"> 3687 ${ca("user")}<span class="knav-btn__name">${qa}</span>${xa}<svg class="knav-chev" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m1 3.5 4 4 4-4"/></svg> 3688 </button> 3689 <div class="knav-panel knav-panel--user" id="${z}-p-user"> 3690 <div class="knav-uhead"><span class="knav-uhead__name">${qa}</span>${xa}</div> 3691 ${R.map(([ja,Na,hb])=>`<a class="knav-sitem" href="${c(f(hb))}">${ca(ja)}${c(Na)}</a>`).join("")} 3692 ${y} 3693 <button class="knav-sitem" type="button" data-logout>${ca("power")}${c(k("_392","Logout"))}</button> 3694 </div> 3695 </div>`},fb=()=>`<div class="knav-sheet" id="${z}-sheet" role="dialog" aria-modal="true" 3696 aria-label="${c(k(null,"Menu"))}" hidden> 3697 <div class="knav-sheet__inner"> 3698 ${S.map(y=>{var R=(y.items||[]).filter(I);return R.length?`<div class="knav-sheet__sec" data-open="false" style="${ra(y)}"> 3699 <button class="knav-sheet__btn" type="button" aria-expanded="false" aria-controls="${z}-sh-${y.id}" data-sec="${c(y.id)}">${Ja(y)}<svg class="knav-chev" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m1 3.5 4 4 4-4"/></svg></button> 3700 <div class="knav-sheet__body" id="${z}-sh-${y.id}">${R.map(Da).join("")}</div> 3701 </div>`:`<div class="knav-sheet__sec" style="${ra(y)}"><a class="knav-sheet__btn" href="${c(f(y.href))}" data-sec="${c(y.id)}">${Ja(y)}</a></div>`}).join("")} 3702 </div> 3703 </div>`,pb=y=>y&&!y.noSub?(y.items||[]).filter(I):[],ob=()=>(location.hash||"").split("/")[0].replace("%21","!"),ub=y=>Y.flatMap(R=>R.list).find(R=>R.domain===Number(y));m(F,"pointerover",db);m(F,"focusin",db);m(F,"pointerout",y=>{var R=y.target.closest?.("[data-list]");R&&!R.contains(y.relatedTarget)&&Sa(R.parentElement,null)});var Rb=["#!search","#!product"],T=y=>y.filter(R=>R.offsetParent!==null);m(F,"pointerdown",y=>{na=y.pointerType||"mouse"},{capture:!0});m(F,"pointerover",y=>{if((!y.pointerType|| 3704y.pointerType==="mouse")&&F.dataset.compact!=="true"){var R=y.target.closest(".knav__item");R&&R.querySelector(".knav-panel")&&!R.contains(y.relatedTarget)&&(R===Q.open&&clearTimeout(M),R.dataset.hover||R!==Q.open&&Q.open?.querySelector(".knav-panel")?.contains(document.activeElement)&&R.closest(".knav__actions")||(clearTimeout(M),Q.open&&Q.open!==R?Qa(R,!0):M=setTimeout(()=>Qa(R,!0),70)))}});m(F,"pointerout",y=>{if(!y.pointerType||y.pointerType==="mouse"){var R=y.target.closest(".knav__item");R&& 3705R.dataset.hover!=="false"&&!R.contains(y.relatedTarget)&&(clearTimeout(M),M=setTimeout(()=>{Q.open===R&&sa(!1)},160))}});m(F,"click",y=>{var R=y.target;if(R.closest("[data-burger]"))x();else if(R.closest("[data-login]"))sa(!1),ma.login?.();else if(R.closest("[data-register]"))sa(!1),ma.register?.();else if(R.closest("[data-logout]"))sa(!1),ma.logout?.();
3705else if(R.closest("[data-currency]"))sa(!0),ma.currency?.();else if(R.closest("[data-clear]")){try{sessionStorage.removeItem("keepa.nav.recent")}catch(xa){}Ra(); 3706F.querySelector("[data-search-input]")?.focus()}else{var qa=R.closest("[data-recent-q]");if(qa)A(qa.dataset.recentQ,qa.dataset.recentD);else if(qa=R.closest("[data-tab]"))ia(qa.dataset.tab,!1);else if(qa=R.closest("[data-domain]"))H({domain:Number(qa.dataset.domain)});else if(qa=R.closest("[data-lang]"))H({language:Number(qa.dataset.lang)});else if(qa=R.closest(".knav-sheet__btn[aria-expanded]"))y=qa.closest(".knav-sheet__sec"),R=y.dataset.open!=="true",y.dataset.open=String(R),qa.setAttribute("aria-expanded", 3707String(R)),R&&y.querySelector("[data-state]")&&ta();else if(R.closest(".knav-row, .knav-sitem[href], .knav__brand, .knav-sheet__btn[href]"))sa(!1),x(!1),ma.navigate?.(R.closest("a")?.getAttribute("href"));else if(qa=R.closest(".knav__top[aria-expanded]"))R=qa.closest(".knav__item"),na!=="touch"&&na!=="pen"||Q.open===R?sa(!1):(y.preventDefault(),Qa(R));else if(y=R.closest(".knav-btn[aria-expanded]"))y=y.closest(".knav__item"),Q.open===y&&Q.hoverOpened||(Q.open===y?sa(!0):Qa(y))}});m(F,"keydown",y=> 3708{na="key";v(y);if(y.key==="Escape")if(Q.sheet)x(!1);else{var R=y.target.closest("[data-search-input]");R&&R.value?R.value="":Q.open&&(y.stopPropagation(),sa(!0))}else{if((R=y.target.closest("[aria-expanded][aria-controls]"))&&!y.target.closest(".knav-sheet")){var qa=R.closest(".knav__item");if(y.key==="ArrowDown"||y.key==="ArrowUp"){y.preventDefault();Qa(qa);R=T([...(qa||F).querySelectorAll(".knav-row, .knav-mk, .knav-lang, .knav-rfoot, .knav-sitem")]);(y.key==="ArrowDown"?R[0]:R[R.length-1])?.focus(); 3709return}if(y.key===" "&&R.tagName==="A"){y.preventDefault();Q.open===qa?sa(!1):Qa(qa);return}}if((qa=y.target.closest(".knav__top"))&&["ArrowLeft","ArrowRight","Home","End"].includes(y.key))R=[...F.querySelectorAll(".knav__top")],qa=R.indexOf(qa),qa<0||(y.preventDefault(),y=y.key==="Home"?0:y.key==="End"?R.length-1:(qa+(y.key==="ArrowRight"?1:-1)+R.length)%R.length,R[y].focus(),Q.open&&(y=R[y].closest(".knav__item"),y.querySelector(".knav-panel")?Qa(y):sa(!1)));else{if(R=y.target.closest('[role="tab"]')){if(["ArrowLeft", 3710"ArrowRight","Home","End"].includes(y.key)){y.preventDefault();ia(y.key==="Home"?"mk":y.key==="End"?"lg":R.dataset.tab==="mk"?"lg":"mk",!0);return}if(y.key==="ArrowDown"){y.preventDefault();y=[...(R.closest(".knav-panel")||F).querySelectorAll(".knav-row, .knav-mk, .knav-lang, .knav-rfoot, .knav-sitem")];T(y)[0]?.focus();return}}(R=y.target.closest(".knav-panel, .knav-sheet__body"))&&["ArrowDown","ArrowUp","Home","End"].includes(y.key)&&(R=T([...(R||F).querySelectorAll(".knav-row, .knav-mk, .knav-lang, .knav-rfoot, .knav-sitem")]), 3711qa=R.indexOf(y.target),qa<0||(y.preventDefault(),R[y.key==="Home"?0:y.key==="End"?R.length-1:(qa+(y.key==="ArrowDown"?1:-1)+R.length)%R.length].focus()))}}});m(F,"submit",y=>{y.target.closest("[data-search-form]")&&(y.preventDefault(),A(F.querySelector("[data-search-input]").value))});m(F,"focusout",y=>{Q.sheet||Q.stick||F.contains(y.relatedTarget)||sa(!1)});m(F,"error",y=>{y.target instanceof HTMLImageElement&&y.target.closest(".knav-recent__thumbs")&&y.target.remove()},{capture:!0});m(document, 3712"click",y=>{F.contains(y.target)||Q.stick||sa(!1)});m(window,"hashchange",()=>{Aa();Q.stick&&!Rb.includes(ob())&&sa(!1)});m(window,"pagehide",()=>e(!1));m(document,"keydown",y=>{if((y.metaKey||y.ctrlKey)&&y.key.toLowerCase()==="k"){y.preventDefault();y=F.querySelector("[data-search-input]");var R=y?.closest(".knav__item");Q.open===R&&document.activeElement===y?sa(!0):(Qa(R),y?.focus({preventScroll:!0}),y?.select())}});var va=new ResizeObserver(()=>C());va.observe(F);var Ma=new MutationObserver(()=> 3713La());Ba();(m=F.querySelector(".knav-sub__aside"))&&Ma.observe(m,{childList:!0});return{root:F,state:Q,setLocale:H,setAccount:function(y){var R=Q.account;if(!R!==!y||y&&(R.name!==y.name||!R.pro!==!y.pro||!R.anon!==!y.anon))(R?.name??null)!==(y?.name??null)&&(Q.tracking=null,Q.trackingAt=0),Q.account=y||null,Ba()},setTracking:function(y){Q.tracking=y;Q.trackingAt=Date.now();Ia(y)},recordSearch:function({query:y,domain:R,count:qa,images:xa}
3713){bb({q:y,d:R,n:qa,img:(xa||[]).filter(Boolean).slice(0,4)})}, 3714subHeight:function(){return pb(S.find(y=>(y.routes||[]).includes(ob()))).length?38:0},refresh:function(){Ba()},destroy:function(){g.abort();va.disconnect();Ma.disconnect();clearTimeout(M);e(!1);F.innerHTML="";F.classList.remove("knav");["compact","sheet","measuring","menu"].forEach(y=>delete F.dataset[y])},open:y=>{y=`.knav__top[data-sec="${CSS.escape(y)}"]`;y=F.querySelector(y);return Qa(y?.closest(".knav__item"))},openSearch:()=>{var y=F.querySelector("[data-search-input]")?.closest(".knav__item"); 3715y&&(Qa(y),y=F.querySelector("[data-search-input]"),y?.focus({preventScroll:!0}),y?.select())},close:()=>{sa(!1);x(!1)}}},VERSION:"1.0.0"}})();typeof window!=="undefined"&&(window.KeepaNav=KeepaNav);let keepaNav=null;function initMenu(){"onhashchange"in window?(hashChangeSupport=!0,window.onhashchange=updateHashedMenu):interval=window.setInterval(updateHashedMenu,100);updateHashedMenu()} 3716function initKeepaNav(){typeof KeepaNav!=="undefined"&&(keepaNav?.destroy(),keepaNav=KeepaNav.mount({root:"#keepaNav",domain:storage.domain,language:storage.language,account:navAccount(),features:{pro:storage.domain!=7,api:!isAmazonOrAWS(),affiliate:!isAmazonOrAWS(),apiNotify:storage.hasAPI==1,apiDashboard:!!storage.hasAPI},onSearch:(a,b)=>{window.location.href="#!search/"+(b||storage.domain)+"-"+encodeURIComponent(a)},onLocaleChange:switchDomainAndLanguage,onLogin:()=>showLoginOverlay(),onRegister:()=> 3717showRegisterOverlay(),onLogout:()=>logout(),onCurrency:()=>CurrencySwitch.init(),tracking:navTracking}))}const NAV_TRACK_CACHE_KEY="keepa.nav.track",NAV_TRACK_MAX_AGE=6E4,NAV_ALERTS_SEEN_KEY="keepa.nav.alertsSeen";function navOwner(){return storage.token||""}function navAlertsSeen(){try{let a=JSON.parse(localStorage.getItem(NAV_ALERTS_SEEN_KEY)||"null");return a&&a.t===navOwner()?Number(a.m)||0:0}catch(a){return 0}} 3718function markNavAlertsSeen(a){if(a&&!(a<=navAlertsSeen()))try{localStorage.setItem(NAV_ALERTS_SEEN_KEY,JSON.stringify({t:navOwner(),m:a})),sessionStorage.removeItem(NAV_TRACK_CACHE_KEY)}catch(b){}}function readNavTrackCache(){try{let a=JSON.parse(sessionStorage.getItem(NAV_TRACK_CACHE_KEY)||"null");return a&&a.t===navOwner()&&Date.now()-a.at<NAV_TRACK_MAX_AGE?a.d:null}catch(a){return null}} 3719function writeNavTrackCache(a){try{sessionStorage.setItem(NAV_TRACK_CACHE_KEY,JSON.stringify({at:Date.now(),t:navOwner(),d:a}))}catch(b){}} 3720function navTrackingShape(a){return{tracked:a.trackingCount,products:a.menuTrackings||[],alertsWeek:a.alertsWeek,alertsNew:a.alertsNew,alertsLastAt:a.alertsLastAt?keepaTime.minutesToEpoch(a.alertsLastAt):null,alerts:(a.menuAlerts||[]).map(b=>({title:b.title,thumb:b.image?imageUrlBuilder(b.image,60):null,price:b.price==null?null:Money.format(b.price,{sourceDomainId:b.domainId}),drop:b.isDrop!==!1,graph:b.graph})),headline:a.menuAlerts&&a.menuAlerts.length?[a.menuAlerts[0].title,a.menuAlerts[0].price== 3721null?null:Money.format(a.menuAlerts[0].price,{sourceDomainId:a.menuAlerts[0].domainId})].filter(Boolean).join(" \u2014 "):null}}function navTracking(){return new Promise((a,b)=>{var c=readNavTrackCache();if(c)a(c);else{var d=navOwner();network.request({path:"user/menu",sinceCreateDate:navAlertsSeen()}).done(f=>{navOwner()!==d?b(null):(navAlertsSeen()||markNavAlertsSeen(f.alertsLastAt||keepaTime.now()),f=navTrackingShape(f),writeNavTrackCache(f),a(f))}).fail(b)}})} 3722function pushNavTracking(a){keepaNav&&a&&keepaNav.state.tracking&&keepaNav.setTracking(Object.assign({},keepaNav.state.tracking,a))}function navAccount(){return storage.accountType&&storage.accountType!=0?{name:storage.username,pro:!!hasDataAccessSubscription,anon:storage.accountType==1}:null}function syncNavAccount(){keepaNav&&keepaNav.setAccount(navAccount())}function openNavSearch(a){if(!keepaNav)return!1;a?.stopPropagation();keepaNav.openSearch();return!0} 3723function syncNavLeftPanel(a){if(a!=="#!product"&&a!=="#!track"&&a!=="#!tmp"){var b=document.getElementById("leftPanel");b&&(a==="#!deals"?(b.style.marginTop=contentTopOffset(),DomUtil.show(b)):(DomUtil.hide(b),b.innerHTML=""))}}function recordNavSearch(a,b,c){keepaNav&&(c=c||[],keepaNav.recordSearch({query:a,domain:b,count:c.length,images:c.slice(0,4).map(d=>imageUrlBuilder(d.imagesCSV??(d.images||[]).map(f=>
3723f.l||f.m).join(","),60))}))} 3724function switchDomainAndLanguage({domain:a,language:b}){var c=storage.language,d=storage.domain;storage.domain=a;storage.language=b;if(storage.language!=c||storage.domain!=d)isDomainSwitch=!0,refreshDomain(storage.domain),settings.send(),storage.language!=c?settings.refresh():(a=rewriteSubUrlDomain(lastUrl,lastSubUrl,storage.domain),a!==null&&(lastSubUrl=a,location.hash=lastUrl+"/"+lastSubUrl),callSubPage(0))} 3725var hashChangeSupport=!1,lastUrl="",lastHash="",lastRootUrl="",lastSubUrl="",ignoreNext=0,busy=!1,clickedObjectReference=null,rootPreventLoop=!1,overlayClosed=!1,triggerTrack=!1,triggerUnsubscribe=!1,preOverlayUrl=""; 3726function updateHashedMenu(){if(typeof isSnapshotPage=="undefined"&&(hashChangeSupport||!busy))if(!hashChangeSupport&&skipAsyncInterval)skipAsyncInterval=!1;else{var a=window.location.hash;a=a.replace("%21","!");var b=a.indexOf("?");if(b>-1)window.location.hash=a.substring(0,b);else if(a.substring(0,2)!="#!")window.location.hash="#!"+a.substring(1);else{busy=!0;b=a.split("/");var c=b[0];typeof isLoggerPage=="undefined"&&network.cancel();var d=document.getElementById("graph");if(d){var f=DomUtil.data(d, 3727"domainId");let k=d.dataset.asin;d=DomUtil.data(d,"index");graph.remove(f,k,d,!1);graph.remove(f,k,d,!0);graph.remove(f,k,1,!1)}else c!="#!product"&&c!="#!manage"&&graph.removeAll();if(c=="#!language")window.location.hash="",storage.language=b[1],verifyRegExp.domainId.test(storage.language)&&(storage.domain=storage.language),refreshDomain(storage.domain),settings.refresh(),c="",location.reload();else{if(c==="#!signup"||c==="#!signupLoginFail")c==="#!signupLoginFail"&&showPopPopup("Login Failed",'No Keepa account is connected with the chosen "login with" option. You can register a new one instead or use a different login option.', 3728!0),window.location.hash="",storage.accountType!=2&&window.setTimeout(showRegisterOverlay,800),c="";if(c!=="#!tgMessengerLogin")if(c==="#!logout"&&(window.location.hash="",logout(),c=""),c==="#!search"&&(f=[],f=b,f.splice(0,1),b[1]=f.join("/")),c=="#!pricedataapi")c="",window.location.hash="#!api";else if(c=="#!discuss"||c=="#!comment"||c=="#!community"||c=="#!sso"||c=="#!faq"||c.startsWith("#!comment-"))c="",window.location.hash="#!support";else{c=="#!h"&&(b[1].length>=64&&network.request({path:"user/session", 3729type:"handoff",handoff:b[1]}).done(k=>{if(k.token!=null&&k.token.length==64){let n=storage.install,q=storage.optOut_crawl,r=storage.overlayPriceGraph,u=storage.revealStock;network.clearDatabase();storage.clear();n&&(storage.install=n);q&&(storage.optOut_crawl=q);r&&(storage.overlayPriceGraph=r);u&&(storage.revealStock=u);initializeSettings();settings.setToken(k.token,!0);sendHelloGraph();settings.retrieve(!1,!0).done(()=>{intranet.postMessage({key:"login"});loginProgress.notify(!0)}).always(()=>{setTimeout(function(){try{window.location.hash= 3730"#!"+k.url}catch(B){}},50)})}else window.location.hash="#!"+k.url}).fail(k=>{showErrorPopup("Login attempt expired. Please try again.")}),lastSubUrl=c="",window.location.hash="#!tmp");if(c=="#!r"){if(b.length>1&&b[1].length>=64){let k=b[1].substring(64),n=b[2]&&b[2].length>0?"/"+b[2]:"";setTimeout(function(){window.location.hash="#!"+k+n},100)}lastSubUrl=c="";window.location.hash="#!tmp"}b.length>1?(f=b[1],f!=lastSubUrl&&(lastSubUrl=f,c==lastUrl&&callSubPage(2))):lastSubUrl="";if(c==""&&lastUrl== 3731""&&!rootPreventLoop)generateStartPage(),rootPreventLoop=!0;else if(c==""&&lastUrl!="")lastUrl.indexOf(" by ")==-1&&(document.title="Keepa.com"),rootPreventLoop=!1,DomUtil.hide(document.getElementById("bodyPanel")),DomUtil.show(document.getElementById("contentStartPage")),lastUrl.indexOf("#!product")==-1&&(preOverlayUrl=lastHash),lastUrl=c,lastHash=a,document.querySelectorAll(".menuItem, .subList").forEach(k=>k.setAttribute("style",""));else if(c!=lastUrl){if(c=="#!track")c="#!product",triggerTrack= 3732!0;else if(c=="#!trackDelete"){let k=(b[1]||"").split("-")[1];setTimeout(function(){k?network.request({path:"track",type:"deleteTracking",asinBatch:[k]}).done(function(){showPopup("Tracking deleted",la._437,!0)}
3732).fail(showErrorPopup).always(function(){location.hash="!notification"}):location.hash="!notification"},0)}else c=="#!unsubscribe"?(c="#!channels",triggerUnsubscribe=!0):c=="#!verify"?generateVerifyEmail():c=="#!pwreset"&&(document.getElementById("loginOverlay-close")?.click(),DomUtil.setStyles(document.getElementById("domainName"), 3733{color:"rgb(255, 99, 71)"}),DomUtil.hide(document.getElementById("contentStartPage")),generatePWreset());lastUrl.indexOf("#!product")==-1&&lastUrl.indexOf("#!finder")==-1&&lastUrl.indexOf("#!viewer")==-1&&(preOverlayUrl=lastHash);lastHash=a;lastUrl=c;rootPreventLoop=!1;DomUtil.show(document.getElementById("bodyPanel"));lastUrl=="#!search"?lastSubUrl.length>0&&loadPage(lastUrl):loadPage(lastUrl)}}}busy=!1}}}var skipAsyncInterval=!1; 3734function checkURL(a){a||(a=window.location.hash);var b=a.split("|");a=b[0];b.length>1&&(b=b[1],b!=lastSubUrl&&(lastSubUrl=b));loadPage(a);a!=lastUrl&&(lastUrl=a,ignoreNext=1)} 3735function settingsUndo(a){if(DomUtil.isVisible(a)){var b=a.innerHTML,c=/(\d+)/.exec(b),d=Number(c[1]);d==1?network.request({path:"user/session",type:"delete"}).done(function(f){window.keepaAnim.shrinkOut(document.getElementById("settingsPage"),1E3,function(){replaceHtml("bodyPanel","");window.location.hash=""});logout()}).fail(showErrorPopup):(a.innerHTML=b.replace(c[1],d-1),window.setTimeout(function(){settingsUndo(a)},1E3))}} 3736function getNewPasswordHtml(){return'<div id="passBox" style="display:none;" ><table class="trackFormTable"><tr><td class="trackFormTable-empty"> </td><td colspan="2"><label for="oldPW">'+(isSocialAccount?la._4:la._57)+'</label></td><td colspan="2"><label for="newPW">'+la._58+'</label></td><td colspan="2"><label for="newPW2">'+la._59+'</label></td></tr><tr><td class="trackFormTable-empty"> </td><td class="trackFormTable-id"><input autocapitalize="off" autocorrect="off" type="'+(isSocialAccount? 3737"text":"password")+'" rel="ids" maxlength="1024" name="oldPW" id="oldPW" /></td><td class="trackFormTable-empty"> </td><td class="trackFormTable-id"><input type="password" rel="ids" maxlength="1024" name="newPW" id="newPW" /></td><td class="trackFormTable-empty"> </td><td class="trackFormTable-id"><input type="password" rel="ids" maxlength="1024" name="newPW2" id="newPW2" /></td><td class="trackFormTable-empty"> </td></tr></table></div>'}var isSettings; 3738function showGraphSetupPopup(a){var b=JSON.parse(get("webGraphType")),c=settingsChips(GraphService.getAvailableGraphTypes().map(f=>({rel:f,label:`<span class="graph-setup__dot" style="background:${CsvType.getObject(f).color}"></span>${CsvType.getName(f)}`,active:b[f]==1})),!0);c=`<div class="graph-setup"> 3739 <p class="graph-setup__intro">${la._654}</p> 3740 <div class="graph-setup__types">${c}</div> 3741 <div class="setting-row"> 3742 <div class="setting-row__label">${la._135}</div> 3743 <div class="setting-row__control"> 3744 ${settingsField(get("webGraphRange"),la._143,{min:1,max:1E3,id:"webGraphRange"})} 3745 </div> 3746 </div> 3747 <div class="setting-actions"> 3748 <button type="button" class="card-action" id="saveSetup"><i class="fa fa-floppy-o"></i>${la._64}</button> 3749 </div> 3750 </div>`;var d=showPopup(la._253,c,!0);document.querySelector(".graph-setup__types")?.addEventListener("click",f=>{f.target.closest(".setting-chip")?.classList.toggle("-on")});document.getElementById("saveSetup")?.addEventListener("click",function(){document.querySelectorAll(".graph-setup__types .setting-chip").forEach(k=>{b[k.getAttribute("rel")]=k.classList.contains("-on")?1:0});var f=Math.round(Number(document.getElementById("webGraphRange")?.value));f=Math.min(1E3,Math.max(1,f||Number(get("webGraphRange")))); 3751d.close();set("webGraphType",b);set("webGraphRange",f);a()})} 3752function insertSettings(){get("s_boxVertical")||resetSettings(0);var a=Number(get("s_range")),b=get("graphScale"),c=get("extremeFilter"),d=get("s_dateFormat"),f=get("s_trackingMode"),k=Number(get("s_trackingTtl")),n=get("s_boxHorizontal"),q=get("s_boxType"),r=get("optOut_crawl"),u=get("overlayPriceGraph"),B=get("revealStock"),t=[{rel:"24",label:la._136},{rel:"168",label:la._137},{rel:"744",label:la._139},{rel:"2160",label:la._140},{rel:"8760",label:la._141},{rel:"-1",label:la._142}],G=!t.some(Ba=> 3753Number(Ba.rel)===a);t=settingsRow("s_range",la._135,settingsChips(t.map(Ba=>({...Ba,active:!G&&Number(Ba.rel)===a})))+settingsField(G?a/24:"",la._143,{min:1,max:4E3,placeholder:la._812,modifier:G?" -set":""}));var da=settingsRow("s_dateFormat",la._257,settingsChips(["D, M j G:i","G:i %- d/m/Y","M j, g a","j. M, G %U%h%r","G%\u6642n%\u6708j%\u65e5"].map(Ba=>({rel:Ba,label:(new Date).formatDate(Ba),active:d===Ba})))+settingsField(d,"",{text:!0,modifier:" -wide",title:"Supported switches are \n a, A, B, c, d, D, F, g, G, h, H, i, I, j, l, L, m,\n M, n, N, O, P, r, s, S, t, U, w, W, y, Y, z, Z\n To escape chars, use %. \n\n For more information, Google: 'PHP date'"})), 3754Y=SettingsUtil.getMerchantTrack(),X=settingsRow("s_merchantTrack",la._261,settingsChips([CsvType.BUY_BOX_SHIPPING.index,CsvType.AMAZON.index,CsvType.NEW.index,CsvType.USED.index].map(Ba=>({rel:Ba,label:CsvType.getName(Ba),active:!!Y[Ba]})),!0)),P=settingsRow("s_trackingTtl",la._874,settingsChips(TrackingComponent.getTtlOptions().map(Ba=>({rel:Ba.value,label:Ba.label,active:k===Ba.value})))),ka=storage.sendUpcomingLightningDealsAlert;ka=disableUpcomingLightningDeal||typeof ka=="undefined"?"":settingsRow("s_upcomingLightningDeals", 3755la._431,settingsYesNo(ka=="true","true","false"));var D=storage.sendStartLightningDealsAlert;D=typeof D!="undefined"?settingsRow("s_startLightningDeals",la._713,settingsYesNo(D=="true","true","false")):"";var W="";if(typeof storage.defaultNotificationInterval!="undefined"){W=Number(storage.defaultNotificationInterval)/1440;var N=isIframe?"https://keepa.com/#!support/rearm-timer":"#!support/rearm-timer";W=settingsRow("s_rearm",la._432,settingsField(W>0?W:"",la._143,{min:1,max:365,placeholder:la._433})+ 3756settingsSegment([{rel:"0",label:la._433,active:W==0}
3756])+`<a class="setting-row__help" target="_blank" href="${N}" title="${la._755}"><i class="fa fa-external-link"></i></a>`)}N="METRIC";if(typeof storage.gridConfig!=="undefined"){var ha=JSON.parse(storage.gridConfig);(ha=ha.unitSystem?ha.unitSystem:!1)&&["METRIC","IMPERIAL"].includes(ha)&&(N=ha)}ha=`<div class="settings-reset">${settingsAction("s_reset",la._278,"fa-undo"," -danger")}</div>`;var V=Number(storage.language)||1,O=settingsRow("s_language", 3757la._56,settingsChips([[1,"English"],[3,"Deutsch"],[4,"Fran\u00e7ais"],[5,"\u65e5\u672c\u8a9e"],[7,"\u4e2d\u6587"],[8,"Italiano"],[9,"Espa\u00f1ol"],[12,"Portugu\u00eas"]].map(([Ba,fa])=>({rel:Ba,label:fa,active:V===Ba}))));replaceHtml("settingsContent",`<section id="settingsTab" class="dashboard"> 3758 <h3 class="group-header">${la._252}</h3> 3759 <div class="card -compact"> 3760 ${t} 3761 ${settingsRow("graphScale",la._144,settingsSegment([{rel:"0",label:la._146,active:b=="0"},{rel:"1",label:la._145,active:b=="1"}]))} 3762 ${settingsRow("extremeFilter",la._164,settingsYesNo(c=="1","1","0"))} 3763 ${da} 3764 </div> 3765 3766 <h3 class="group-header">${la._258}</h3> 3767 <div class="card -compact"> 3768 ${settingsRow("s_trackingMode",la._843,settingsSegment([{rel:"basic",label:la._844,active:f==="basic"},{rel:"advanced",label:la._845,active:f==="advanced"},{rel:"pro",label:la._846,active:f==="pro"}]))} 3769 ${settingsRow("s_percent",la._259,settingsField(get("s_percent"),`% · ${la._260}`,{min:1,max:100}))} 3770 ${X} 3771 ${P} 3772 ${ka} 3773 ${D} 3774 ${W} 3775 ${settingsRow("noCouponsForAlerts",la._987,settingsYesNo(storage.noCouponsForAlerts!=="true","false","true"))} 3776 ${settingsRow("noPrimeExclAlerts",la._988,settingsYesNo(storage.noPrimeExclAlerts!=="true","false","true"))} 3777 </div> 3778 3779 <h3 class="group-header">${la._1542}</h3> 3780 <div class="card -compact"> 3781 ${settingsRow("configUnitSystem",la._1544,settingsSegment([{rel:"METRIC",label:la._1545,active:N==="METRIC"},{rel:"IMPERIAL",label:la._1546,active:N==="IMPERIAL"}]))} 3782 <div class="setting-actions"> 3783 ${settingsAction("clearUrlStore",la._1543,"fa-eraser")} 3784 <span class="setting-hint">${LangUtil.fill(la._1855)}</span> 3785 </div> 3786 </div> 3787 3788 <h3 class="group-header">${la._262}</h3> 3789 <div class="card -compact"> 3790 ${O} 3791 ${settingsRow("s_boxVertical",la._263,settingsField(get("s_boxVertical"),`px · ${la._264}`,{min:170,max:500}))} 3792 ${settingsRow("s_boxHorizontal",la._265,settingsSegment([{rel:"0",label:la._266,active:n=="0"},{rel:"1",label:la._267,active:n=="1"}]))} 3793 ${settingsRow("s_boxType",la._271,settingsSegment([{rel:"0",label:la._272,active:q=="0"},{rel:"1",label:la._273,active:q=="1"}]))} 3794 ${settingsRow("optOut_crawl",la._411,settingsYesNo(r=="0","0","1"))} 3795 ${settingsRow("overlayPriceGraph",la._418,settingsYesNo(u=="1","1","0")+`<button type="button" class="card-action" rel="-1"><i class="fa fa-sliders"></i>${la._253}</button>`)} 3796 ${settingsRow("revealStock",la._438,settingsYesNo(B=="1","1","0")+'<button type="button" class="setting-row__pro badge-pro" rel="-1">Pro</button>')} 3797 <div class="setting-actions"> 3798 ${settingsAction("currencySettings",la._949,"fa-exchange")} 3799 </div> 3800 </div> 3801 3802 ${ha} 3803 </section>`);var wa=function(){window.keepaAnim.highlight(document.getElementById("reload"),{color:"#FFDBB7",duration:1E3});settings.send();try{firefox||window.parent.postMessage("refresh,","*")}catch(Ba){}},La={s_range:[1,4E3],s_rearm:[1,365],s_boxVertical:[170,500]};document.querySelectorAll("#settingsTab .setting-field__input").forEach(Ba=>{Ba.addEventListener("keydown",fa=>{fa.key==="Enter"&&Ba.blur()});Ba.addEventListener("focusout",function(){var fa=this.closest("[data-setting]")?.dataset.setting; 3804if(fa)if(fa==="s_dateFormat")this.value!==get(fa)&&(set(fa,this.value),insertSettings(),wa());else if(fa==="s_rearm"&&this.value.trim()==="")Number(storage.defaultNotificationInterval)!==0&&(set("defaultNotificationInterval","0"),insertSettings(),wa());else{var [ia,Aa]=La[fa]??[1,100],Ia=Number(this.value);if(!Ia||Ia<ia||Ia>Aa)showPopup(la._3,la._283+ia+la._284+Aa+".",!0),insertSettings();else{if(fa==="s_range"){if(Ia*24===Number(get("s_range")))return;set("s_range",Ia*24)}else if(fa==="s_rearm"){fa= 3805Number(Ia*60*24).toFixed(0);if(fa===storage.defaultNotificationInterval)return;set("defaultNotificationInterval",fa)}else{if(this.value===get(fa))return;set(fa,this.value)}insertSettings();wa()}}})});document.getElementById("settingsTab")?.querySelectorAll("[rel]").forEach(Ba=>Ba.addEventListener("click",function(){var fa=this.closest("[data-setting]")?.dataset.setting,ia=this.getAttribute("rel");if(fa==="clearUrlStore")urlStore.clear().then(()=>
3805{showPopup("",`<p style="width:200px;">${la._44}</p>`, 3806!0);isTest&&console.log("UrlStore cleared successfully.")}).catch(Aa=>{isTest&&console.error("Failed to clear UrlStore:",Aa)});else{switch(fa){case "s_range":set("s_range",ia);break;case "graphScale":set("graphScale",ia);break;case "extremeFilter":set("extremeFilter",ia);break;case "s_dateFormat":set("s_dateFormat",ia);break;case "s_trackingMode":set("s_trackingMode",ia);break;case "s_trackingTtl":set("s_trackingTtl",ia);break;case "s_merchantTrack":fa=SettingsUtil.getMerchantTrack();fa[ia]=fa[ia]? 38070:1;set("s_merchantTrack",fa);break;case "s_language":if(ia==storage.language)return;set("language",ia);if(!isIframe){wa();settings.refresh();return}break;case "s_boxHorizontal":set("s_boxHorizontal",ia);break;case "overlayPriceGraph":if(ia==-1){showGraphSetupPopup(wa);return}set("overlayPriceGraph",ia);break;case "revealStock":if(ia==-1){window.open("https://keepa.com/#!settings/1");return}set("revealStock",ia);break;case "stockMaxOrderQty":ia!=storage.stockMaxOrderQty&&(showPopup("",la._976,!0), 3808set("stockMaxOrderQty",ia=="true"));break;case "s_position":set("s_position",ia);set("s_boxType",0);break;case "s_boxType":set("s_boxType",ia);set("s_position",0);break;case "s_upcomingLightningDeals":set("sendUpcomingLightningDealsAlert",ia=="true");break;case "s_startLightningDeals":set("sendStartLightningDealsAlert",ia=="true");break;case "noCouponsForAlerts":set("noCouponsForAlerts",ia==="true");break;case "noPrimeExclAlerts":set("noPrimeExclAlerts",ia==="true");break;case "s_rearm":set("defaultNotificationInterval", 3809Number(Number(ia)*60*24).toFixed(0));break;case "optOut_crawl":set("optOut_crawl",ia);break;case "s_reset":resetSettings(1);break;case "currencySettings":CurrencySwitch.init();break;case "configUnitSystem":fa=storage.gridConfig?JSON.parse(storage.gridConfig):{};delete fa.units;fa.unitSystem=ia;storage.gridConfig=JSON.stringify(fa);break;default:return}insertSettings();wa()}}))} 3810function resetSettings(a){a==1&&showPopup("",la._286,!0);for(let [b,c]of Object.entries(SettingsSchema))c.keep||set(b,c.value())}function save(a,b){typeof b=="object"&&(b=JSON.stringify(b));storage[a]=b;try{addon(a,b)}catch(c){}}function set(a,b){typeof b=="object"&&(b=JSON.stringify(b));storage[a]=b;try{addon("storageEntry",{key:a,value:b})}catch(c){}SettingsSchema[a]?.extension&&settings.setExtensionSetting(a,b)}function remove(a){storage.removeItem(a)} 3811function get(a){var b=storage[a];b&&b!="null"&&b!="undefined"||(b=SettingsSchema[a]?.value(),save(a,b));return b};let searching=!1; 3812function sendSearch(a,b){searching||(searching=!0,DomUtil.hide(document.getElementById("leftPanel")),verifyRegExp.domainId.test(a)||(a=/^([1-9]|10|11|12)$/.test(storage.domain)?storage.domain:languageName==="de"?3:languageName==="ja"?5:1),replaceHtml("searchPage",`<div style="margin-top:250px;">${getLoaderBox(!0)}</div>`),replaceHtml("searchPageContinue",""),network.request({content:b,domainId:a,path:"service/search",type:"productBasic"}).always(c=>{searching=!1;var d=c?c.searchProducts:null;recordNavSearch(b, 3813a,d);if(d==null||d.length==0){if(replaceHtml("searchPage",`${la._237}<span id="searchQuery" style="color:slategrey;"></span>${la._238}`),c=document.getElementById("searchQuery"))c.textContent=b}else if(d!=null&&d.length==1){if(c=document.getElementById("bodyPanel"))c.innerHTML="";window.document.location.hash=`#!product/${d[0].domainId}-${d[0].asin}`}else{setColumnLayout("full");network.withGrid(()=>{GridSearch.init(d,"searchPage")});c=`<div class="card -w-flex -compact mt-4"><p class="text-center"> 3814 <a class="href -pro" href="https://www.amazon.${getTldByDomain(a)}/s?k=${encodeURIComponent(b)}">→ ${la._357} ←</a> 3815 </p></div>`;let f=document.getElementById("searchPageContinue");f&&(f.innerHTML=c)}}))} 3816function searchUpdate(){document.getElementById("searchPage")||generateSearch();var a=window.location.hash.split("/");if(a[0]=="#!search"||a[0]=="#search")if(a.splice(0,1),a=a.join("/").split("-"),a.length<2)replaceHtml("productTableDescription","Error:<br>"+la._216);else{var b=a.splice(0,1);try{var c=decodeURIComponent(a.join("-"))}catch(f){c=a.join("-")}var d=la._10+": "+truncate(c,70);document.querySelectorAll(".headline").forEach(f=>f.textContent=d);c!==""&&sendSearch(b[0],c)}} 3817function truncate(a,b){var c;a=a.split("");
3817if(a.length>b){for(c=a.length-1;c>-1;--c)if(c>b)a.length=c;else if(" "===a[c]){a.length=c;break}a.push("...")}return a.join("")};var Guid=Guid||function(){function a(c=64){var d=new Uint8Array(Math.ceil(c*5/8));window.crypto.getRandomValues(d);var f="",k=0,n=0;for(let q=0;f.length<c&&q<d.length;q++)for(k=k<<8|d[q],n+=8;n>=5&&f.length<c;)n-=5,f+="0123456789abcdefghijklmnopqrstuv"[k>>n&31];return f}function b(c=64){for(var d="";d.length<c;){let f=Math.floor(Math.random()*281474976710656),k=53;for(;k>=5&&d.length<c;)d+="0123456789abcdefghijklmnopqrstuv"[f&31],f>>=5,k-=5}return d}return{newGuid:function(c){if(typeof window==="undefined"|| 3818!window.crypto||!window.crypto.getRandomValues)return b(c);try{return a(c)}catch(d){return b(c)}}}}(); 3819const settings={isEmailVerified:!1,refresh:function(){lastSubUrl=lastRootUrl=lastUrl="";initPage();clickedObjectReference=null;rootPreventLoop=!1;currency=getCurrencyByDomain(storage.domain);currencyDomainId=isNaN(Number(storage.currencyDomainId))?0:Number(storage.currencyDomainId)},reset:function(a,b){storage.accountType=0;storage.removeItem("username");storage.removeItem("email");storage.removeItem("apiKey");storage.removeItem(intranet.key);for(b=0;b<numberOfDomains;b++)storage.removeItem("dealsExcludedCats."+ 3820b),storage.removeItem("dealExcludedCats."+b);storage.removeItem("dealExcludedCats");for(b=0;b<storage.length;b++){let c=storage.key(b);c.indexOf("keepa.")==0&&storage.removeItem(c)}a&&storage.removeItem("token");emailActive=0;clearedLocalStorage=!1;settings.applyDataBucket()},setToken:function(a,b,c){if(a&&a.length==64){tokenIsIssuedGuest=!1;storage.token!=a&&(storage.token=a,storage.removeItem("hashSynced"),network.reauthorize());b&&settings.setExtensionSetting("token",a,c);try{let d=indexedDB.open("sw", 38211);d.onerror=()=>{};d.onupgradeneeded=f=>f.target.result?.createObjectStore("keyvaluepairs");d.onsuccess=f=>{try{f.target.result?.transaction("keyvaluepairs","readwrite").objectStore("keyvaluepairs").put(storage.token,"token")}catch(k){}}}catch(d){}}},setExtensionSetting:function(a,b,c){isTest||typeof b=="undefined"||b==null||b=="null"||b==""||b=="undefined"||(c?(sendReceive({key:"setCookie",value:{key:a,val:b,guest:!0}}),extensionNeedsToken=!1):(sendReceive({key:"setCookie",value:{key:a,val:b}}), 3822document.cookie=a+"="+b+";path=/extension;SameSite=Strict;Secure;Max-Age=31536000;"))},setExtensionSettingAll:function(){for(let a of settingsExtensionKeys())settings.setExtensionSetting(a,storage[a])},send:function(a){var b=Deferred(),c=document.getElementById("extension");c&&(c={browser:browserInfo(),type:c.getAttribute("type")??void 0,version:c.getAttribute("version")??void 0},storage.extension=JSON.stringify(c));var d={},f=["dealsRequest."],k="accountType bugReportWindow casinLocales currencyDomainId dealsClearDays dealsInterval dealsMerchant dealsOpacity dealsSectionState defaultNotificationInterval defaultNotificationType domain domainId email emailVerified exportFormat exportSelection exportSymbols extension extremeFilter finderLayout finderSectionState forceReload graphInterval graphScale gridConfig gridPresets gridState gridStateGeneration gridVersion hasAPI includeMeta initFailed install language lastEbayClick lastManageVisit lastManageVisitUpdate lastViewerVisit lastViewerVisitUpdate lastVisit manageDiffSortByOption manageExportFormat manageFilterModel manageGrid manageGridDefaultGraphMode manageGridGraphRange manageGridView manageGridViewMobile manageSortFilterReference manageQuickFilter manageView monthlySoldHide moreData noCouponsForAlerts noDataPromo noPrimeExclAlerts noReview onlyNotificationsWithTracking optOut_crawl overlayPriceGraph previewCasin revealStock rssHash s_alerts s_boxHorizontal s_boxType s_boxVertical s_dateFormat s_extreme s_merchantTrack s_percent s_position s_range s_trackingMode s_trackingTtl salesRankInverse sendUpcomingLightningDealsAlert sendStartLightningDealsAlert showCouponGraph showGraphs showSalesRankGraph singleVariation sortDefault stockMaxOrderQty subRanksHide updated1008 username useSmile webGraphRange webGraphType".split(" "); 3823c=[];for(let n=0;n<storage.length;n++){let q=storage.key(n);if(!(q==intranet.key||q=="token"||q=="fp"||q=="install"||q=="apiKey"||q.startsWith("keepa-docs-")||q.indexOf("viewer")>0||q.indexOf("_localstorage_available_")>0))if(k.indexOf(q)===-1&&!f.some(r=>q.startsWith(r)))c.push(q);else if(typeof storage[q]==="string"){let r=storage[q];r&&(d[q]=r,["gridPresets","gridState","gridStateGeneration","gridVersion"].includes(q)&&(d[q]=""))}}for(f=0;f<c.length;f++)isTest&&console.warn("removing foreign key", 3824c[f]),storage.removeItem(c[f]);c={path:"user/settings",type:"setSettings",localStorage:JSON.stringify(d),domainId:storage.domain,language:storage.language};typeof a!=="undefined"&&a.removeEmail===!0&&typeof c.email==="undefined"&&(c.removeEmail=!0,isTest&&console.info("%csetSettings","color:orange;font-weight:bold;",c));typeof a!=="undefined"&&typeof a.password!=="undefined"&&(c.password=a.password);typeof a!=="undefined"&&a.saveEmail===!0&&storage.email&&(c.email=storage.email);isNaN(parseInt(storage.defaultNotificationInterval))&& 3825(storage.defaultNotificationInterval=2880);typeof storage.defaultNotificationInterval!="undefined"&&(c.defaultNotificationInterval=storage.defaultNotificationInterval);if(typeof storage.defaultNotificationType!="undefined")for(c.defaultNotificationType=JSON.parse(storage.defaultNotificationType),a=0;a<c.defaultNotificationType.length;a++)c.defaultNotificationType[a]=c.defaultNotificationType[a]?1:0;typeof storage.sendUpcomingLightningDealsAlert!="undefined"&&(c.sendUpcomingLightningDealsAlert=storage.sendUpcomingLightningDealsAlert); 3826typeof storage.sendStartLightningDealsAlert!="undefined"&&(c.sendStartLightningDealsAlert=storage.sendStartLightningDealsAlert);typeof storage.useSmile!="undefined"&&(c.useSmile=storage.useSmile);c.noCouponsForAlerts=storage.noCouponsForAlerts==="true"?!0:!1;c.noPrimeExclAlerts=storage.noPrimeExclAlerts==="true"?!0:!1;typeof storage.stockMaxOrderQty!="undefined"&&(c.stockMaxOrderQty=storage.stockMaxOrderQty=="true"?!0:!1);storage.overlayPriceGraph==="undefined"&&(c.overlayPriceGraph=0);a=getCasinLocalesFromStorage(); 3827c.casinLocales=a;network.request(c).done(function(n){if(parseInt(n)!=0){let q=[];n.status.length?q=n.status:q.push(n.status);for(let r=0;r<q.length;r++)switch(q[r]){case 0:break;case 1:storage.domain=1;break;case 2:storage.language=1;break;case 3:isTest&&console.info("%cSettings error","color:red;font-weight:bold;","EMAIL FAILED");storage.removeItem("email");break;case 5:reportBug("sendSettings error 5, storage js fail",JSON.stringify(d));break;case -1:case -2:break;default:reportBug("sendSettings unknown status error", 3828JSON.stringify(n))}refreshDomain(storage.domain);b.resolve(n)}}).fail(function(n){b.reject(n)});return b},dataCache:null,lastPromise:null,retrieve:function(a,b,c){var d=Deferred();c=function(){network.request({path:"user/settings",type:"getSettings"}).done(function(f){parseInt(f)!=0?(localStorageSupported&&handleSettingsRequest(f,a),d.resolve()):d.reject(Error("user/settings returned no settings"))}).fail(function(f){f.status==401?(localStorageSupported&&settings.reset(!1,!1),d.resolve()):d.reject(f)})}; 3829b||settings.lastPromise==null?c():settings.lastPromise.always(c);return settings.lastPromise=d},applyDataBucket:function(a,b,c){typeof a!=="undefined"&&a!==null?(storage.tokenBucketSize=a,storage.dataQuantity=c,storage.tokens=storage.tokens?Date.now()-Number(storage.bucketUpdated)>3E3?b:Math.min(storage.tokens<0?0:storage.tokens,b):b?b:0):(storage.tokenBucketSize=0,storage.tokens=0,storage.dataQuantity=0);storage.bucketUpdated=Date.now()}}; 3830function getLogoSVG(a){return'<img style="vertical-align: middle; width: '+a+'px; !important" src="'+imgCDNUrl+'logo_circled.svg" alt="">'}var clearedLocalStorage=!1,isSocialAccount=!1,userData=null; 3831function handleSettingsRequest(a,b){if(a!=null)if(a.status==-2)settings.reset(!1,!1);else if(userData=a.user,userData==null&&(userData=a.data),userData!=null){isSocialAccount=!!a.sso;localStorageIsPolyFill||(Number(userData.accountType)>=1?settings.setExtensionSetting("token",storage.token):mayPushGuestToken()&&hasValidToken()&&settings.setExtensionSetting("token",storage.token,!0));if(userData.localStorage!=null)try{try{userData.localStorage=JSON.parse(userData.localStorage),delete userData.localStorage[intranet.key]}catch(q){reportBug(q, 3832userData.localStorage),userData.localStorage=null}var c={hashSynced:storage.hashSynced,token:storage.token,install:storage.
3832install,initFailed:storage.initFailed,gridPresets:storage.gridPresets,gridState:storage.gridState,gridVersion:storage.gridVersion};for(let q=0;q<storage.length;q++){if(q=="token")continue;let r=storage.key(q);typeof r=="string"&&r.indexOf("11")==0&&(c[r]=storage[r])}clearedLocalStorage||typeof c.token!="string"||c.token.length!=64||(storage.clear(),storage.token=c.token,clearedLocalStorage= 3833!0);for(var d in userData.localStorage){var f=userData.localStorage[d];f!="null"&&f!=null&&f!="undefined"&&(/hashSynced|install|token|keepa\..*|addonVersion.*/.test(d)||typeof c[d]!="undefined"||(storage[d]=f))}storage.s_merchantTrack=SettingsUtil.ensureMerchantTrackFormat(storage.s_merchantTrack);isNaN(Number(storage.currencyDomainId))||(currencyDomainId=Number(storage.currencyDomainId));for(var k in c){var n=c[k];n!=void 0&&n!=null&&(storage[k]=n)}}catch(q){console.log(q),reportBug(q)}storage.accountType= 3834userData.accountType;storage.username=AccountType[userData.accountType]!="ANON"?userData.userName:la._43;verifyRegExp.domainId.test(userData.domainId)?storage.domain=userData.domainId:verifyRegExp.domainId.test(storage.language)&&(storage.domain=storage.language);storage.domain<1&&(storage.domain=1);storage.language=userData.language||storage.language;storage.rssHash=userData.rssHash;storage.defaultNotificationInterval=userData.defaultNotificationInterval;storage.defaultNotificationType=JSON.stringify(userData.defaultNotificationType); 3835storage.sendUpcomingLightningDealsAlert=userData.sendUpcomingLightningDealsAlert;storage.sendStartLightningDealsAlert=userData.sendStartLightningDealsAlert;storage.useSmile=userData.useSmile;storage.noCouponsForAlerts=userData.noCouponsForAlerts;storage.noPrimeExclAlerts=userData.noPrimeExclAlerts;storage.stockMaxOrderQty=userData.stockMaxOrderQty;storage.lastVisit=userData.lastVisit;c=Date.now();storage.lastManageVisitUpdate!=null?c-Number(storage.lastManageVisitUpdate)>12E5&&(storage.lastManageVisitUpdate= 3836c,storage.lastManageVisit=userData.lastManageVisit):storage.lastManageVisit=userData.lastManageVisit;storage.lastManageVisitUpdate=c;storage.showCouponGraph=typeof storage.showCouponGraph==="undefined"?0:storage.showCouponGraph;storage.showSalesRankGraph=typeof storage.showSalesRankGraph==="undefined"?typeof storage.showGraphs!="undefined"?storage.showGraphs[7]:0:storage.showSalesRankGraph;storage.webGraphType&&storage.webGraphRange||(storage.webGraphType=JSON.stringify(GraphService.getDefaultWebGraphType()), 3837storage.webGraphRange=GraphService.getDefaultWebGraphRange().toString(),storage.s_overlay&&(c=JSON.parse(storage.s_overlay),d=GraphService.getWebGraphTypeAllOff(),d[CsvType.AMAZON.index]=c[CsvType.AMAZON.index],d[CsvType.NEW.index]=c[CsvType.NEW.index],d[CsvType.USED.index]=c[CsvType.USED.index],d[CsvType.SALES.index]=c[CsvType.SALES.index],d[CsvType.WAREHOUSE.index]=1,d[CsvType.LIGHTNING_DEAL.index]=1,storage.webGraphType=JSON.stringify(d),storage.webGraphRange=c[4].toString()));storage.removeItem("s_overlay"); 3838userData.casinLocales&&Array.isArray(userData.casinLocales)?storage.casinLocales=JSON.stringify(userData.casinLocales):(c=null,typeof storage.casinLocales==="string"&&(c=tryParseJSON(storage.casinLocales)),d=null,c&&(d=c.map(q=>!!q),storage.casinLimited!=="1"&&(d[0]=!1)),Array.isArray(d)&&d.length===LocaleType.length||(d=Array(LocaleType.length).fill(!1),d[0]=!0),storage.casinLocales=JSON.stringify(d));storage.casinLimited&&storage.removeItem("casinLimited");Number(storage.currencyDomainId)===13&& 3839(storage.currencyDomainId=0);userData.emailAddress?storage.email=userData.emailAddress:storage.removeItem("email");a.ear!=null?EmailStatus[a.ear.status]!="VERIFIED"?(setTimeout(function(){resend_Verify()},4E3),settings.isEmailVerified=!1):settings.isEmailVerified=!0:settings.isEmailVerified=!0;settings.setExtensionSettingAll();emailActive=storage.email?1:0;manageSortType=storage.sortDefault;refreshDomain(storage.domain);b||document.getElementById("tabTrack")?.classList.contains("active")?refreshLoginBar(): 3840settings.refresh()}}function refreshLoginBar(){DomUtil.hide(document.getElementById("loginOverlay"));syncNavAccount();var a=document.getElementById("submitLogin");a&&(a.value=la._2??"");if(a=document.getElementById("submitRegister"))a.value=la._42??""}function showLoginOverlay(){DomUtil.show(document.getElementById("loginOverlay"))}function showRegisterOverlay(){showLoginOverlay();document.getElementById("registerTab")?.click()} 3841function waitForTurnstileReady(a=4E3){return new Promise((b,c)=>{var d=Date.now();(function k(){if(window.turnstile&&typeof window.turnstile.ready==="function")try{window.turnstile.ready(()=>b());return}catch(n){}Date.now()-d>a?c(Error("turnstile_not_loaded")):setTimeout(k,50)})()})}function isUserHuman(a,b){function c(P){P?DomUtil.show(t):DomUtil.hide(t)}function d(P,ka){var D=document.getElementById("turnstileHelp");ka=ka?`<div>Error: ${String(ka)}</div>`:"";D&&(D.innerHTML=`${P}${ka} 3842 <ul> 3843 <li>Temporarily disable anti\u2011trackers extensions and reload the page</li> 3844 <li>Ensure your system clock is correct</li> 3845 <li>Turn off VPN/proxy or try another network</li> 3846 <li>Try a private window or a different browser</li> 3847 </ul> 3848 <p>If this still doesn\u2019t work, contact <a href="mailto:[email protected]">[email protected]</a>.</p>`);DomUtil.show(D);DomUtil.show(document.getElementById("turnstileControls"));c(!1)}function f(){var P=document.getElementById("turnstileHelp");DomUtil.hide(P);P&&(P.innerHTML="");DomUtil.hide(document.getElementById("turnstileControls"))}function k(P){if(!Y){Y=!0;document.removeEventListener("click",X);try{G&&window.turnstile&&window.turnstile.remove(G)}catch(ka){}try{u.close&&u.close()}catch(ka){}r.reject(P|| 3849"failed")}}function n(P){da++;da<3?q(!1):d("Verification did not complete.",P)}function q(P){f();c(!0);if(!P&&G&&window.turnstile&&typeof window.turnstile.reset==="function")try{window.turnstile.reset(G);return}catch(ka){}if(G&&window.turnstile)try{window.turnstile.remove(G)}catch(ka){}B&&(B.innerHTML="");window.turnstile&&typeof window.turnstile.render==="function"?G=window.turnstile.render("#tsWidget",{sitekey:"0x4AAAAAABeeF71YWyrb3Qcg",action:b,appearance:"interaction-only",theme:"light","feedback-enabled":!1, 3850"refresh-expired":"auto","retry-interval":8E3,"before-interactive-callback":()=>{c(!1)},"after-interactive-callback":()=>{c(!0)}
3850,callback(ka){c(!1);if(!Y){Y=!0;document.removeEventListener("click",X);try{G&&window.turnstile&&window.turnstile.remove(G)}catch(D){}try{u.close&&u.close()}catch(D){}r.resolve(ka)}},"timeout-callback":()=>{c(!1);n("timeout")},"expired-callback":()=>{c(!1);n("expired")},"unsupported-callback":()=>{c(!1);d("Your browser is not supported for this verification.","unsupported")}, 3851"error-callback":ka=>{console.error("Turnstile error",ka);c(!1);n(ka)}}):k("turnstile-unavailable")}var r=Deferred(),u=showPopup("Anti-bot check",` 3852 <div id="cfTurnstile"> 3853 <div id="turnstileHost"> 3854 <div id="tsSpinner" aria-live="polite" aria-busy="true"> 3855 <div></div> 3856 </div> 3857 3858 <style></style> 3859 <div id="tsWidget"></div> 3860 </div> 3861 3862 <div id="turnstileHelp"></div> 3863 3864 <div id="turnstileControls"> 3865 <button id="tsRetryBtn" type="button">Try again</button> 3866 ${a?'<button id="tsCancelBtn" type="button">Cancel</button>':""} 3867 </div> 3868 </div> 3869 `,a);addon();var B=document.getElementById("tsWidget"),t=document.getElementById("tsSpinner"),G=null,da=0,Y=!1;if(!u)return k("turnstile-unavailable"),r;var X=P=>{P.target?.closest?.("#tsRetryBtn")?(da=0,f(),q(!0)):P.target?.closest?.("#tsCancelBtn")&&k("cancelled")};document.addEventListener("click",X);u&&u.promise&&u.promise.fail(()=>k("cancelled"));a=new MutationObserver(()=>{B?.querySelector('iframe[src*="challenges.cloudflare.com"]')&&c(!1)});try{a.observe(B,{childList:!0,subtree:!0})}catch(P){}c(!0); 3870waitForTurnstileReady(4E3).then(()=>q(!0)).catch(()=>{d("Unable to load the verification component. Check your network, blockers and reload.","turnstile_not_loaded")});return r} 3871function registerAnonymous(a){var b=Deferred();iframe.isIframe&&!document.getElementById("loginOverlayBox")&&(document.getElementById("content")?.insertAdjacentHTML("beforebegin",getLoginForm()),initLogin());DomUtil.setStyles(document.getElementById("loginOverlay"),{position:"fixed"});showLoginOverlay();
3871addon("resize",350+float2int(DomUtil.height(document.getElementById("loginOverlayBox"))));a!==!0&&document.getElementById("registerTab")?.click();var c="registerAnon"+Date.now();loginCallbacks[c]= 3872function(d){document.getElementById("guestContainer")?.remove();delete loginCallbacks[c];document.getElementById("loginOverlay-close")?.click();DomUtil.setStyles(document.getElementById("loginOverlay"),{position:"absolute"});d||a?b.resolve():isUserHuman(!0,"registerAnon").done(function(f){network.request({path:"user/session",type:"register",turnstile:f}).always(function(k){settings.send().done(function(){settings.retrieve(!0).done(function(){refreshLoginBar();sendHelloGraph();b.resolve();loginProgress.notify(!0)}).fail(function(){b.reject(!0); 3873loginProgress.notify(!1)})}).fail(function(){loginProgress.notify(!1);b.reject(!0)})})}).fail(function(){DomUtil.setStyles(document.getElementById("loginOverlay"),{position:"absolute"});b.reject(!1)})};document.getElementById("loginForm")?.insertAdjacentHTML("beforebegin",'<div id="guestContainer" style="text-align: right;"><div id="continueGuest" class="button" style="display: inline-block;">'+la._588+'</div><br><hr style="border-color:rgba(10, 40, 82, 0.5) !important"></div>');document.getElementById("continueGuest")?.addEventListener("click", 3874function(){loginProgress.notify(!1)});b.fail(function(){addon("resize",50+float2int(DomUtil.height(document.getElementById("initPage"))))});return b}function wasForceLogout(){} 3875function logout(a){a&&showPopup(la._27,`<div style="max-width:600px"><p class="mdc-typography--body2">${la._941}</p></div>`,!0);a=storage.token;var b=storage.install,c=storage.optOut_crawl,d=storage.overlayPriceGraph;storage.clear();network.clearDatabase();a&&(storage.token=a);tokenIsIssuedGuest=!1;settings.reset(isTest,!0);b&&(storage.install=b);c&&(storage.optOut_crawl=c);d&&(storage.overlayPriceGraph=d);initializeSettings();network.request({path:"user/session",type:"logout",token:a}).always(function(f){refreshLoginBar(); 3876currency=getCurrencyByDomain(storage.domain);try{callSubPage(1)}catch(k){reportBug(k,JSON.stringify(k))}if(storage.username==""||/anon/.test(storage.username)){if(f=document.getElementById("name"))f.value=storage.username??""}else try{document.querySelector('label[for="name"]').appendChild(document.createTextNode(" "+storage.username))}catch(k){}intranet.postMessage({key:"logout"});sendHelloGraph(!0);network.clearDatabase()})} 3877var popupSettings="toolbar=no,statusbar=no,location=no,width=900px,height=600px,resizable=yes",popupName="Keepa_OpenID_Login";window.addEventListener("message",function(a){a.data&&a.origin&&(~a.origin.indexOf("https://dyn.keepa.com")||~a.origin.indexOf("https://dyn-2.keepa.com")||~a.origin.indexOf("https://push.keepa.com"))&&handleSocialLoginCallback(a.data)});var lastSocial=""; 3878function handleSocialLoginCallback(a){try{let b=location.href.indexOf("#!tgMessengerLogin")>0,c=function(){redirect_uri==""?(reportBug("redirect_uri is empty after socialLogin loop"),showErrorPopup(null,!0)):network.request({path:"user/session",type:"fbApp",content:"tg"}).done(function(d){document.location=redirect_uri+d.hash}).fail(showErrorPopup)};if(~a.status)switch(a.provider){case "alreadyRegistered":showPopup("Exter
3878nal Account Link failed","The external account is already linked with a Keepa Account. You need to remove that link first: log out, then use the external account to sign in and go to the settings page. There you can either delete the link or, if not needed anymore, delete the whole account.", 3879!0);break;case "loginNotExist":showPopup("External Account login failed",'No Keepa account is connected with the chosen "login with" option. You can register a new one instead or use a different login option.',!0);break;case "google":case "amazon":a.status==1?showPopup(la._3,"Social login failed, as you denied Keepa access / aborted the process.",!0):(localStorageSupported&&settings.setToken(a.token,!0),settings.retrieve().always(function(){b&&c();loginProgress.notify(!0)}))}else throw Error(`social login failed: provider ${a.provider|| 3880"unknown"}, status ${a.status}`);}catch(b){loginProgress.notify(!1),showErrorPopup(null,!0),reportBug(b,"socialCallback: "+JSON.stringify(a))}} 3881function addOpenIdEvents(a){var b=document.getElementById("loginForm"),c=a?"&redirect_uri="+a:"";b?.querySelector("#openIDoogle")?.addEventListener("click",function(){var f=getSocialLoginURL("googleLogin",c,isMobile?"1":"0");isMobile?document.location=f:window.open(f,popupName,popupSettings)});b?.querySelector("#openIDmazon")?.addEventListener("click",function(){var f=getSocialLoginURL("amazonLogin",c,isMobile?"1":"0");isMobile?document.location=f:window.open(f,popupName,popupSettings)});document.getElementById("pwreset")?.addEventListener("click", 3882function(){DomUtil.hide(document.getElementById("loginTable"));DomUtil.show(document.getElementById("resetForm"));var f=document.getElementById("emailReset");f&&(f.value=document.getElementById("emailRegister")?.value??"")});document.getElementById("PWresetBack")?.addEventListener("click",function(){DomUtil.hide(document.getElementById("resetForm"));var f=document.getElementById("emailReset");f&&(f.value="");DomUtil.show(document.getElementById("loginTable"))});var d=!1;document.getElementById("resetForm")?.addEventListener("submit", 3883function(f){f.preventDefault();var k=document.getElementById("emailReset"),n=k.value.trim();if(n.length==0)window.keepaAnim.highlight(k);else if(d)f.stopPropagation();else{d=!0;if(f=document.getElementById("submitPWreset"))f.value=la._45??"";network.request({path:"user/session",type:"emailpw",email:n}).done(()=>{d=!1;var q=document.getElementById("resetForm");q&&(q.innerHTML=`<div style="width: 400px; text-align: justify; margin-right: 30px;">${la._375}</div>`)}).fail(q=>{d=!1;replaceHtml("resetForm", 3884`<div style="width: 400px; text-align: justify; margin-right: 30px;">${la._error}</div>`);reportBug("resetForm fail",JSON.stringify(q))})}})}function getSocialLoginURL(a,b,c){var d=protocol+network.server[network.serverIndex]+ajaxPrefix,f=hasValidToken()?"user="+storage.token+"&":"",k=DomUtil.isVisible(document.getElementById("registerEmailBox"))?"1":"0";return d+"user/social/init/?"+f+"type="+a+"&noCache="+Date.now()+b+"&isRegister="+k+"&isRedirect="+c}var la,languageObjects={}; 3885function genericErrorText(){return la?._error??"An error occurred - please try again in a few minutes or try reloading Keepa. If the error persists, please contact [email protected]. Thank y
3885ou."}const LANGUAGE_FILES={1:"en",3:"de",4:"fr",5:"ja",7:"cn",8:"it",9:"es",12:"pt"};var languageName="en";function languageTag(){return languageName==="cn"?"zh":languageName} 3886function loadLanguage(a){languagePromise.state()!=="pending"&&(languagePromise=Deferred());a||=LANGUAGE_FILES[storage.language]||"en";languageName=a;try{document.documentElement.lang=languageTag()}catch(b){}if(languageObjects[a])la=languageObjects[a],languagePromise.resolve();else{let b;b=/test\.keepa/.test(location.href)?"https://test.keepa.com/js/languages/"+a+".json":is30108?location.origin+"/js/languages/"+a+".json?"+Date.now():CDNUrl+"languages/"+a+".json?"+scriptSource;let c=0,d=function(){network.ajax({type:"GET", 3887url:b,dataType:"json"},!0).done(function(f){la=f;languageObjects[a]=f;languagePromise.resolve()}).fail(function(f){c>3?(f?.status!==0&&reportBug(Error("language file unavailable"),`[loadLanguage] ${a} ${b} attempts=${c+1} status=${f?.status??"?"}`),showErrorPopup("unable to load files. please check your network connection and try to reload page.",!0),languagePromise.reject()):(c++,setTimeout(d,500))})};d()}}const loginCallbacks={},loginProgress=Deferred();loginProgress.progress(function(a){for(let b in loginCallbacks)loginCallbacks[b](a)}); 3888const setSubmitLogin=function(a){var b=document.getElementById("submitLogin");b&&(b.value=a??"")},renderLoginFieldError=function(a,b,c){var d=document.getElementById("loginForm");d?.querySelectorAll(".error").forEach(f=>f.remove());c&&(setSubmitLogin(la._42),DomUtil.hide(document.getElementById("pwreset")));d?.querySelectorAll('label[for="'+a+'"]').forEach(f=>f.insertAdjacentHTML("beforeend",'<span class="error">'+b+"</span>"))};let initRun=!1; 3889const initLogin=function(){document.getElementById("registerTab")?.addEventListener("click",function(){this.classList.contains("inactive")&&(toggleLoginRegister(!0),this.className="",document.getElementById("loginTab")?.classList.add("inactive"),window.keepaAnim.slideDown(document.getElementById("registerTabBox"),{duration:300}))});var a=document.querySelectorAll(".toggle-password");a.forEach(k=>k.addEventListener("click",()=>{a.forEach(q=>{q.classList.toggle("fa-eye");q.classList.toggle("fa-eye-slash")}); 3890var n=document.getElementById("password");n&&(n.getAttribute("type")=="password"?n.setAttribute("type","text"):n.setAttribute("type","password"))}));document.getElementById("loginTab")?.addEventListener("click",function(){this.classList.contains("inactive")&&(toggleLoginRegister(!1),this.className="",document.getElementById("registerTab")?.classList.add("inactive"))});document.getElementById("loginOverlay-close")?.addEventListener("click",function(k){DomUtil.hide(document.getElementById("loginOverlay")); 3891DomUtil.show(document.getElementById("loginTable"));DomUtil.hide(document.getElementById("resetForm"));document.getElementById("registerForm")?.querySelectorAll(".error").forEach(n=>n.remove());k.preventDefault();loginProgress.notify(!1)});document.getElementById("usernameRegister")?.addEventListener("blur",function(){storage.username=this.value});var b=document.getElementById("mailtoOtp"),c=document.getElementById("username");b.addEventListener("click",k=>{k.preventDefault();k=k.target.getAttribute("href"); 3892window.open(k+" - "+c.value.trim())});var d=!1,f=function(){if(d)return!1;d=!0;setSubmitLogin(la._45);isUserHuman(!0,"register").done(function(k){var n=document.getElementById("emailRegister").value.trim();k={path:"user/session",type:"register",username:document.getElementById("username").value.trim(),password:document.getElementById("password").value.trim(),email:n,turnstile:k};n.length==0&&delete k.email;network.request(k).done(function(q){d=!1;if(q.error){switch(q.error.type){case "captcha":case "rateLimited":showErrorPopup(q.error.message, 3893!0);break;case "usernametaken":renderLoginFieldError("username",la._50,!0);break;case "emailAddressTaken":renderLoginFieldError("email",la._936,!0);window.keepaAnim.fadeIn(document.getElementById("pwreset"),{duration:300});break;default:reportBug("user/session register: default",JSON.stringify(q)),showErrorPopup(q.error.message,!0)}setSubmitLogin(la._42)}else settings.setToken(q.token,!0),setSubmitLogin(la._44),settings.send().always(function(){settings.retrieve().done(function(){document.getElementById("loginOverlay-close")?.click(); 3894intranet.postMessage({key:"login"})})}),sendHelloGraph(),loginProgress.notify(!0)}).fail(function(q){d=!1;if(q.hasOwnProperty("details")&&q.hasOwnProperty("error")&&q.error=="invalidParameter")for(var r in q.details){var u=q.details[r];if(u.message!="invalid"){var B="",t="";switch(u.type){case "userName":B="username";t=la._48.replace("6","2");break;case "restrictedUserName":B="username";t=u.message;break;case "userPasswordOld":case "userPassword":B="password";t=la._48;break;case "userEmail":B="email"; 3895t=la._49;break;case "captcha":B=u.type;t=u.message;break;default:reportBug("user/session register: case unknown",JSON.stringify(q)),showErrorPopup(null,!0)}
3895renderLoginFieldError(B,t)}}else reportBug("keepa register",JSON.stringify(q)),showErrorPopup(null,!0);setSubmitLogin(la._42)})}).fail(function(){setSubmitLogin(la._42);d=!1})};document.getElementById("loginForm")?.addEventListener("submit",function(k){k.preventDefault();document.getElementById("loginTab")?.classList.contains("inactive")?f():d? 3896k.stopPropagation():(d=!0,setSubmitLogin(la._45),replaceHtml("loginError",""),replaceHtml("loginErrorOtp",""),k={path:"user/session",type:"login",username:document.getElementById("username").value.trim(),password:document.getElementById("password").value.trim()},DomUtil.isVisible(document.getElementById("sectionLoginOtp"))&&(k.code=document.getElementById("otp").value.trim()),network.request(k).done(function(n){d=!1;n.error==null||typeof n.error=="undefined"?(settings.setToken(n.token,!0),setSubmitLogin(la._44), 3897settings.retrieve().done(function(){document.getElementById("loginOverlay-close")?.click();intranet.postMessage({key:"login"})}),sendHelloGraph(),loginProgress.notify(!0),network.clearDatabase()):n.error.type==="loginCredentialsWrong"?(setSubmitLogin(la._2),replaceHtml("loginError",la._46)):n.error.type==="otp"||n.error.type==="otp2"?(setSubmitLogin(la._2),n.error.type==="otp"?(replaceHtml("emailAddressOtp",n.emailAddress),replaceHtml("loginErrorOtp","")):n.error.type==="otp2"&&replaceHtml("loginErrorOtp", 3898la._1002),DomUtil.show(document.getElementById("sectionLoginOtp"))):(showErrorPopup(null,!0),reportBug("user/session login",JSON.stringify(n)))}).fail(function(n){d=!1;if(n.status==401)showPopup("Unauthorized",n.json.substring(1,n.json.length-1),!0),document.getElementById("loginForm")?.querySelectorAll(".error").forEach(t=>t.remove());else if(n.hasOwnProperty("details")&&n.hasOwnProperty("error")&&n.error=="invalidParameter")for(var q in n.details){var r=n.details[q];if(r.message!="invalid"){var u= 3899"",B="";switch(r.type){case "userName":u="username";B=la._48.replace("6","4");break;case "userPasswordOld":case "userPassword":u="password";B=la._48;break;default:reportBug("user/session register: case unknown",JSON.stringify(n)),showErrorPopup(null,!0)}renderLoginFieldError(u,B)}}else reportBug("user/session login",JSON.stringify(n)),showErrorPopup(null,!0);setSubmitLogin(la._2)}))});addOpenIdEvents()};let isDomainSwitch=!1,sentInitOnce=!0; 3900function sendInitTimeStat(a){if(sentInitOnce){sentInitOnce=!1;try{let b=Date.now()-window.initTimestamp,c=window.networkInitTimestamp-window.initTimestamp,d=window.settingsLoadedTimestamp-window.initTimestamp;console.log("index took "+window.perfIndexEnd+"ms, network took "+c+"ms, init took "+d+"ms, lock took "+(window.initTimestamp-window.lockTimestamp)+"ms");decompressFromBase64("yygpKSi20tcvKC3O0MtOTS1I1EvOz9VPLCjQLy5JLCnWty+pLEi1zczLLAEA").then(f=>{network.ajax({url:f+(iframe.isIframe?"Iframe": 3901"Website")+"&took="+b+"&tookNetwork="+c+"&tookIndex="+window.perfIndexEnd+"&tookSettings="+d+"&domain="+a+"&s="+storage.token,type:"GET",dataType:"json"},!0)}).catch(()=>{})}catch(b){}}}function showViolation(a){addon("resize","1400px");var b=`<div style="font-family: Arial, sans-serif; background-color: #ffcccb; color: #a33; padding: 20px; border-radius: 5px; margin: 5%; text-align: center;"> 3902 <p id="violationUser" style="font-size: 12px;color: #c9bab8;margin: -5px;text-align: right;"> </p> 3903 <h2 style="margin-top: 0;">Keepa.com: Access Temporarily Blocked</h2> 3904 <p>Your access to our services has been <strong>temporarily blocked${a.hours>0?` for ${a.hours} hours`:""}</strong> due to violations of our Terms of Service. We take these actions to ensure the safety and integrity of our service.</p> 3905 <h3>Key Guidelines for Subscription Usage</h3> 3906 <ul style="text-align: left; margin: 10px 15%;"> 3907 <li style="margin-top: 8px;"><b>One Person, One Subscription</b><br>Our subscription is designed for individual use. It must be used exclusively by the person who registered it. Sharing with others, even within the same household or organization, is not allowed.</li> 3908 <li style="margin-top: 8px;"><b>Separate Accounts for Each User</b><br>If more than one person needs access to our services, each individual must have their own separate account with a distinct subscription. This applies to families, friends, colleagues, and any other groups.
3908</li> 3909 <li style="margin-top: 8px;"><b>Avoid Unauthorized Services</b><br>The use of any account reselling service, group buy or account sharing browser extensions is strictly prohibited.</li> 3910 <li style="margin-top: 8px;"><b>No Scraping or Automation</b><br>The scraping of our data, use of automation tools, or any form of unauthorized data extraction from our platform is strictly forbidden.</li> 3911 </ul> 3912 <h3>Recommended Actions</h3> 3913 <ul style="text-align: left; list-style: inside; margin: 10px 15%;"> 3914 <li>If multiple users require access, each user must create a separate account with its own subscription.</li> 3915 <li>Change your account password immediately by <a href="https://keepa.com/#!settings/2" target="_blank" style="color: #06f; text-decoration: none;">clicking here</a>.</li> 3916 <li>Check for and deactivate any browser extensions related to group buy or account reselling.</li> 3917 <li>Disable your VPN if you use one.</li> 3918 <li>Do not share your account credentials with anyone.</li> 3919 <li>Avoid using any form of automated scripts, bots, or software for data scraping or automated access to our platform.</li> 3920 </ul> 3921 <p>If you are certain this is an error please <a href="mailto:[email protected]?subject=Access%20Blocked%20Inquiry%20-%20${storage.username}%20-%20${a.IP}" style="color: #06f; text-decoration: none;">contact us</a>.</p> 3922 <p>Repeated violations will result in a <strong>permanent ban</strong> from our services. We value your participation and urge you to adhere to our Terms of Service for continued access.</p> 3923 <p>Thank you for your understanding and cooperation.</p> 3924 </div>`;document.body.innerHTML=b;setTimeout(function(){document.body.innerHTML=b;try{document.getElementById("violationUser").textContent=storage.username+" "+a.IP}catch(c){}addon("resize","1400px")},1E3)} 3925function initPage(){initRun=!0;window.settingsLoadedTimestamp=Date.now();if(typeof storage.domain=="undefined"||storage.domain==7)storage.domain=1;loadLanguage();languagePromise.done(function(){storage.removeItem("hash");if(iframe.isIframe)iframe.init(),lockPromiseResolve();else{sendInitTimeStat(storage.domain);var a=!1;setTimeout(function(){try{inIframe()&&location.href.indexOf("#!logout")>0&&(a=!0,window.parent.location=location.href,document.documentElement.innerHTML="")}catch(b){}},0);setTimeout(function(){if(!a){try{generateIndex(), 3926initMenu(),initLogin(),document.getElementById("productOverlay-close")?.addEventListener("click",function(b){b.preventDefault();unbindOverlayClick();closeProductOverlay()}),refreshLoginBar(),pageLoaded()}catch(b){isTest&&console.log(b)}lockPromiseResolve()}},1)}})}let redirect_uri=""; 3927function tgBotLogin(){loadLanguage(LANGUAGE_FILES[getDefaultLanguage()]||"en");languagePromise.done(function(){var a=location.hash.split("-");if(a.length<2)console.error("invalid split length: ",a),showErrorPopup("invalid split length: "+a);else if(redirect_uri=decodeURIComponent(a.splice(1).join("-")),redirect_uri.indexOf("https://dyn.keepa.com/")!=0&&redirect_uri.indexOf("https://bot.keepa.com/")!=0)reportBug("untrusted redirect_uri",redirect_uri),showErrorPopup("untrusted redirect_uri: "+redirect_uri); 3928else{redirect_uri=redirect_uri.indexOf("?")>-1?redirect_uri+"&authorization_code=":redirect_uri+"?authorization_code=";if(a=document.getElementById("content"))a.innerHTML=getLoginForm();a=document.getElementById("loginOverlay-close");a?.insertAdjacentHTML("afterend",'<img src="https://keepa.com/cdn/img/logo_circled.svg" alt="" style="width:135px;margin:0 0 10px 42px;">');a?.remove();document.querySelector('meta[name="viewport"]').content="user-scalable=yes, initial-scale=1.0, maximum-scale=2.0, minimum-scale=0.2, width=device-width, height=device-height"; 3929DomUtil.setStyles(document.getElementById("submitLogin"),{fontSize:"17px"});document.getElementById("loginForm")?.classList.add("is-tgbot-login");document.querySelectorAll("#loginForm label, #orOpenId").forEach(d=>DomUtil.setStyles(d,{fontSize:"16px"}));DomUtil.setStyles(document.getElementById("loginOverlay"),{background:"inherit",display:"flex",justifyContent:"center"});DomUtil.setStyles(document.documentElement,{background:"#989898"});DomUtil.setStyles(document.getElementById("loginOverlayBox"), 3930{margin:"15px",position:"static"});document.getElementById("registerTab")?.addEventListener("click",function(){this.classList.contains("inactive")&&(toggleLoginRegister(!0),this.className="",document.getElementById("loginTab")?.classList.add("inactive"))});document.getElementById("loginTab")?.addEventListener("click",function(){this.classList.contains("inactive")&&(toggleLoginRegister(!1),this.className="",document.getElementById("registerTab")?.classList.add("inactive"))});if(localStorageSupported){storage.token= 3931null;try{storage.clear(),intranet.postMessage({key:"logout"}),network.clearDatabase(),initializeSettings()}catch(d){}}addOpenIdEvents(encodeURIComponent(redirect_uri));var b=!1,c=function(){if(b)return!1;b=!0;setSubmitLogin(la._45);isUserHuman(!0,"registerTg").done(function(d){var f=document.getElementById("emailRegister").value.trim();d={path:"user/session",type:"register",username:document.getElementById("username").value.trim(),password:document.getElementById("password").value.trim(),email:f, 3932turnstile:d,sso:"fbBot",content:"tg"};f.length===0&&delete d.email;network.request(d).done(function(k){b=!1;if(k.error)switch(k.error.type){case "captcha":case "rateLimited":showErrorPopup(k.error.message,!0);break;
3932case "usernametaken":renderLoginFieldError("username",la._50,!0);break;case "emailAddressTaken":renderLoginFieldError("email",la._936,!0);window.keepaAnim.fadeIn(document.getElementById("pwreset"),{duration:300});break;default:reportBug("user/session register: default",JSON.stringify(k)), 3933showErrorPopup(k.error.message,!0)}else setSubmitLogin(la._44),document.location=redirect_uri+k.hash}).fail(function(k){b=!1;if(k.hasOwnProperty("details")&&k.hasOwnProperty("error")&&k.error==="invalidParameter")for(let n in k.details){let q=k.details[n];if(q.message!=="invalid"){let r="",u="";switch(q.type){case "userName":r="username";u=la._48.replace("6","4");break;case "userPasswordOld":case "userPassword":r="password";u=la._48;break;case "userEmail":r="email";u=la._49;break;case "captcha":r= 3934q.type;u=q.message;break;default:reportBug("user/session register: case unknown",JSON.stringify(k)),showErrorPopup(null,!0)}renderLoginFieldError(r,u)}}else reportBug("keepa register",JSON.stringify(k)),showErrorPopup("Register Failed.");setSubmitLogin(la._42)})}).fail(function(){setSubmitLogin(la._42);b=!1})};b=!1;document.getElementById("loginForm")?.addEventListener("submit",function(d){d.preventDefault();document.getElementById("loginTab")?.classList.contains("inactive")?c():b?d.stopPropagation(): 3935(b=!0,setSubmitLogin(la._45),replaceHtml("loginError",""),network.request({path:"user/session",type:"login",username:document.getElementById("username").value.trim(),password:document.getElementById("password").value.trim(),sso:"fbBot",content:"tg"}).done(function(f){b=!1;f.error===null||typeof f.error=="undefined"?(localStorageSupported&&settings.setToken(f.token,!0),setSubmitLogin(la._44),document.location=redirect_uri+f.hash,network.clearDatabase()):f.error.type==="loginCredentialsWrong"?(setSubmitLogin(la._2), 3936replaceHtml("loginError",la._46)):(showPopup(la?._3??"Error","Login Failed.",!0),reportBug("user/session login",JSON.stringify(f)))}).fail(function(f){b=!1;if(f.hasOwnProperty("details")&&f.hasOwnProperty("error")&&f.error==="invalidParameter")for(var k in f.details){var n=f.details[k];if(n.message!="invalid"){var q="",r="";switch(n.type){case "userName":q="username";r=la._48.replace("6","4");break;case "userPasswordOld":case "userPassword":q="password";r=la._48;break;default:reportBug("user/session register: case unknown", 3937JSON.stringify(f)),showErrorPopup(null,!0)}renderLoginFieldError(q,r)}}else reportBug("user/session login",JSON.stringify(f)),showPopup(la?._3??"Error","Login Failed.",!0);setSubmitLogin(la._2)}))})}})}function pageLoaded(){typeof window.callPhantom==="function"&&window.callPhantom({status:"loaded"})}var popupActive3=!1,popupActive4=!1; 3938function noCause(){var a=Error("showErrorPopup (no cause given)");Error.captureStackTrace&&(Error.captureStackTrace(a,showErrorPopup),/\n\s*at /.test(String(a.stack||""))||Error.captureStackTrace(a,noCause));return a} 3939function showErrorPopup(a,b){var c="";try{typeof a==="string"?c=a:a&&a.message?c=String(a.message):a&&(a.status||a.statusText)?c=`HTTP ${a.status||""} ${a.statusText||""}`.trim():a&&a.type&&a.target?c="":a!=null&&(c=String(a)),/^\[object /.test(c)&&(c="")}catch(d){}try{b||errorReporter.report("handled",errorReporter.WARNING,a!=null?a:noCause(),{popup:"showErrorPopup",hash:location.hash,detail:c||void 0})}catch(d){}a=la?._3??"Error";b=genericErrorText();return c?showPopup(a,c+"<br>"+b,!0):showPopup(a, 3940b,!0)} 3941function showDialog(a,b,c,d,f){function k(){if(B&&(B.querySelector("#shareChartOverlay-close"+(d==3?"":d))?.addEventListener("click",n),B.querySelectorAll("#popupMessage"+(d==3?"":d)+' a:not([id="terms"])').forEach(G=>G.addEventListener("click",n)),B.querySelector("#overlayShadowTop"+d)?.addEventListener("click",n),d==3&&B.querySelector("#abortOp")?.addEventListener("click",n),c)){let G=function(da){da.key=="Escape"&&(document.removeEventListener("keydown",G),n())};document.addEventListener("keydown",G)}} 3942function n(){r.reject();q()}function q(){shareChartOverlayActive=!1;window["popupActive"+d]=!1;window.keepaAnim.fadeOut(B?.querySelector("#overlayShadowTop"+d),{duration:300,complete:function(){B?.remove()}});window.keepaAnim.shrinkOut(t,150,function(){t?.parentNode?.remove();addon()})}var r=Deferred(),u="popup"+d;if(window["popupActive"+d]&&document.getElementById(u))return!1;window["popupActive"+d]=!0;a='<div id="'+u+'">
3942<div id="overlayShadowTop'+d+'"></div><div class="relativeAlignCenter flex"><div class="hidden generalOverlay" style="max-height: '+ 3943(f||"80%")+'; overflow-y: auto;"><div class="card -shadow-md" style="margin:0px;text-align:justify; color: #444; max-width:95%;position: relative;">'+(c?'<div id="shareChartOverlay-close'+(d==3?"":d)+'"><i class="fa fa-times-circle fa-2x"></i></div>':"")+'<div id="popupTitle'+(d==3?"":d)+'" style="font-size: 18px; margin: 0 40px 15px 0;display: inline-block; color: #111">'+a+'</div><br><span id="popupMessage'+(d==3?"":d)+'">'+b+"</span></div></div></div></div>";b=document.getElementById("contentAlign"); 3944if(b){b.insertAdjacentHTML("beforebegin",a);var B=b.previousElementSibling}else document.body.insertAdjacentHTML("beforeend",a),B=document.body.lastElementChild;var t=B?.querySelector(".generalOverlay");window.keepaAnim.shrinkIn(t,250,function(){setTimeout(function(){DomUtil.setStyles(t,{transform:""});var G=Math.max(1.25*DomUtil.height(t),25+DomUtil.height(t?.querySelector(".card")));addon("resize",Math.max(Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight, 3945document.documentElement.offsetHeight,document.documentElement.clientHeight),120+float2int(G)))},1)});k();return{close:function(){r.resolve();q()},update:function(G){replaceHtml("popupMessage"+(d==3?"":d),G);k()},promise:r}}function showPopPopup(a,b,c){return showDialog(a,b,c,4)}function showPopup(a,b,c,d){return showDialog(a,b,c,3,d)} 3946const resend_Verify=function(){if("#!verify"!==lastUrl){showPopup(la._361,la._362+'<br><br><input type="submit" class="button" id="resendVerify" value="'+(la._363+'"><div id="verifyDelivery"></div><br><br><hr style="border-color:#38F !important">')+la._364+' <span style="color: #39F">'+storage.email+'</span> <a class="settings-chpw" id="gotoSettings" href="#!channels">'+la._365+"</a>",!0);document.getElementById("gotoSettings")?.addEventListener("click",function(){document.getElementById("shareChartOverlay-close")?.click()}); 3947var a=VerifyDelivery.GOOD,b=VerifyDelivery.BAD,c=document.getElementById("verifyDelivery"),d=function(){settings.isEmailVerified=!0;VerifyDelivery.line(c,la._360,!0)};VerifyDelivery.refresh(c,{onVerified:d});var f=!1,k=document.getElementById("resendVerify");k?.addEventListener("click",function(n){n.preventDefault();f?n.stopPropagation():(f=!0,k.value=la._45??"",network.request({path:"user/verify",type:"send"}).done(function(q){f=!1;k.value=la._363;if(parseInt(q)!=0){let r=VerifyDelivery.sendMessage(q.emailStatus); 3948switch(q.emailStatus){case "NEW_MAIL_SENT":VerifyDelivery.line(c,r[0],r[1]);VerifyDelivery.watch(c,{onVerified:d});break;case "ALREADY_SENT_RECENTLY":VerifyDelivery.line(c,r[0],r[1]);break;case "ADDRESS_REFUSED":VerifyDelivery.show(c,q.emailDelivery)||VerifyDelivery.line(c,r[0],r[1]);break;case "IS_BLOCKED":case "IS_VERIFIED":case "MAX_ATTEMPTS_REACHED":replaceElement(k,"div","<br>"+r[0],r[1]?a:b);break;default:reportBug("resendVerifyButton default",JSON.stringify(q)),replaceElement(k,"div","<br>"+ 3949la._error,b)}}}).fail(function(){f=!1;replaceElement(k,"div","<br>"+la._error,"color:tomato;")}))})}}; 3950function showWebSocketNotSupported(){showPopup("Your browser is outdated",'Keepa.com uses a WebSocket for communication, which your browser does not support.<br><br>Please update your browser or <a class="url" href="http://caniuse.com/#feat=websockets">check out supported browsers</a>.',!1);document.querySelectorAll(".generalOverlay").forEach(a=>DomUtil.setStyles(a,{top:"4%",left:"4%"}));setTimeout(function(){try{window.parent.postMessage({key:"resize",value:"800px",origin:"keepaIframe"},"*")}catch(a){}}, 39511500)} 3952const onready=function(a){try{let b=window.location.hash;b=b.replace("%21","!");b.substring(0,2)!="#!"&&(b="#!"+b.substring(1));let c=b.split("/");if(c[0]=="#!r"&&c[1].length>=64){let d=c[1].substring(64);window.location.hash="#!"+d+(c[2]&&c[2].length>0?"/"+c[2]:"")}}catch(b){console.error(b)}keepaApp&&!a||typeof isSnapshotPage!="undefined"||("WebSocket"in window||"MozWebSocket"in window?location.href.indexOf("#!tgMessengerLogin")>0?tgBotLogin():localStorageSupported?(initializeSettings(),loadLanguage(),languagePromise.done(function(){var b= 3953null,c='<br><br><div style="color: #9a4100">Please check if there is an update available for your browser. It is possible that your connection to Keepa is interrupted by browser extensions, proxys or firewalls you or your company use. You can try to use a private/incognito browser session, use another browser or your mobile device to verify if that is the case. <br><br>
3953'+(isMobile?"We suggest you try out another browser, we recommend Chrome Mobile of Firefox Mobile.":"If the error persists, please open your browser console (F12 > Console) to look for any 'WebSocket' errors logged and send us a snapshot of them to [email protected].")+ 3954"</div>";try{/bot|googlebot|crawler|spider|robot|crawling/i.test(navigator.userAgent)&&(storage.initFailed=Date.now())}catch(f){}setTimeout(function(){initRun||(network.connectToServer(!0),setTimeout(function(){typeof isLoggerPage!="undefined"||initRun||(DomUtil.hide(document.getElementById("networkOverlay")),b=showPopup("Oh no! Initialization Failed",'Checking your connection to Keepa:  <span id="ajaxCheck"><span class="dotLoading" style="display:inline-block;height: 8px;"></span></span><br><br>You can try to <span class="url blue" id="ifr">reload</span>.', 3955!1),network.ajax({url:"https://"+server[0]+"/isOnline",type:"GET",dataType:"text"},!0).done(function(f){DomUtil.hide(document.getElementById("networkOverlay"));f.startsWith("200")?network.ajax({url:"https://"+server[0]+"/getWebSocketHeader",type:"GET",dataType:"text"},!0).done(k=>{replaceHtml("ajaxCheck",'<span class="green">OK!</span><br>Checking WebSocket connectivity:  <span id="wsCheck"><span class="dotLoading" style="display:inline-block;height: 8px;"></span><br>');var n=new WebSocket("wss://"+ 3956(window.wsHost||server[0])+"/apps/cloud/?app=keepaWebsite&version=3.0",storage.token);n.binaryType="arraybuffer";n.onclose=function(q){var r=q.code;q=q.reason;if(q=="blocked"){DomUtil.show(document.getElementById("networkOverlay"));if(r=document.getElementById("networkBar"))r.innerHTML="You are blocked from our services. Please contact us via [email protected] for resolution.";storage.updated1008="1";replaceHtml("wsCheck",'<span class="red">Failed</span>')}else replaceHtml("wsCheck",'<span class="red">Failed with status '+ 3957r+" "+q+"</span><div><div>Connection headers:</div>"+k+"</div>"+c)};n.onerror=function(q){n.close()};n.onopen=function(q){replaceHtml("wsCheck",'<span class="green">OK!</span><br><br>There appears to be no problem with your connection. Please try to reload. If the error persists, please open your browser console (F12 > Console) to look for any errors logged and send us a snapshot of them to [email protected]. If you are on a mobile device you can try to use another browser.');n.close()}}):replaceHtml("ajaxCheck", 3958'<span class="red">Failed. '+f+" - Please try again later.</span>")}).fail(function(f){replaceHtml("ajaxCheck",'<span class="red">Failed. Are you offline? Maybe Keepa is down right now.</span>')}),document.getElementById("ifr")?.addEventListener("click",function(){network.connectToServer(!0);document.location.reload(!0)}),network.ajax({url:"app/stats/?type=failedWS&host="+server[serverIndex],type:"GET",dataType:"json"},!0))},6E3))},isTest?6E4:15E3);var d=function(){settings.retrieve(!0,!1,3E5).always(function(){if(b!= 3959null)try{b.close()}catch(k){}initPage();if(typeof storage.initFailed!="undefined"){var f=Number(storage.initFailed);Number.isFinite(f)&&Date.now()-f>6048E5&&(storage.removeItem("initFailed"),settings.send())}})};network.connectToServer(!1);network.onConnected()==null?d():network.onConnected().done(d)})):(showPopup("Your browser settings prevent Keepa from functioning",'Keepa.com needs permission to store data in your browser. Please check your browser privacy settings and add an exception allowing Keepa to store website data (even for third party, as our Keepa Box is third party when embedded on Amazon):<br><br><span style="text-align: left"><span style="color: cornflowerblue">Chrome:</span><br>Open the Site settings page at <span style="color: #777">chrome://settings/content</span>, select "Third-party cookies" and add <span style="color:#4CA14E">[*.]keepa.com</span> as an exception in the section "Allowed to use third-party cookies".<br><br><span style="color: cornflowerblue">Firefox:</span><br>Open Settings -> Privacy & Security, select "Manage Exceptions..." under "Cookies and Site Data" and add <span style="color:#4CA14E">https://keepa.com</span> as an allowed exception.</span><br>If you have Enhanced Tracking Protection set to anything other than "Standard", please ensure that you only block tracker cookies rather than blocking all cookies. Alternatively, you can try restoring the default settings.<br><br>If this does not help: Please verify that none of your addons / extensions block access to local storage. You can also contact [email protected] if you need further help.', 3960!1),document.querySelectorAll(".generalOverlay").forEach(b=>DomUtil.setStyles(b,{top:"4%",left:"4%"})),setTimeout(function(){try{window.parent.postMessage({key:"resize",value:"800px",origin:"keepaIframe"},"*")}catch(b){}},1500)):showWebSocketNotSupported())},LANGUAGE_BY_SUBTAG={en:1,de:3,fr:4,ja:5,zh:7,it:8,es:9,pt:12},DOMAIN_BY_REGION={US:1,GB:2,UK:2,DE:3,FR:4,JP:5,CA:6,CN:7,IT:8,ES:9,PT:9,IN:10,MX:11,BR:12},DOMAIN_BY_LANGUAGE={de:3,fr:4,ja:5,zh:7,it:8,es:9,pt:12}; 3961function preferredLocales(){return Array.prototype.filter.call(navigator.languages&&navigator.languages.length?navigator.languages:[navigator.language||navigator.userLanguage],Boolean)}function parseLocale(a){a=String(a).split(/[-_]/);var b=null;for(let c=1;c<a.length&&a[c].length!==1;c++)if(/^[A-Za-z]{2}$/.test(a[c])){b=a[c].toUpperCase();break}return{language:a[0].toLowerCase(),region:b}} 3962function getDefaultLanguage(){try{let a=preferredLocales();for(let b=0;b<a.length;b++){let c=LANGUAGE_BY_SUBTAG[parseLocale(a[b]).language];if(c)return c}}catch(a){}return 1}function getDefaultDomain(){try{let a=preferredLocales();for(let b=0;b<a.length;b++){let c=parseLocale(a[b]),d=DOMAIN_BY_REGION[c.region];if(d)return d;let f=DOMAIN_BY_LANGUAGE[c.language];if(f)return f}}catch(a){}return 1} 3963function initializeSettings(){try{for(let a=0;a<storage.length;a++){let b=storage.key(a);storage[b]!="null"&&storage[b]!=="undefined"||storage.removeItem(b)}}catch(a){}settings.dataCache=null;!storage.email&&storage["keepa.email"]&&(storage.email=storage["keepa.email"]);storage.email!="null"&&storage.email!="undefined"||storage.removeItem("email");
3963storage.token&&storage.token.length===64||settings.reset(!0,!1);storage.domain=storage.domain||getDefaultDomain();verifyRegExp.domainId.test(storage.domain)|| 3964(storage.domain=getDefaultDomain());storage.language=storage.language||getDefaultLanguage();storage.accountType=storage.accountType||0;storage.accountType=storage.accountType=="none"?0:storage.accountType;storage.graphInterval=storage.graphInterval||2160;storage.graphScale=storage.graphScale||0;storage.extremeFilter=storage.extremeFilter||0;storage.dealsMerchant=storage.dealsMerchant||1;storage.dealsInterval=storage.dealsInterval||2;storage.lastVisit=storage.lastVisit||0;storage.emailVerified=storage.emailVerified|| 39650;storage.sortDefault=storage.sortDefault||0;storage.manageView=storage.manageView||0;storage.salesRankInverse=storage.salesRankInverse||0;refreshDomain(storage.domain);SettingsSubscription.reset();hasDataAccessSubscription=!1};const pointSymbols={square:function(a,b,c,d,f){d=d*Math.sqrt(Math.PI)/2;a.rect(b-d,c-d,d+d,d+d)},diamond:function(a,b,c,d,f){d*=Math.sqrt(Math.PI/2);a.moveTo(b-d,c);a.lineTo(b,c-d);a.lineTo(b+d,c);a.lineTo(b,c+d);a.lineTo(b-d,c)},triangle:function(a,b,c,d,f){d*=Math.sqrt(2*Math.PI/Math.sin(Math.PI/3));var k=d*Math.sin(Math.PI/3);a.moveTo(b-d/2,c+k/2);a.lineTo(b+d/2,c+k/2);f||(a.lineTo(b,c-k/2),a.lineTo(b-d/2,c+k/2))},cross:function(a,b,c,d,f){d=d*Math.sqrt(Math.PI)/2;a.moveTo(b-d,c-d);a.lineTo(b+ 3966d,c+d);a.moveTo(b-d,c+d);a.lineTo(b+d,c-d)},nabla:function(a,b,c,d,f){d*=Math.sqrt(2*Math.PI/Math.sin(Math.PI/3));var k=d*Math.sin(Math.PI/3);a.moveTo(b-d/2,c-k/2);a.lineTo(b+d/2,c-k/2);f||(a.lineTo(b,c+k/2),a.lineTo(b-d/2,c-k/2))},lastPoint:function(a,b,c,d,f,k){k&&a.arc(b,c,1.5,0,f?Math.PI:Math.PI*2,!1)}},graph=function(){function a(e,x){var v=x.sourceDomainId,C=x.targetDomainId,A=x.keepUnit?1:0,H=bb.get(v);H||(H=new Map,bb.set(v,H));v=H.get(C);v||(v=new Map,H.set(C,v));C=v.get(A);C||(C=new Map, 3967v.set(A,C));if(C.has(e))return C.get(e);x=Money.raw(e,x);C.set(e,x);return x}function b(e,x,v,C){x=x==="mouseout"?["mouseout","mouseleave"]:[x];for(let H=0;H<e.syncedGraphs.length;H++){var A=e.syncedGraphs[H];if(!A||!A.plot)continue;if(A=A.plot.getEventHolder())for(let Z of x){let ca=new MouseEvent(Z,{bubbles:Z!=="mouseleave",cancelable:!0,view:window,clientX:v,clientY:C});ca._kaSync=!0;A.dispatchEvent(ca)}}}function c(e,x){try{let A=e.getAxes().xaxis,H=e.getPlotOffset(),Z=e.height(),ca=e.width(); 3968x.save();x.translate(H.left,H.top);e=db||0;x.strokeStyle="#aaa";x.lineWidth=1;var v=(new Date(A.min)).getFullYear(),C=(new Date(A.max)).getFullYear();for(x.beginPath();v<=C;
3968v++){let g=(new Date(v,0,1)).getTime(),m=A.p2c(g+e);if(m>=0&&m<=ca){let w=Math.round(m)+.5;x.moveTo(w,0);x.lineTo(w,Z)}}x.stroke();x.strokeStyle="#aaa";x.lineWidth=2;let K=new Date(A.min);K=new Date(K.getFullYear(),K.getMonth(),1);let F=new Date(K),z=new Date(A.max);for(x.beginPath();F<=z;){let g=F.getTime(),m=A.p2c(g+e);F.getMonth()!== 39690&&m>=0&&m<=ca&&(C=m-0,x.moveTo(C,Z),x.lineTo(C,Z-3));F.setMonth(F.getMonth()+1)}x.stroke();x.restore()}catch(A){reportBug(A)}}function d(){var e=r(!0,!0),x={},v=0;for(let C in e){let A=e[C];A.index=100+v++;A.series.index=A.index;A.series.lines.show=!1;A.series.label=null;A.series.labelText=`${CsvType[C].currency?la._342.replace(" "," "):la._860}: ${A.series.labelText}`;A.series.dashes={show:!0,steps:!0,lineWidth:1.2,dashLength:13};A.series.points.show=!1;x[desiredSeriesPrefix+C]=A}return x} 3970function f(e,x,v,C,A,H){var Z={},ca=-1;for(let K in e){e=x[K];ca++;typeof e==="undefined"&&(e={name:"?"});let F=typeof v[K]==="undefined"||v[K].length==1?"":' <i class="fa fa-sitemap" aria-hidden="true"></i> '+(v[K].length-1);Z[K]={index:ca,isDisabled:!1,series:{index:K,data:[],label:(ca==0?'<span id="subRankToggle" title="Click to toggle all" style="color: darkseagreen;position: absolute;margin-top: -17px;margin-left: -18px;font-size: 11px;">'+la._395+"</span>":"")+e.name+F,labelText:e.name+F,getLabelText:z=> 3971{z=getValueAtTime(A,z,CsvType.SALES);return z==-1?A[1]:z},labelReferenceHistory:K==C?A:null,lines:{show:storage.subRanksHide!=="1",steps:!0,fill:K==C,fillColor:{colors:["rgba(198, 237, 203, 0.1)","rgba(198, 237, 203, 1.0)"]},lineWidth:1},hoverable:!1,color:K==C?CsvType.SALES.color:Flot.color.parse(CsvType.SALES.color).add("rgb",ca*-25).toString(),backgroundColor:CsvType.SALES.bg,points:{show:!0,symbol:pointSymbols.lastPoint},dashes:{show:!1},yaxis:ca+2,isCurrency:!1}}}H!=null&&(ca++,Z["#monthlySold"]= 3972{index:ca,isDisabled:!1,series:{index:"#monthlySold",data:H,label:la._1032,labelText:la._1032,labelDesc:LangUtil.fill(la._1033),getLabelText:K=>la._1032,labelReferenceHistory:null,lines:{show:storage.monthlySoldHide!=="1",steps:!0,fill:!1,fillColor:{colors:["rgba(245,215,0,0.5)","rgba(245,215,0,1.0)"]},lineWidth:1.5},hoverable:!1,color:"#f6d500",backgroundColor:CsvType.AMAZON.bg,points:{show:!0,symbol:pointSymbols.lastPoint},dashes:{show:!1},yaxis:ca+2,isCurrency:!1}});return Z}function k(e,x,v,C){var A= 3973{};v=-1;for(let H in e)v++,A[H]={index:H,deal:!1,currency:!1,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!1,isOfferData:!1,isSalesRankGraph:!0,color:"#8FBC8F",bg:"rgba(198, 237, 203, 0.8)"};C!=null&&(v++,A["#monthlySold"]={index:"#monthlySold",deal:!1,currency:!1,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!1,isOfferData:!1,isSalesRankGraph:!0,color:"#f6d500",bg:"rgba(237,232,198,0.8)"});A.length=v;A.getName=H=>H==0?la._1032:x[H].name;A.getObjectNameByName=H=>A[H];A.getObject= 3974H=>A[H];A.getObjectName=H=>H;return A}function n(e){var x={},v=-1;for(let C in e)v++,x[C]={index:v,isDisabled:!1,series:{index:C,data:[],label:CouponType.getName(CouponType[C].index),labelText:CouponType.getName(CouponType[C].index),labelDesc:CouponType.getDescription(CouponType[C].index),getLabelText:A=>"@todo getLabelText "+C,lines:{show:!0,steps:!0,fill:!1,fillColor:{colors:[Flot.color.parse(CouponType[C].color).add("a",-.1).toString(),Flot.color.parse(CouponType[C].color).add("a",-1).toString()]}, 3975lineWidth:1},hoverable:!1,color:CouponType[C].color,backgroundColor:Flot.color.parse(CouponType[C].color).add("a",-.6).toString(),points:{show:!0,symbol:pointSymbols.lastPoint},dashes:{show:!1},yaxis:v+2,isCurrency:CouponType[C].currency,isPercentage:!CouponType[C].currency}};return x}function q(e){var x={},v=-1;for(let C in e)v++,x[C]={index:v,deal:!1,currency:CouponType[C].currency,showDefault:1,isEnabled:!0,isWithShipping:!1,isTopGraph:!1,isOfferData:!1,isSalesRankGraph:!1,isCouponGraph:!0,color:CouponType[C].color, 3976bg:Flot.color.parse(CouponType[C].color).add("a",-.6).toString()};x.length=v;x.getName=C=>CouponType.getName(C);x.getObjectNameByName=C=>CouponType.getObjectNameByName(C);x.getObject=C=>CouponType.getObject(C);x.getObjectName=C=>CouponType.getObjectName(C);return x}function r(e,x,v){var C=keepaApp?1:1.5,A=keepaApp?1.5:2.5,H=Z=>{var ca=graphIsRestricted(e,Z),K=CsvType.getName(Z);typeof isSnapshotPage=="undefined"&&(Z===CsvType.SALES.index&&(K=CsvType.getName(Z)+`<span class="salesRankInverse"> ${storage.salesRankInverse=== 3977"0"?'<i class="fa fa-sort-numeric-desc"></i>':'<i class="fa fa-sort-numeric-asc"></i>'} </span>`,ca||(K+=`<span class="toggleSalesRankGraph" style="margin-left:3px;color:${storage.showSalesRankGraph=="1"?"#34bf34":"#666"}" title="${la._1015}"><i class="fa fa fa-sitemap"></i> <span style="font-style:italic;">sub-ranks</span></span>`)),enableBuyBoxCouponGraph&&typeof Z==="string"&&Z.includes("#Coupon")&&(K=CsvTypeWithCoupon.getName(Z.replace("#Coupon",""))));return ca&&keepaApp?"":K+(ca?' <i class="fa fa-lock"></i> ': 3978"")};x={AMAZON:{index:0,isDisabled:!CsvType.AMAZON.isEnabled,series:{index:0,data:null,label:H(0),labelText:CsvType.getName(0),labelDesc:CsvType.getDescription(0),lines:{show:Sa[0]==1||v===!0,steps:!0,fill:!0,fillColor:{colors:CsvType.AMAZON.fillColor},lineWidth:C}
3978,hoverable:!1,color:CsvType.AMAZON.color,backgroundColor:CsvType.AMAZON.bg,points:{show:!0,symbol:pointSymbols.lastPoint},dashes:{show:!1},yaxis:1,isCurrency:CsvType.AMAZON.currency}},NEW:{index:1,isDisabled:!CsvType.NEW.isEnabled,series:{index:1, 3979data:null,label:H(1),labelText:CsvType.getName(1),labelDesc:CsvType.getDescription(1),lines:{show:Sa[1]==1||v===!0,steps:!0,lineWidth:C},hoverable:!1,color:CsvType.NEW.color,backgroundColor:CsvType.NEW.bg,points:{show:!0,symbol:pointSymbols.lastPoint},dashes:{show:!1},yaxis:1,isCurrency:CsvType.NEW.currency}},USED:{index:2,isDisabled:!CsvType.USED.isEnabled,series:{index:2,data:null,label:H(2),labelText:CsvType.getName(2),labelDesc:CsvType.getDescription(2),lines:{show:Sa[2]==1||v===!0,steps:!0,fill:!1, 3980lineWidth:C},hoverable:!1,color:CsvType.USED.color,backgroundColor:CsvType.USED.bg,points:{show:!0,symbol:pointSymbols.lastPoint},dashes:{show:!1},yaxis:1,isCurrency:CsvType.USED.currency}},SALES:{index:3,isDisabled:!CsvType.SALES.isEnabled,series:{index:3,data:null,label:H(3),labelText:CsvType.getName(3),labelDesc:CsvType.getDescription(3),lines:{show:Sa[3]==1||v===!0,steps:!0,lineWidth:C},hoverable:!1,points:{show:!1},color:CsvType.SALES.color,backgroundColor:CsvType.SALES.bg,dashes:{show:!1},yaxis:2, 3981isCurrency:CsvType.SALES.currency}},LISTPRICE:{index:4,isDisabled:!CsvType.LISTPRICE.isEnabled,series:{index:4,data:null,label:H(4),labelText:CsvType.getName(4),labelDesc:CsvType.getDescription(4),lines:{show:Sa[4]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.LISTPRICE.color,backgroundColor:CsvType.LISTPRICE.bg,points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvType.LISTPRICE.currency}},COLLECTIBLE:{index:5,isDisabled:!CsvType.COLLECTIBLE.isEnabled,series:{index:5,data:null, 3982label:H(5),labelText:CsvType.getName(5),labelDesc:CsvType.getDescription(5),lines:{show:Sa[5]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.COLLECTIBLE.color,backgroundColor:CsvType.COLLECTIBLE.bg,points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvType.COLLECTIBLE.currency}},REFURBISHED:{index:6,isDisabled:!CsvType.REFURBISHED.isEnabled,series:{index:6,data:null,label:H(6),labelText:CsvType.getName(6),labelDesc:CsvType.getDescription(6),lines:{show:Sa[6]==1||v===!0,steps:!0, 3983fill:!1,lineWidth:C},hoverable:!1,color:CsvType.REFURBISHED.color,backgroundColor:CsvType.REFURBISHED.bg,points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvType.REFURBISHED.currency}},NEW_FBM_SHIPPING:{index:7,isDisabled:!CsvType.NEW_FBM_SHIPPING.isEnabled,series:{index:7,data:null,label:H(7),labelText:CsvType.getName(7),labelDesc:CsvType.getDescription(7),lines:{show:Sa[7]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.NEW_FBM_SHIPPING.color,backgroundColor:CsvType.NEW_FBM_SHIPPING.bg, 3984points:{show:x,symbol:pointSymbols.square,lineWidth:1,radius:A},dashes:{show:!1},yaxis:1,isCurrency:CsvType.NEW_FBM_SHIPPING.currency}},LIGHTNING_DEAL:{index:8,isDisabled:!CsvType.LIGHTNING_DEAL.isEnabled,series:{index:8,data:null,label:H(8),labelText:CsvType.getName(8),labelDesc:CsvType.getDescription(8),lines:{show:Sa[8]==1||v===!0,steps:!0,fill:!1,lineWidth:5},hoverable:!1,color:CsvType.LIGHTNING_DEAL.color,backgroundColor:CsvType.LIGHTNING_DEAL.bg,points:{show:!0},dashes:{show:!1},yaxis:1,isCurrency:CsvType.LIGHTNING_DEAL.currency}}, 3985WAREHOUSE:{index:9,isDisabled:!CsvType.WAREHOUSE.isEnabled,series:{index:9,data:null,label:H(9),labelText:CsvType.getName(9),labelDesc:CsvType.getDescription(9),lines:{show:Sa[9]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.WAREHOUSE.color,backgroundColor:CsvType.WAREHOUSE.bg,points:{show:x,symbol:pointSymbols.cross,lineWidth:1,radius:A+.5},dashes:{show:!1},yaxis:1,isCurrency:CsvType.WAREHOUSE.currency}},NEW_FBA:{index:10,isDisabled:!CsvType.NEW_FBA.isEnabled,series:{index:10, 3986data:null,label:H(10),labelText:CsvType.getName(10),labelDesc:CsvType.getDescription(10),lines:{show:Sa[10]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.NEW_FBA.color,backgroundColor:CsvType.NEW_FBA.bg,points:{show:x,symbol:pointSymbols.triangle,lineWidth:1,radius:A},dashes:{show:!1},yaxis:1,isCurrency:CsvType.NEW_FBA.currency}},COUNT_NEW:{index:11,isDisabled:!CsvType.COUNT_NEW.isEnabled,series:{index:11,data:null,label:H(11),labelText:CsvType.getName(11),labelDesc:CsvType.getDescription(11), 3987lines:{show:Sa[11]==1||v===!0,steps:!0,lineWidth:C},hoverable:!1,points:{show:!1},color:CsvType.COUNT_NEW.color,backgroundColor:CsvType.COUNT_NEW.bg,dashes:{show:!1},yaxis:3,isCurrency:CsvType.COUNT_NEW.currency}},COUNT_USED:{index:12,isDisabled:!CsvType.COUNT_USED.isEnabled,series:{index:12,data:null,label:H(12),labelText:CsvType.getName(12),labelDesc:CsvType.getDescription(12),lines:{show:Sa[12]==1||v===!0,steps:!0,lineWidth:C},hoverable:!1,points:{show:!1},color:CsvType.COUNT_USED.color,backgroundColor:CsvType.COUNT_USED.bg, 3988dashes:{show:!1},yaxis:3,isCurrency:CsvType.COUNT_USED.currency}},COUNT_REFURBISHED:{index:13,isDisabled:!CsvType.COUNT_REFURBISHED.isEnabled,series:{index:13,data:null,label:H(13),labelText:CsvType.getName(13),labelDesc:CsvType.getDescription(13),lines:{show:Sa[13]==1||v===!0,steps:!0,lineWidth:C},hoverable:!1,points:{show:!1},color:CsvType.COUNT_REFURBISHED.color,backgroundColor:CsvType.COUNT_REFURBISHED.bg,dashes:{show:!1},yaxis:3,isCurrency:CsvType.COUNT_REFURBISHED.currency}},COUNT_COLLECTIBLE:{index:14, 3989isDisabled:!CsvType.COUNT_COLLECTIBLE.isEnabled,series:{index:14,data:null,label:H(14),labelText:CsvType.getName(14),labelDesc:CsvType.getDescription(14),lines:{show:Sa[14]==1||v===!0,steps:!0,lineWidth:C},hoverable:!1,points:{show:!1},color:CsvType.COUNT_COLLECTIBLE.color,backgroundColor:CsvType.COUNT_COLLECTIBLE.bg,dashes:{show:!1},yaxis:3,isCurrency:CsvType.COUNT_COLLECTIBLE.currency}},EXTRA_INFO_UPDATES:{index:15,isDisabled:!CsvType.EXTRA_INFO_UPDATES.isEnabled,series:{index:15,data:null,label:H(15), 3990labelText:CsvType.getName(15),lines:{show:Sa[15]==1||v===!0,steps:!0,fill:!1,lineWidth:C}
3990,hoverable:!1,color:CsvType.EXTRA_INFO_UPDATES.color,backgroundColor:CsvType.EXTRA_INFO_UPDATES.bg,points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvType.EXTRA_INFO_UPDATES.currency}},RATING:{index:16,isDisabled:!CsvType.RATING.isEnabled,series:{index:16,data:null,label:H(16),labelText:CsvType.getName(16),labelDesc:CsvType.getDescription(16),lines:{show:Sa[16]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1, 3991color:CsvType.RATING.color,backgroundColor:CsvType.RATING.bg,points:{show:!1},dashes:{show:!1},yaxis:6,isCurrency:CsvType.RATING.currency}},COUNT_REVIEWS:{index:17,isDisabled:!CsvType.COUNT_REVIEWS.isEnabled,series:{index:17,data:null,label:H(17),labelText:CsvType.getName(17),labelDesc:CsvType.getDescription(17),lines:{show:Sa[17]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.COUNT_REVIEWS.color,backgroundColor:CsvType.COUNT_REVIEWS.bg,points:{show:!1},dashes:{show:!1},yaxis:5, 3992isCurrency:CsvType.COUNT_REVIEWS.currency}},BUY_BOX_SHIPPING:{index:18,isDisabled:!CsvType.BUY_BOX_SHIPPING.isEnabled,series:{index:18,data:null,label:H(18),labelText:CsvType.getName(18),labelDesc:CsvType.getDescription(18),lines:{show:Sa[18]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.BUY_BOX_SHIPPING.color,backgroundColor:CsvType.BUY_BOX_SHIPPING.bg,points:{show:x,symbol:pointSymbols.diamond,lineWidth:1,radius:A},dashes:{show:!1},yaxis:1,isCurrency:CsvType.BUY_BOX_SHIPPING.currency}}, 3993USED_NEW_SHIPPING:{index:19,isDisabled:!CsvType.USED_NEW_SHIPPING.isEnabled,series:{index:19,data:null,label:H(19),labelText:CsvType.getName(19),labelDesc:CsvType.getDescription(19),lines:{show:Sa[19]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.USED_NEW_SHIPPING.color,backgroundColor:CsvType.USED_NEW_SHIPPING.bg,points:{show:x,lineWidth:1,radius:A},dashes:{show:!1},yaxis:1,isCurrency:CsvType.USED_NEW_SHIPPING.currency}},USED_VERY_GOOD_SHIPPING:{index:20,isDisabled:!CsvType.USED_VERY_GOOD_SHIPPING.isEnabled, 3994series:{index:20,data:null,label:H(20),labelText:CsvType.getName(20),labelDesc:CsvType.getDescription(20),lines:{show:Sa[20]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.USED_VERY_GOOD_SHIPPING.color,backgroundColor:CsvType.USED_VERY_GOOD_SHIPPING.bg,points:{show:x,symbol:pointSymbols.diamond,lineWidth:1,radius:A},dashes:{show:!1},yaxis:1,isCurrency:CsvType.USED_VERY_GOOD_SHIPPING.currency}},USED_GOOD_SHIPPING:{index:21,isDisabled:!CsvType.USED_GOOD_SHIPPING.isEnabled,series:{index:21, 3995data:null,label:H(21),labelText:CsvType.getName(21),labelDesc:CsvType.getDescription(21),lines:{show:Sa[21]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.USED_GOOD_SHIPPING.color,backgroundColor:CsvType.USED_GOOD_SHIPPING.bg,points:{show:x,symbol:pointSymbols.triangle,lineWidth:1,radius:A},dashes:{show:!1},yaxis:1,isCurrency:CsvType.USED_GOOD_SHIPPING.currency}},USED_ACCEPTABLE_SHIPPING:{index:22,isDisabled:!CsvType.USED_ACCEPTABLE_SHIPPING.isEnabled,series:{index:22,data:null, 3996label:H(22),labelText:CsvType.getName(22),labelDesc:CsvType.getDescription(22),lines:{show:Sa[22]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.USED_ACCEPTABLE_SHIPPING.color,backgroundColor:CsvType.USED_ACCEPTABLE_SHIPPING.bg,points:{show:x,symbol:pointSymbols.square,lineWidth:1,radius:A},dashes:{show:!1},yaxis:1,isCurrency:CsvType.USED_ACCEPTABLE_SHIPPING.currency}},COLLECTIBLE_NEW_SHIPPING:{index:23,isDisabled:!CsvType.COLLECTIBLE_NEW_SHIPPING.isEnabled,series:{index:23,data:null, 3997label:H(23),labelText:CsvType.getName(23),labelDesc:CsvType.getDescription(23),lines:{show:Sa[23]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.COLLECTIBLE_NEW_SHIPPING.color,backgroundColor:CsvType.COLLECTIBLE_NEW_SHIPPING.bg,points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvType.COLLECTIBLE_NEW_SHIPPING.currency}},COLLECTIBLE_VERY_GOOD_SHIPPING:{index:24,isDisabled:!CsvType.COLLECTIBLE_VERY_GOOD_SHIPPING.isEnabled,series:{index:24,data:null,label:H(24),labelText:CsvType.getName(24), 3998labelDesc:CsvType.getDescription(24),lines:{show:Sa[24]==1||v===!0,steps:!0,fill:!1,lineWidth:C}
3998,hoverable:!1,color:CsvType.COLLECTIBLE_VERY_GOOD_SHIPPING.color,backgroundColor:CsvType.COLLECTIBLE_VERY_GOOD_SHIPPING.bg,points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvType.COLLECTIBLE_VERY_GOOD_SHIPPING.currency}},COLLECTIBLE_GOOD_SHIPPING:{index:25,isDisabled:!CsvType.COLLECTIBLE_GOOD_SHIPPING.isEnabled,series:{index:25,data:null,label:H(25),labelText:CsvType.getName(25),labelDesc:CsvType.getDescription(25), 3999lines:{show:Sa[25]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.COLLECTIBLE_GOOD_SHIPPING.color,backgroundColor:CsvType.COLLECTIBLE_GOOD_SHIPPING.bg,points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvType.COLLECTIBLE_GOOD_SHIPPING.currency}},COLLECTIBLE_ACCEPTABLE_SHIPPING:{index:26,isDisabled:!CsvType.COLLECTIBLE_ACCEPTABLE_SHIPPING.isEnabled,series:{index:26,data:null,label:H(26),labelText:CsvType.getName(26),labelDesc:CsvType.getDescription(26),lines:{show:Sa[26]==1|| 4000v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.COLLECTIBLE_ACCEPTABLE_SHIPPING.color,backgroundColor:CsvType.COLLECTIBLE_ACCEPTABLE_SHIPPING.bg,points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvType.COLLECTIBLE_ACCEPTABLE_SHIPPING.currency}},REFURBISHED_SHIPPING:{index:27,isDisabled:!CsvType.REFURBISHED_SHIPPING.isEnabled,series:{index:27,data:null,label:H(27),labelText:CsvType.getName(27),labelDesc:CsvType.getDescription(27),lines:{show:Sa[27]==1||v===!0,steps:!0,fill:!1,lineWidth:C}, 4001hoverable:!1,color:CsvType.REFURBISHED_SHIPPING.color,backgroundColor:CsvType.REFURBISHED_SHIPPING.bg,points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvType.REFURBISHED_SHIPPING.currency}},EBAY_NEW_SHIPPING:{index:28,isDisabled:!CsvType.EBAY_NEW_SHIPPING.isEnabled,series:{index:28,data:null,label:H(28),labelText:CsvType.getName(28),labelDesc:CsvType.getDescription(28),lines:{show:Sa[28]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.EBAY_NEW_SHIPPING.color,backgroundColor:CsvType.EBAY_NEW_SHIPPING.bg, 4002points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvType.EBAY_NEW_SHIPPING.currency}},EBAY_USED_SHIPPING:{index:29,isDisabled:!CsvType.EBAY_USED_SHIPPING.isEnabled,series:{index:29,data:null,label:H(29),labelText:CsvType.getName(29),labelDesc:CsvType.getDescription(29),lines:{show:Sa[29]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.EBAY_USED_SHIPPING.color,backgroundColor:CsvType.EBAY_USED_SHIPPING.bg,points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvType.EBAY_USED_SHIPPING.currency}}, 4003BUY_BOX_USED_SHIPPING:{index:32,isDisabled:!CsvType.BUY_BOX_USED_SHIPPING.isEnabled,series:{index:32,data:null,label:H(32),labelText:CsvType.getName(32),labelDesc:CsvType.getDescription(32),lines:{show:Sa[32]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.BUY_BOX_USED_SHIPPING.color,backgroundColor:CsvType.BUY_BOX_USED_SHIPPING.bg,points:{show:x,symbol:pointSymbols.diamond,lineWidth:1,radius:A},dashes:{show:!1},yaxis:1,isCurrency:CsvType.BUY_BOX_USED_SHIPPING.currency}},PRIME_EXCL:{index:33, 4004isDisabled:!CsvType.PRIME_EXCL.isEnabled,series:{index:33,data:null,label:H(33),labelText:CsvType.getName(33),labelDesc:CsvType.getDescription(33),lines:{show:Sa[33]==1||v===!0,steps:!0,fill:!1,lineWidth:C},hoverable:!1,color:CsvType.PRIME_EXCL.color,backgroundColor:CsvType.PRIME_EXCL.bg,points:{show:x,symbol:pointSymbols.nabla,lineWidth:1,radius:A},dashes:{show:!1},yaxis:1,isCurrency:CsvType.PRIME_EXCL.currency}},COUNT_NEW_FBA:{index:34,isDisabled:!CsvType.COUNT_NEW_FBA.isEnabled,series:{index:34, 4005data:null,label:H(34),labelText:CsvType.getName(34),labelDesc:CsvType.getDescription(34),lines:{show:Sa[34]==1||v===!0,steps:!0,lineWidth:C},hoverable:!1,points:{show:!1},color:CsvType.COUNT_NEW_FBA.color,backgroundColor:CsvType.COUNT_NEW_FBA.bg,dashes:{show:!1},yaxis:3,isCurrency:CsvType.COUNT_NEW_FBA.currency}},COUNT_NEW_FBM:{index:35,isDisabled:!CsvType.COUNT_NEW_FBM.isEnabled,series:{index:35,data:null,label:H(35),labelText:CsvType.getName(35),labelDesc:CsvType.getDescription(35),lines:{show:Sa[35]== 40061||v===!0,steps:!0,lineWidth:C},hoverable:!1,points:{show:!1},color:CsvType.COUNT_NEW_FBM.color,backgroundColor:CsvType.COUNT_NEW_FBM.bg,dashes:{show:!1},yaxis:3,isCurrency:CsvType.COUNT_NEW_FBM.currency}}};enableBuyBoxCouponGraph&&(v=Object.keys(x).length,x.BUY_BOX_SHIPPING_COUPON={index:v++,isDisabled:!CsvTypeWithCoupon.BUY_BOX_SHIPPING_COUPON.isEnabled,series:{index:"#Coupon"+CsvTypeWithCoupon.BUY_BOX_SHIPPING_COUPON.index,data:null,label:H("#Coupon"+CsvTypeWithCoupon.BUY_BOX_SHIPPING_COUPON.index), 4007labelText:CsvTypeWithCoupon.getName(CsvTypeWithCoupon.BUY_BOX_SHIPPING_COUPON.index),labelDesc:CsvTypeWithCoupon.getDescription(CsvTypeWithCoupon.BUY_BOX_SHIPPING_COUPON.index),lines:{show:storage.showCouponGraph==="1",steps:!0,fill:!1,lineWidth:C}
4007,hoverable:!1,color:CsvTypeWithCoupon.BUY_BOX_SHIPPING_COUPON.color,backgroundColor:CsvTypeWithCoupon.BUY_BOX_SHIPPING_COUPON.bg,points:{show:!1},dashes:{show:!1},yaxis:1,isCurrency:CsvTypeWithCoupon.BUY_BOX_SHIPPING_COUPON.currency}});return x}function u(){var e= 4008[];for(let x in CsvType)typeof CsvType[x]=="object"&&e.push(CsvType[x].showDefault);return e}function B(e){var x=[];for(let C in e.csv){let A=e.type=="locales"||C.length<3?e.objectType.getObjectName(C):C;enableBuyBoxCouponGraph&&C.length>3&&C.includes("#Coupon")&&(A=CsvTypeWithCoupon.getObjectName(C.replace("#Coupon","")));if(!e.series[A])continue;let H=e.series[A].series;if(e.data[C]==null||e.series[A].isDisabled)H.data=null;else if(H.lines.show||H.dashes.show)if(A==="NEW_FBM_SHIPPING"||A==="NEW_FBA"){var v= 4009[];let Z=[],ca=null;for(let K=0;K<e.data[C].length;K++){let F=e.data[C][K];F==null?(v.push(F),Z.push(F),ca=null):(F[0]>changeFBAEpoch?(Z.length===0&&ca!=null&&Z.push(ca),Z.push(F)):v.push(F),ca=F)}H.data=v;H.tooltipData=e.data[C];x.push(H);Z.length>0&&(v=Object.assign({},H),v.points=Object.assign({},H.points,{show:!0,symbolSpacing:15,symbol:A==="NEW_FBA"?pointSymbols.triangle:pointSymbols.square}),v.label=null,v.data=Z,v.isSplitLine=!0,x.push(v))}else H.data=e.data[C],H.tooltipData=null,x.push(H); 4010else H.data=[null,null],x.push(H)}return x}function t(e){var x=[];e.axes.y.forEach(function(Z){Z.min=e.parameter.scale?0:null});for(var v in e.csv){var C=enableBuyBoxCouponGraph&&e.graphIndex==0&&typeof v==="string"&&v.includes("#Coupon"),A=!isNaN(v-parseFloat(v));if(e.graphIndex!=2&&!A&&!C)continue;A=e.objectType.getObjectName(v);C&&(A=CsvTypeWithCoupon.getObjectName(v.replace("#Coupon","")));if(typeof A=="undefined")break;if(typeof e.series[A]=="undefined")continue;C=e.series[A].series;if(e.graphIndex=== 40110){if(C.yaxis===3||C.yaxis===6)continue}else if(e.graphIndex===1&&C.yaxis<3)continue;e.graphIndex!=1&&C.yaxis!=6&&e.graphIndex!=2&&C.yaxis>4||(e.graphIndex==2?x[C.yaxis]=e.axes.y[C.yaxis-1].show:e.series[A].isDisabled||C.lines.show==0?x[C.yaxis]!=1&&(x[C.yaxis]=!1):x[C.yaxis]=!0)}if(e.plot)for(let Z in x){v=x[Z];var H=e.plot.getYAxes()[Z-1];e.graphIndex==2?H.options.color=v?"#444":"#fff":(H.options.show=v,H.show=v)}else for(H in x)e.axes.y[H-1].show=x[H]}function G(e,x){if(!keepaApp&&e.syncedGraphs&& 4012!(e.syncedGraphs.length<=1)){var v=e.syncedGraphs.filter(H=>H&&H.plot);if(!(v.length<=1)){var C=e=0;for(var A of v){let H=A.plot.getNaturalPlotOffset();H.left>e&&(e=H.left);H.right>C&&(C=H.right)}for(let H of v){A=H.plot.getOptions().grid;if(v=A.tickColor!=="#fff")A.tickColor="#fff";if(H.plot.setGutter(e,C)||v||x)H.plot.setupGrid(!0),H.plot.draw()}}}}function da(e,x,v){e.$container?.addEventListener(x,v,{signal:e.listeners?.signal,passive:!1})}function Y(e,x,v,C){var A={signal:e.listeners?.signal}, 4013H=v.split(" ");x?.forEach(Z=>H.forEach(ca=>Z.addEventListener(ca,C,A)))}function X(e){e.listeners?.abort();e.listeners=new AbortController;try{Pa(e);if(e.graphIndex==2)e.objectType=k(e.salesRanks,e.salesRankCategories,e.salesRankCategoryTrees,e.monthlySoldHistory),e.series=f(e.salesRanks,e.salesRankCategories,e.salesRankCategoryTrees,e.salesRankReference,e.salesRankReferenceHistory,e.monthlySoldHistory);else if(enableCouponGraph&&e.graphIndex==3)e.objectType=q(e.couponHistories),e.series=n(e.couponHistories); 4014else{for(let A in e.series){let H=e.series[A].index;e.csv[H]!==null&&e.series[A].series.lines.show===!0&&graphIsRestricted(e.domainId,H)&&(e.series[A].series.lines.show=!1)}if(e.buyBoxSellerIdHistory!=null){let A=e.series[CsvType.getObjectName(CsvType.BUY_BOX_SHIPPING.index)].series;A.buyBoxSellerIdHistory=e.buyBoxSellerIdHistory;A.offers=e.offers;A.bbHistory=e.bbHistory}if(e.offers!=null){let A=CsvType.getObjectName(CsvType.NEW_FBA.index);e.series[A]&&(e.series[A].series.offers=e.offers);let H=CsvType.getObjectName(CsvType.NEW_FBM_SHIPPING.index); 4015e.series[H]&&(e.series[H].series.offers=e.offers)}e.currencySymbol=getCurrencyByDomain(e.domainId);Ga(e)}e.parameter.width.replace("px","")<600&&(e.axes.x[0].labelAngle=30);e.axes.x[0].max=e.internal.time;e.axes.y[1].transform=e.parameter.salesRankInverse===0?null:function(A){return-A};e.axes.y[1].inverseTransform=e.parameter.salesRankInverse===0?null:function(A){return-A};e.data.length===0&&Ba(e);var x=e.parameter.interval==-1?99999999:e.parameter.interval;let C=e.parameter.forceInterval?x:Math.min(fa(e, 4016!1),x);e.axes.x[0].min=e.internal.time-C*60*60*1E3;if((e.graphIndex==1||e.graphIndex==2)&&e.syncedGraphs.length>0){let A=e.axes.x[0].min;for(x=0;x<e.syncedGraphs.length;x++)A=Math.min(e.syncedGraphs[x].axes.x[0].min,A);e.axes.x[0].min=A}Math.abs(e.axes.x[0].min-e.axes.x[0].max)<361E4&&(e.axes.x[0].min=e.axes.x[0].max-36E5*fa(e,!0));DomUtil.setStyles(e.$container,{width:e.parameter.width,height:e.parameter.height});typeof e.showLegend==="undefined"&&(e.showLegend=!0);var v=B(e);t(e);e.plot=Flot.plot(e.$container, 4017v,{xaxes:e.axes.x,yaxes:e.axes.y,series:{shadowSize:0},graphSeries:e.series,currency:getCurrencyByDomain(e.domainId),domain:e.domainId,timeShiftOffset:keepaTime.timeShiftOffset,grid:e.grid,legend:{show:e.showLegend,noLegend:e.showOnlyTracked,position:"nw"},selection:{mode:"x",color:"#777"},hooks:{bindEvents:function(A,H){H.addEventListener("mousemove",function(Z){e.syncedGraphs.length>0&&!Z._kaSync&&b(e,"mousemove",Z.clientX,Z.clientY)});H.addEventListener("touchmove",function(Z){Z.touches.length> 40181||!(e.syncedGraphs.length>0)||Z._kaSync||(Z=Z.touches[0],b(e,"mousemove",Z.clientX,Z.clientY))})}},graphIndex:e.graphIndex,showOnlyTracked:e.showOnlyTracked,isInGrid:e.isInGrid});e.grid.show&&e.plot.hooks.draw.push(c);if(!e.isOnTrackingPage&&["priceTypes","subRanks"].includes(e.type)){let A="noGraphsMsg_"+(e.uniqueId||Date.now());e.$container.querySelector("#"+A)||e.$container.insertAdjacentHTML("beforeend",`<div id="${A}" class="no-graphs-message-overlay"><p class="mdc-typography--caption">${la._1566}</p></div>`); 4019e.$noGraphsOverlay=e.$container.querySelector("#"+A);e.internal.needsNoGraphMessageCheck=!0;e.plot.hooks.draw.push(function(H){if(e&&e.internal&&e.internal.needsNoGraphMessageCheck){var Z=!1;if(e&&e.series)for(var ca in e.series){if(ca.startsWith(desiredSeriesPrefix))continue;let K=e.series[ca];if(K&&K.series&&K.series.lines&&!K.isDisabled&&K.series.lines.show&&(e.type!=="priceTypes"||e.data[K.index]!=null)){Z=!0;break}}if(ca=e.$noGraphsOverlay)Z?DomUtil.hide(ca):(Z=H.width(),H=H.height(),Z<=0||H<= 40200?DomUtil.hide(ca):DomUtil.setStyles(ca,{display:"flex"}));e.internal.needsNoGraphMessageCheck=!1}})}e.syncedGraphs.length>0&&(e.plot.getOptions().$isSyncedWith=e.syncedGraphs);(v=typeof isSnapshotPage!="undefined")?ha(e,!0,!0):(D(e),W(e));if(!(e.graphIndex!=0&&e.graphIndex!=2||v||keepaApp)){let A=float2int(DomUtil.height(e.$container)),H=float2int(DomUtil.height(e.$container.querySelector(".legend > table"))),Z=Math.max(A,H);Z>A&&(DomUtil.setHeight(e.$container,Z),e.parameter.height=Z+"px",e.plot.resize(),
4021e.plot.setupGrid(!0),e.plot.draw())}if(!v){da(e,"plotselected",function(A){if((A=A.detail.ranges)&&A.xaxis){var H=e.plot.getXAxes()[0].options;wa(e,H.min,H.max,A.xaxis.from,A.xaxis.to)}});da(e,"plotunselected",function(A){if(A=document.getElementById("selection"))A.textContent=""});da(e,"dblclick",function(A){A=e.internal.time;var H=e.plot.getXAxes()[0].options;wa(e,H.min,H.max,A-e.parameter.interval*6E4*60,A)});if(isMobile){let A=Date.now(),H=A,Z=A,ca=e.plot.getPlotOffset(),K=(z,g)=>{if(z=z.touches[g]){try{var m= 4022z.pageX;var w=z.pageY}catch(I){return}z=e.$container.getBoundingClientRect();return e.plot.c2p({left:m-(z.left+window.pageXOffset)-ca.left,top:w-(z.top+window.pageYOffset)-ca.top}).x}},F=e.plot.getXAxes();da(e,"touchmove",function(z){if(z.touches.length>1){z.preventDefault();let w=F[0].options;var g=K(z,0),m=K(z,1);g!==void 0&&m!==void 0&&(z=Math.abs(g-m)-Z,m=(A+H)/2-(g+m)/2,g=Math.max(F[0].datamin,w.min+m+z),z=Math.min(Date.now(),w.max+m-z),wa(e,w.min,w.max,g,z))}});da(e,"touchstart",function(z){if(z.touches.length> 40231){z.preventDefault();if(e.syncedGraphs.length>0){var g=z.touches[0];try{g&&b(e,"mouseout",g.clientX,g.clientY)}catch(m){}}g=K(z,0);z=K(z,1);g!==void 0&&z!==void 0&&(A=g,H=z,Z=Math.abs(A-H))}});da(e,"touchend",function(z){})}keepaApp||da(e,"plotclick",function(A){var H=A.detail.pos;A=(A=A.detail.items)?Array.isArray(A)?A:[A]:[];if(A.length===0&&e.offers!=null){var Z=e.plot.getData();for(var ca=0;ca<Z.length;ca++){var K=Z[ca];if(K.isSplitLine)continue;var F=CsvType.getObject(K.index);if(!F||!F.isOfferData)continue; 4024F=K.tooltipData||K.data;if(!K.lines.show&&!K.dashes.show&&!K.points.show||!F||F.length==null)continue;var z=void 0;for(z=0;z<F.length&&!(F[z]!=null&&F[z][0]>H.x);z++);if(F[z-1]==null){var g=F[z-2],m=F[z];g==null&&z==F.length&&(z--,g=F[z-2]);g=g==null?0:g[0];m=m==null?9999999999999:m[0];let na=Math.abs(H.x-g);g=Math.abs(H.x-g);m=Math.abs(H.x-m);g>=m?na=m:(na=g,z-=2);if(na/(K.xaxis.max-K.xaxis.min)>(e.graphIndex==5?.025:.003))continue}m=F[z-1];z=F[z];if(m==null){if(!z)continue;F=z[1];z=z[0]}else F= 4025m[1],z=m[0];F!=null&&F!=="u"&&(m=K.yaxis.max,g=K.yaxis.min,K.index!=CsvType.SALES.index&&K.yaxis.n!=2||storage.salesRankInverse!="1"||(m=K.yaxis.min,g=K.yaxis.max),g=m-g,Math.abs(1-(m-F)/g-(1-(m-H.y)/g))<.02&&A.push({series:K,datapoint:[z,F],seriesIndex:K.index}))}}if(A.length>0&&e.offers!=null){H=[];for(var w in A){F=A[w];ca=e.csv[F.series.index];Z=CsvType.getObject(F.series.index);if(!Z.isOfferData)continue;var I=keepaTime.epochToMinutes(F.datapoint[0])-keepaTime.timeShiftOffset;K=Number(F.datapoint[1].toFixed(2).replace(/,|\./g, 4026""));e.domainId==5&&(K/=100);if(F.series.index!=CsvType.BUY_BOX_SHIPPING.index)for(z=Z.isWithShipping?3:2,F=0;F<ca.length;F+=z)if(ca[F]==I){if(F==0)break;for(m=!1;(ca[F-z+1]==-1||ca[F-z+1]==ca[F+1]&&(!Z.isWithShipping||ca[F-z+2]==ca[F+2]))&&F!=0;)m=ca[F-z+1]!=-1,F-=z;m&&(I=ca[F]);break}if(ca=findOffer(e.offers,e.buyBoxSellerIdHistory,I,K,null,Z,null,e.buyBoxUsedHistory)){Z.index==CsvType.BUY_BOX_SHIPPING.index&&ca.length>1&&ca.some(na=>na.isFBA===!0)&&(ca=ca.filter(na=>na.isFBA!==!1));for(var S in ca)K= 4027ca[S],K.item.type||(K.item.type=[]),K.item.type[Z.index]=Z,K&&(H[K.offerId]=K)}}if(H.length>0){let na=!hasDataAccessSubscription,U,L;try{var ma=e.buyBoxSellerIdHistory||[],Q=e.csv[CsvType.BUY_BOX_SHIPPING.index]||[],l=e.csv[CsvType.COUNT_NEW.index]||[],M=e.csv[CsvType.COUNT_USED.index]||[];U=getWeightedMeanSellerInInterval(ma,Q,l,M,30,!1);L=getWeightedMeanSellerInInterval(ma,Q,l,M,30,!0)}catch(Ea){}S=w="";let ra=[];typeof e.sellerObjects!="object"&&(e.sellerObjects={});for(let Ea in H){let oa=H[Ea]; 4028w!=""&&(w+="<hr>");oa.conditionComment||(oa.conditionComment=la._552);ma="";for(let Ja in oa.item.type)Q=oa.item.type[Ja],ma=ma==""?CsvType.getName(Q.index):ma+(" "+CsvType.getName(Q.index));disableStockFeatures!==!0&&disableSoldNumbers!==!0&&(oa.sold=getAggregatedDrop(oa.stockCSV,0,800),oa.sold30Day=getAggregatedDrop(oa.stockCSV,keepaTime.now()-43200,800));Q="";if(oa.item.type[CsvType.WAREHOUSE.index]||oa.item.type[CsvType.BUY_BOX_USED_SHIPPING.index])Q='<div style="max-width:550px;"><span><span style="color:#5983ff">'+ 4029la._553+":</span> "+ConditionType.getName(oa.condition)+"</span></div>";getTldByDomain(e.domainId);M=SellerUtil.getLabel(oa.sellerId,e.domainId);l=na?'<span style="color: #666;"><i class="fa fa-lock"></i></span>':SellerUtil.getHtml(oa.sellerId,e.domainId,M);l=oa.isWarehouseDeal?"":'<div style="max-width:550px;"><span><span style="color:#5983ff">'+la._554+`:</span> <span id="${oa.sellerId}">${l}</span></span></div>`;(A=oa.condition===ConditionType.NEW?U:L)&&A[oa.sellerId]&&(A=A[oa.sellerId].pct< 40301?"<1%":parseInt(Math.round(A[oa.sellerId].pct))+"%",l+=`<div style="max-width:550px;"><span><span style="color:#5983ff">${la._1518}</span> <span>${A}</span></span></div>`);keepaApp&&(l=oa.isWarehouseDeal?"":'<div style="max-width:550px;"><span><span style="color:#5983ff">'+la._554+`:</span> <span id="${oa.sellerId}"><a target="_blank">${M}</a></span></span></div>`);M=oa.isPrime?'<span style="color:#2692c2;font-style: italic;"> Prime</span>':"";
4030A=Money.format(oa.item.price,{sourceDomainId:e.domainId, 4031targetDomainId:e.domainId})+(oa.item.shipping>0?" + "+Money.format(oa.item.shipping,{sourceDomainId:e.domainId,targetDomainId:e.domainId}):"");showReferencePrice(e.domainId)?A=Money.format(oa.item.price,{sourceDomainId:e.domainId})+(oa.item.shipping>0?" + "+Money.format(oa.item.shipping,{sourceDomainId:e.domainId})+" "+la._541:"")+` <span class="price__reference">(${A})</span>`:oa.item.shipping>0&&(A+=" "+la._541);Z="";typeof oa.item.type[CsvType.PRIME_EXCL.index]==="undefined"&&oa.isPrimeExcl&&(Z= 4032" ("+la._631+" "+Money.format(oa.primeExclCSV[oa.primeExclCSV.length-1],{sourceDomainId:e.domainId,targetDomainId:e.domainId})+") ");ca="";typeof oa.coupon!=="undefined"&&oa.coupon!=0&&(ca=" (🔖 "+(oa.coupon<0?Math.abs(oa.coupon)+"%":""+Money.format(oa.coupon,{sourceDomainId:e.domainId,targetDomainId:e.domainId}))+" Coupon) ");na&&(A='<span style="color: #666;"><i class="fa fa-lock"></i></span>',ca=Z=M="");K=(new Date(keepaTime.minutesToEpoch(oa.offerCSV[0]))).formatDate("M j Y, G:i"); 4033F=(new Date(keepaTime.minutesToEpoch(oa.lastSeen))).formatDate("M j Y, G:i");K=`<div class="flex"> 4034 <div style="width:220px;"><div style="max-width:550px;"><span><span style="color:#5983ff">${la._636}:</span> ${K}</span></div></div> 4035 <div style="width:220px;"><div style="max-width:550px;"><span><span style="color:#5983ff">${la._635}:</span> ${F}</span></div></div> 4036 </div>`;F=z="";disableStockFeatures!==!0&&(z=isStockMax(oa.item.stock,oa.stockLimit),z=na?'<span style="color: #666;"><i class="fa fa-lock"></i></span>':oa.item.stock<=0?"?":(z?">":"")+oa.item.stock+' <span style="color:#8d8d8d">('+(new Date(keepaTime.minutesToEpoch(I))).formatDate("M j Y, G:i")+")</span>",z='<div><div style="max-width:550px;"><span><span style="color:#5983ff">'+la._556+":</span> "+z+'</span></div><div style="margin: 10px 20px;" id="offerstockGraph'+oa.offerId+ 4037'"></div></div>',disableSoldNumbers!==!0&&(F=`<div style="max-width:550px;"><span><span style="color:#5983ff">${la._1517}</span> ${na?'<span style="color: #666;"><i class="fa fa-lock"></i></span>':(oa.sold30Day<=0?"?":oa.sold30Day)+` <span style="color:#8d8d8d">(${la._1516} ${oa.sold<=0?"?":oa.sold})</span>`}</span></div>`));w+='<div><div style="max-width:550px;"><span><span style="color:#5983ff">'+la._551+":</span> "+(new Date(oa.item.time)).formatDate("M j Y, G:i")+"</span></div>"+ 4038K+'<div style="max-width:550px;"><span><span style="color:#5983ff">'+la._555+":</span> "+ma+"</span></div>"+Q+'<div class="flex"><div><div style="max-width:550px;"><span><span style="color:#5983ff">'+la._488+":</span> "+A+M+Z+ca+'</span></div><div style="margin: 10px 20px;" id="offerpriceGraph'+oa.offerId+'"></div></div>'+z+"</div>"+F+l+'<div style="max-width:550px;"><span><span style="color:#5983ff">'+la._557+":</span> "+oa.conditionComment+"</span></div>"+(na?`<hr class="-pro" /><span style="color:#666;display:inline-block;font-size:11px;padding:5px 0px;"><i class="fa fa-lock"></i> = ${la._996}</span>`: 4039"")+"</div>";oa.isWarehouseDeal||(ra.push(oa.sellerId),e.sellerObjects&&e.sellerObjects[oa.sellerId]||(S=S==""?oa.sellerId:S+(","+oa.sellerId)));oa.item.type=null;setTimeout(()=>{if(hasDataAccessSubscription){var Ja=Ha=>{var ya=document.createElement("div");ya.id=oa.offerId;var za=document.createElement("div");za.style.visibility="hidden";za.appendChild(ya);document.body.appendChild(za);oa.updateCSV=e.csv[CsvType.EXTRA_INFO_UPDATES.index];oa.domainId=e.domainId;na&&(oa.offerCSV=[],oa.stockCSV=[]); 4040graph.insertOfferGraph(oa,oa.offerId,ya,Ha,!1);za.remove();document.getElementById("offer"+Ha+"Graph"+oa.offerId)?.appendChild(ya)};disableStockFeatures!==!0&&Ja("stock");Ja("price")}},0)}hasDataAccessSubscription||(w=`<div class="my-4 font-medium italic text-data-primary">${LangUtil.fill(la._744,{promoPriceProMonth:SettingsSubscription.PROMO_PRICE_PRO_MONTH})}</div>`);showPopup(la._550,w,!0);function Da(){for(let Ea in ra){let oa=ra[Ea],Ja=e.sellerObjects[oa];Ja&&document.querySelectorAll('[id="'+ 4041oa+'"] a[href*="#!seller"]').forEach(function(Ha){Ha.textContent=Ja.name??Ja.sellerId;if(Ja.ratingCount>0&&!Ha.parentElement?.querySelector(":scope > span")){var ya=Ja.rating?` <span style="color:#AA5D5D">${la._440}:</span> ${Ja.rating}%`:"";Ha.parentElement?.insertAdjacentHTML("beforeend","<span>"+ya+' <span style="color:#AA5D5D">'+la._533+": </span>"+Ja.ratingCount+"</span>")}})}}S!=""?network.request({path:"seller/name",domainId:e.domainId,seller:S,graphOnly:!0}).done(function(Ea){Ea= 4042Ea.merchantNames;for(let oa in Ea)e.sellerObjects[oa]=Ea[oa];Da()}).fail(function(){Da()}):Da()}}})}Ra[e.domainId+e.asin+e.graphIndex+e.isOnTrackingPage]=e;e.$container.dataset.domainId=e.domainId;e.$container.dataset.asin=e.asin;e.$container.dataset.index=e.graphIndex;v||(Ya(e),ha(e,!0,!0));e.parentWidthCache=e.$container.parentElement?parseFloat(getComputedStyle(e.$container.parentElement).width)||0:0}catch(C){console.log(C)}}function P(e){return e.graphIndex!=0?!0:e.csv[CsvType.SALES.index]==null|| 4043e.csv[CsvType.SALES.index].length==2&&e.csv[CsvType.SALES.index][1]==-2?!1:e.csv[CsvType.SALES.index].length>2?!0:!(typeof e.salesRankCategoryTrees=="undefined"||Object.keys(e.salesRankCategoryTrees).length===0&&e.salesRankCategoryTrees.constructor===Object)}function ka(e){if(!e.isOnTrackingPage&&!keepaApp&&e.type!="locales"&&(e.graphIndex==0&&storage.showSalesRankGraph=="1"&&P(e)||storage.moreData=="1"&&(e.graphIndex==0||e.graphIndex==2||e.graphIndex==3)))return"<tr><td><table></table></td></tr>";
4044var x='<tr style="border-top: 4px solid white;"><td class="legendIcon" style="vertical-align: initial;"><i style="font-size: 14px;" class="fa fa-calendar"></i></td><td class="legendLabel" style="vertical-align: top; line-height: 14px;"><table>',v=fa(e,!1);if(e.syncedGraphs.length>0)for(var C=0;C<e.syncedGraphs.length;C++){var A=e.syncedGraphs[C];if(A.graphIndex==e.graphIndex)continue;A=fa(A,!1);v=Math.max(v,A)}C=0;A=Date.now();for(K in e.csv){var H=e.objectType.getObjectName(K);if(typeof H==="undefined"|| 4045typeof e.series[H]==="undefined")continue;if(e.series[H].isDisabled||!e.series[H].series.lines.show)continue;var Z=e.csv[K];if(Z==null)continue;H=e.objectType[H].isWithShipping?3:2;for(var ca=Z.length-H;ca>0;ca-=H)if(Z[ca]!=""&&Z[ca]!=-1){C<Z[ca]&&(C=Number(Z[ca]));break}}C==0&&(C=-(A/precisionDevisor).toFixed(0));var K=Number(((A/36E5).toFixed(0)-offsetHours-C/60).toFixed(0));var F=e.parameter.interval==24?" active":"",z=e.parameter.interval==168?" active":"",g=e.parameter.interval==744?" active": 4046"",m=e.parameter.interval==2160?" active":"",w=e.parameter.interval==8760?" active":"";H=Math.abs(e.parameter.interval-v)<2?" active":"";ca=e.showOnlyTracked?"":"<td></td>";C="";A=storage.s_range?Number(storage.s_range):-1;(Z=A!=24&&A!=168&&A!=744&&A!=2160&&A!=8760&&A!=-1)&&(C="<tr>"+ca+'<td class="legendRange'+(e.parameter.interval==A?" active":"")+'" range="'+A+'">'+A/24+" "+la._143+"</td></tr>");e="<tr>"+ca+'<td class="legendRange'+F+'" range="24">'+la._136+"</td></tr>";z="<tr>"+ca+'<td class="legendRange'+ 4047z+'" range="168">'+la._137+"</td></tr>";g="<tr>"+ca+'<td class="legendRange'+g+'" range="744">'+la._139+"</td></tr>";m="<tr>"+ca+'<td class="legendRange'+m+'" range="2160">'+la._140+"</td></tr>";w="<tr>"+ca+'<td class="legendRange'+w+'" range="8760">'+la._141+"</td></tr>";F=Math.floor(v/24);H=F==0?"":"<tr>"+ca+'<td class="legendRange'+H+'" range="'+v+'">'+la._142+" ("+F+" "+la._143+")</td></tr>";!Z&&v>24&&K<24&&(x+=e);Z&&A<168&&A>24&&(x+=C);v>168&&K<168&&(x+=z);Z&&A<744&&A>168&&(x+=C);v>744&&K<744&& 4048(x+=g);Z&&A<2160&&A>744&&(x+=C);v>2160&&K<2160&&(x+=m);Z&&A<8760&&A>2160&&(x+=C);v>8760&&K<8760&&(x+=w);Z&&A>8760&&v>A&&K<A&&(x+=C);x=x+H+"</table></td></tr>";return keepaApp?(replaceHtml("legendInterval",x),""):x}function D(e){var x=storage.extremeFilter==1?"∸":"−",v=e.parameter.extreme==1?' <i class="fa fa-toggle-off"></i>':' <i class="fa fa-toggle-on"></i>
4048',C=e.internal.filteredExtremes?'<tr border-top: 4px solid white; class="legendFilter" ><td class="legendIcon">'+x+'</td><td class="legendLabel">'+ 4049la._164+" "+v+"</td></tr>":"";x=(e.showOnlyTracked?"":'<tr style="line-height: 12px;"><td> </td></tr>')+'<tr class="legendScale"><td class="legendIcon"><i style="font-size: 14px;" class="fa fa-search"></i></td><td class="legendLabel"><span><span '+(e.showOnlyTracked?'title="'+la._144+'"':"")+">"+(e.showOnlyTracked?"":la._144)+(e.parameter.scale==1?' <i class="fa fa-toggle-off"></i>':' <i class="fa fa-toggle-on"></i>')+"</span>"+(e.showOnlyTracked&&e.internal.filteredExtremes?' <span title="'+ 4050la._164+'">'+x+" "+v:"")+"</span></span></td></tr>"+(e.showOnlyTracked?"":C)+ka(e);e.$container.querySelector(".legend table")?.insertAdjacentHTML("beforeend",x)}function W(e){Y(e,e.$container.querySelectorAll(".legendScale"),"click dblclick",function(v){e.parameter.scale=e.parameter.scale===1?0:1;storage.graphScale=e.parameter.scale;settings.send();var C=this.querySelector(".legendLabel");C&&(C.innerHTML=(e.showOnlyTracked?"":la._144)+(e.parameter.scale==1?' <i class="fa fa-toggle-off"></i>': 4051' <i class="fa fa-toggle-on"></i>'));e.plot.getYAxes().forEach(function(A){A.options.min=e.parameter.scale?0:null});ha(e,!0,!0);v.preventDefault();v.stopPropagation()});Y(e,e.$container.querySelectorAll(".legendFilter"),"click dblclick",function(v){e.parameter.extreme=e.parameter.extreme===1?0:1;storage.extremeFilter=e.parameter.extreme;var C=storage.extremeFilter==1?"∸":"−";settings.send();var A=this.querySelector(".legendLabel");A&&(A.innerHTML=(e.showOnlyTracked?"":la._164)+" "+ 4052(e.parameter.extreme==1?' <i class="fa fa-toggle-off"></i>':' <i class="fa fa-toggle-on"></i>'));if(A=this.querySelector(".legendIcon"))A.innerHTML=C;Ba(e);e.plot.setData(B(e));ha(e,!0,!0);v.preventDefault();v.stopPropagation()});Y(e,e.$container.querySelectorAll(".salesRankInverse"),"click dblclick",function(v){var C=e.parameter.salesRankInverse=e.parameter.salesRankInverse===1?0:1;storage.salesRankInverse=e.parameter.salesRankInverse;var A=["fa-sort-numeric-asc","fa-sort-numeric-desc"]; 4053e.$container.querySelectorAll(".salesRankInverse > i").forEach(Z=>{Z.classList.remove(A[C==1?1:0]);Z.classList.add(A[C==1?0:1])});settings.send();var H=e.plot.getYAxes()[1].options;H.transform=e.parameter.salesRankInverse===0?null:function(Z){return-Z};H.inverseTransform=e.parameter.salesRankInverse===0?null:function(Z){return-Z};ha(e,!0,!0);v.preventDefault();v.stopPropagation()});e.isOnTrackingPage===!0&&(e.$container.querySelectorAll(".toggleSalesRankGraph").forEach(v=>v.remove()),e.$container.querySelectorAll("#toggleCouponGraph").forEach(v=> 4054v.remove()));var x=e.$container.querySelectorAll(".toggleSalesRankGraph");keepaApp&&x.forEach(v=>v.remove());Y(e,x,"click dblclick",function(v){storage.showSalesRankGraph==="1"?(storage.showSalesRankGraph="0",settings.send(),hideSalesRankGraph(e.domainId,e.asin),x.forEach(C=>DomUtil.setStyles(C,{color:"#666"})),document.getElementById("graphControlSubRanks")?.removeAttribute("checked")):(storage.showSalesRankGraph="1",settings.send(),showSalesRankGraph(e.p,e.domainId,e.syncedGraphs),x.forEach(C=> 4055DomUtil.setStyles(C,{color:"#8FBC8F"})),document.getElementById("graphControlSubRanks")?.setAttribute("checked",!0));v.preventDefault();v.stopPropagation()});e.$container.querySelectorAll(".legendLabel").forEach(function(v){if(v.previousElementSibling?.id!="subRankToggle"&&v.previousElementSibling?.className=="legendColorBox"){Y(e,[v.parentElement],"click dblclick",function(A){for(var H=A.target;H;){if(H.id==="subRankToggle"){let K=storage.subRanksHide!=="1";storage.subRanksHide=K?"1":"0";settings.send(); 4056e.$container.querySelectorAll(".legendLabel").forEach(function(F){var z=DomUtil.data(F,"type");typeof z!="undefined"&&z!=="#monthlySold"&&ia(e,F.parentElement,z,K,!0)});break}let Z=this.querySelector(":scope > .legendLabel"),ca=e.objectType.getObjectName(DomUtil.data(Z,"type"));enableCouponGraph&&e.type=="couponHistory"&&(ca=DomUtil.data(Z,"type"));if(H===this){ia(e,this,ca);break}H=H.parentNode}A.preventDefault();A.stopPropagation()});let C=e.objectType.getObjectName(DomUtil.data(v,"type"));enableCouponGraph&& 4057e.type=="couponHistory"&&(C=DomUtil.data(v,"type"));Y(e,[v.parentElement],"mouseenter",function(){Ia(e,C,!0)});Y(e,[v.parentElement],"mouseleave",function(){Ia(e,C,!1)})}});N(e)}function N(e){if(e.isOnTrackingPage||keepaApp||!(e.graphIndex==0&&storage.showSalesRankGraph=="1"&&P(e)||storage.moreData=="1"&&(e.graphIndex==0||e.graphIndex==2))){var x=()=>keepaApp?document.querySelectorAll("#legendInterval .legendRange"):e.$container.querySelectorAll(".legendRange");
4057Y(e,x(),"click",function(v){var C=e.plot.getXAxes()[0].options, 4058A=Math.round(Number(this.getAttribute("range")));e.parameter.interval=A;x().forEach(Z=>Z.classList.remove("active"));this.classList.add("active");for(var H=0;H<e.syncedGraphs.length;H++)e.syncedGraphs[H].$container.querySelectorAll(".legendRange").forEach(Z=>Z.classList.remove("active")),e.syncedGraphs[H].$container.querySelectorAll('.legendRange[range="'+A+'"]').forEach(Z=>Z.classList.add("active")),e.syncedGraphs[H].parameter.interval=A;H=e.internal.time;wa(e,C.min,C.max,H-A*60*60*1E3,H);v.preventDefault(); 4059v.stopPropagation()});if(!e.showOnlyTracked){let v=e.$container.querySelector(".legendLabel td");v&&(v.textContent=la._135,DomUtil.setStyles(v,{"padding-right":"7px",width:"45px"}))}}}function ha(e,x,v,C){var A=e.internal.time,H=fa(e,!1);A-=Math.min(H,e.parameter.interval)*60*60*1E3;var Z=e.plot.getXAxes()[0];H=Z.options.min;Z=Z.options.max;t(e);var ca=e.$container.querySelectorAll(".legend table");(ca=ca[ca.length-1]?.parentElement?.parentElement)&&ca.id!=e.$container.id&&replaceElement(ca,"tr",
4060ka(e),"border-top: 4px solid white;");N(e);x?wa(e,H,Z,v?H:A,Z,C):(Math.abs(A-Z)<361E4&&(A=Z-36E5*fa(e,!0)),e.plot.getXAxes()[0].options.min=Math.round(v?H:A),e.plot.getXAxes()[0].options.max=Math.round(Z),e.plot.setupGrid(!0),e.plot.draw(),e.plot.clearSelection(),Ya(e))}function V(e,x){var v=e.length;if(v<40)return 0;for(var C=v-1;C>=0&&e[C]==null;)C--;if(C>=0&&e[C][0]<=x)return Math.max(C-1,0);for(v=0;v<=C;){let A=v+C>>>1,H=A;for(;H>=v&&e[H]==null;)H--;if(H<v){v=A+1;continue}let Z=e[H][0];if(Z<x)v= 4061A+1;else if(Z>x)C=H-1;else return Math.max(H-1,0)}return Math.max(v-2,0)}function O(e,x,v,C){var A=Number.MAX_VALUE,H=-Number.MAX_VALUE,Z=e.plot.getData();for(var ca in Z){var K=Z[ca];if(K.yaxis.n!=x.n||!K.lines.show&&!K.dashes.show)continue;if(K.Yignore)continue;for(var F=!0,z=V(K.data,v);z<K.data.length;z++){let g=K.data[z];if(g!=null&&!(g[0]<v)){if(g[0]>C){F&&z>0&&(K=K.data[z-1],K!=null&&(K[1]>H&&(H=Number(K[1])),K[1]<A&&(A=Number(K[1]))));break}if(F&&(F=!1,z>0)){let m=K.data[z-1];m!=null&&(m[1]> 4062H&&(H=Number(m[1])),m[1]<A&&(A=Number(m[1])))}g[1]>H&&(H=Number(g[1]));g[1]<A&&(A=Number(g[1]))}}}v=x.datamin;C=x.datamax;Z=x.options.min;ca=x.options.max;K=x.min;F=x.max;x.datamin=A;x.options.min=x.options.min===0&&e.parameter.scale?0:null;x.min=null;x.datamax=H;x.options.max=null;x.max=null;if(e.graphIndex===2||x.show||x.options.reserveSpace)e.plot.setRange(x),e.plot.setupTickGeneration(x),e.plot.setTicks(x),e.plot.snapRangeToTicks(x,x.ticks);e=x.min;z=x.max;x.datamin=v;x.options.min=Z;x.min=K; 4063x.datamax=C;x.options.max=ca;x.max=F;H===Number.MIN_VALUE&&(H=z!==void 0?z:100);H===-Number.MAX_VALUE&&(A=e!==void 0?e:0);Math.abs(z)>1E100&&(H=z=100);Math.abs(e)>1E100&&(A=e=0);return{datamin:A,datamax:H,ymin:e,ymax:z}}function wa(e,x,v,C,A,H){e.animationCount||(e.animationCount=1);var Z=!H&&e.syncedGraphs.length>0?e.syncedGraphs.slice():[e],ca=[],K=[],F=C-x,z=A-v;for(let g=0;g<Z.length;g++){let m=Z[g],w=m.plot.getYAxes(),I=[],S=[];m.plot.getXAxes()[0].options.min=Math.round(C);m.plot.getXAxes()[0].options.max= 4064Math.round(A);for(let ma=0;ma<w.length;ma++)if(w[ma].show||m.graphIndex===2&&w[ma].n===3)I[ma]=O(m,w[ma],C,A),S[ma]={datamin:w[ma].datamin||I[ma].datamin,datamax:w[ma].datamax||I[ma].datamax,ymin:w[ma].options.min||w[ma].min,ymax:w[ma].options.max||w[ma].max,diffMin:I[ma].ymin-(w[ma].min||0)||0,diffMax:I[ma].ymax-(w[ma].max||0)||0};m.plot.getXAxes()[0].options.min=Math.round(x);m.plot.getXAxes()[0].options.max=Math.round(v);m.plot.unhighlight();ca[g]=I;K[g]=S}if(!isTest&&isMobile||e.animationCount== 40651)La({pos:1},Z,ca,K,x,v,F,z,e),H||G(e);else{let g=!1;e.zoomAnimation&&(e.zoomAnimation.cancelled=!0);let m=e.zoomAnimation={cancelled:!1},w=performance.now(),I=S=>{if(!m.cancelled)if(S=Math.min(Math.max((S-w)/300,0),1),S<1){if(!g){let ma=performance.now();La({pos:S<.5?4*S*S*S:1-Math.pow(-2*S+2,3)/2},Z,ca,K,x,v,F,z,e);performance.now()-ma>20&&(g=!0)}requestAnimationFrame(I)}else{La({pos:1},Z,ca,K,x,v,F,z,e);for(S=0;S<Z.length;S++)Z[S].plot.unhighlight(),Z[S].plot.clearSelection();H||G(e)}};requestAnimationFrame(I)}e.animationCount++} 4066function La(e,x,v,C,A,H,Z,ca,K){try{for(let F=0;F<x.length;F++){let z=x[F];if(typeof z==="undefined")continue;let g=v[F],m=C[F],w=z.plot.getYAxes(),I=z.plot.getXAxes()[0].options,S=Math.round(A+Z*e.pos),ma=Math.round(H+ca*e.pos),Q=I.min!==S||I.max!==ma;I.min=S;I.max=ma;for(let l=0;l<w.length;l++){if(!w[l].show&&(z.graphIndex!=2||w[l].n!=3)||!g[l])continue;if(typeof g[l]=="undefined")continue;let M=w[l].options.min,na=w[l].options.max;g[l].ymin!=Number.MIN_VALUE&&(w[l].options.min=Math.round(m[l].ymin+ 4067m[l].diffMin*e.pos));g[l].ymax!=Number.MAX_VALUE&&(w[l].options.max=Math.round(m[l].ymax+m[l].diffMax*e.pos));if(z.graphIndex==1&&w[l].n==6){let U=.1;g[l].datamax-g[l].datamin<.4&&(U=.2);w[l].options.max=g[l].datamax+U;w[l].options.min=g[l].datamin-U;z.parameter.scale?(w[l].options.max=5.1,w[l].options.min=.9):(w[l].options.max>5.01&&(w[l].options.max=5.01),w[l].options.min>0&&w[l].options.min<1?w[l].options.min=.8:w[l].options.min==5&&(w[l].options.min=4.6))}if(w[l].options.min!==M||w[l].options.max!== 4068na)Q=!0}
4068if(Q||z===K)z.plot.setupGrid(!0),z.plot.draw(),Ya(z)}}catch(F){console.log(F)}}function Ba(e){var x,v=e.graphIndex==0,C=e.graphIndex==1;var A=e.domainId==5?100:1;var H=99E5*A,Z=2E4*A;enableBuyBoxCouponGraph&&e.buyBoxWithCouponHistory&&e.series.BUY_BOX_SHIPPING_COUPON&&(e.csv[e.series.BUY_BOX_SHIPPING_COUPON.series.index]=e.buyBoxWithCouponHistory,e.objectTypeCoupon=CsvTypeWithCoupon);for(let U in e.csv){var ca=A=!1,K=e.csvType||U,F=e.objectType.getObject(U);if(U.length<3&&F==null){isTest&& 4069console.error("unknown type: "+K,U);continue}enableBuyBoxCouponGraph&&U.length>3&&U.includes("#Coupon")&&(F=CsvTypeWithCoupon.getObject(U.replace("#Coupon","")));var z=e.csv[U];let L=U.length<3?F.isWithShipping:!1;var g=e.type=="locales";var m=e.type=="merchant";g&&(L=CsvType.getObject(K).isWithShipping);if(x=enableBuyBoxCouponGraph&&F&&F.includesCoupon)L=F.isWithShipping;var w=L?3:2;g=g||U.length<3?e.objectType.getObjectName(U):U;x&&(g=CsvTypeWithCoupon.getObjectName(U.replace("#Coupon","")));if(!e.series[g])continue; 4070let ra=e.series[g].series.yaxis;x=[2,3,6].includes(ra)?!0:e.parameter.extreme==1;var I=e.series[g].series.isCurrency?e.domainId:5;g!="RATING"||m||(I=100);if(e.series[g].isDisabled||z==null||z.length==2&&z[1]<0&&z[1]!==-2){e.series[g].isDisabled=!0;continue}if(U.length<3&&(v||C)){if(F.isTopGraph&&C)continue;if(!F.isTopGraph&&!C)continue}m=U.length<3?getWeightedMeanRaw(e.csv[U],keepaTime.now(),1E3,F,e.domainId):0;var S=U.length<3?getWeightedMeanRaw(e.csv[U],keepaTime.now(),90,F,e.domainId):0;m==-1&& 4071(m=U.length<3?getWeightedMeanRaw(e.csv[U],keepaTime.now(),9E3,F,e.domainId):0);F=z[z.length-w]-z[0];if(z.length>4&&F>168){if(m===0&&!L){m=0;for(var ma=0;ma<z.length-3;ma+=2)z[ma+1]>0?m+=z[ma+1]*(z[ma+2]-z[ma]):F-=z[ma+2]-z[ma];m=Math.round(m/F)}}else U.length<3&&(x=!0);if(U.length<=2&&m<=0&&S<=0||e.objectType.SALES&&U==e.objectType.SALES.index)x=!0;if(z[0]!==""){if(z.length==w&&z[1]<0&&z[1]!==-2){e.series[g].isDisabled=!ca;continue}F=e.data[U]=[];I={sourceDomainId:I,targetDomainId:I};var Q=!1;ma= 4072z.length-z.length%w;let Da=keepaTime.timeShiftOffset,Ea=keepaTime.precisionDevisor,oa=offset;for(let Ja=0;Ja<ma;Ja+=w){var l=z[Ja],M=z[Ja+1];let Ha=!1;var na;if(na=!x&&M>=0)a:{na=!1;K.length>2&&(na=M>H);if(!na){na=S<0?m:Math.abs(M-m)<=Math.abs(M-S)?m:S;if(na<=0){na=!1;break a}na=M>Z&&M>na*5||M<na*0}na&&(A=!0,ra!=2&&ra!=3&&ra!=6&&ra!=5&&ra!=4&&(e.internal.filteredExtremes=!0))}na&&(M=-1,Ha=!0);if(M<0&&M!==-2&&F.length===0){Q=Ha;continue}l=(l+Da)*Ea+oa;if(M<0&&M!==-2){Q||Ja===0||z[Ja-w+1]===-1||(Q= 4073z[Ja-w+1],L&&(M=z[Ja-w+2],Q+=M<0?0:M),Q=a(Q,I),M=F[F.length-1],F.length!==0&&M!==null&&l===M[0]||F.push([l,Q]),F[F.length-1]!=null&&F.push(null));Q=Ha;continue}Q=M;L&&(ca=z[Ja+2],Q+=ca<0?0:ca);ca=!0;F.push([l,a(Q,I)]);Q=Ha}if(F.length===0||F===""||F.length===1&&F[0][1]==null){e.data[U]=null;A||(e.series[g].isDisabled=!ca);continue}K=ma-w;w=z[K+1];w<0?F[F.length-1]!=null&&F.push(null):(ca=w,L&&(z=z[K+2],ca+=z<0?0:z),F.push([e.internal.time,a(ca,I)]),ca=!0);A||(e.series[g].isDisabled=!ca)}}}function fa(e, 4074x){var v=9999999999999,C=Date.now();for(var A in e.csv){if(A==7)continue;var H=e.objectType.getObjectName(A);if(typeof H==="undefined"||typeof e.series[H]==="undefined")continue;if(!x&&(e.series[H].isDisabled||!e.series[H].series.lines.show))continue;var Z=e.csv[A];if(Z==null)continue;H=e.objectType[H].isWithShipping?3:2;for(let ca=0,K=Z.length;ca<K;ca+=H)if(Z[ca]!=""&&Z[ca+1]!=-1){v>Z[ca]&&(v=Number(Z[ca]));break}}if(v==9999999999999){for(let ca in e.csv){if(ca==7)continue;Z=e.objectType.getObjectName(ca); 4075if(typeof Z=="undefined")continue;if(typeof e.series[Z]=="undefined")continue;if(!x&&(e.series[Z].isDisabled||!e.series[Z].series.lines.show))continue;A=e.csv[ca];if(A==null)continue;Z=e.objectType[Z].isWithShipping?3:2;for(let K=0,F=A.length;K<F;K+=Z)if(A[K]!=""&&A[K+1]!=-1){v>A[K]&&(v=Number(A[K]));break}}v==9999999999999&&(v=(C/precisionDevisor).toFixed(0)-offsetVar)}x=(C/precisionDevisor).toFixed(0)-offsetVar-v;x=Number((x/60).toFixed(0));e.parameter.interval<1&&(e.parameter.interval=x);return x+ 4076keepaTime.timeShiftOffset/60}function ia(e,x,v,C,A){if(e.isHighlighted){for(var H in e.series){var Z=e.series[H];Z.series.Yignore=!1;Z.series.color=Z.series.colorBackup;Z.series.lines.lineWidth=Z.series.lines.lineWidthBackup;Z.series.lines.fill&&(Z.series.lines.fillColor.colors=[],Z.series.lines.fillColor.colors[0]=Z.series.lines.fillColorBackup[0],Z.series.lines.fillColor.colors[1]=Z.series.lines.fillColorBackup[1])}e.isHighlighted=!1}H=e.series[v];Z=e.objectType[v];Z=comparePricesOverlayActive? 4077Z.index:e.domainId;if(graphIsRestricted(Z,H.index)){e=`<i class="fa fa-line-chart"></i> ${la._896}`;x=[];var ca=[];for(var K in CsvType)typeof CsvType[K]==="object"&&([CsvType.EBAY_NEW_SHIPPING.index,CsvType.EBAY_USED_SHIPPING.index].includes(CsvType[K].index)&&globalEbayArray[Z]===!1||graphIsRestricted(Z,CsvType[K].index)&&(CsvType[K].isTopGraph?x.push(CsvType[K].index):ca.push(CsvType[K].index)));v="";x=x.concat(ca);if(x.length){v='<div class="block block--columns-250-2">';
4077for(var F of x)if(![CsvType.EBAY_NEW_SHIPPING.index, 4078CsvType.EBAY_USED_SHIPPING.index].includes(F)||[CsvType.EBAY_NEW_SHIPPING.index,CsvType.EBAY_USED_SHIPPING.index].includes(H.index))v+=`<div>${CsvType.getNameWithCircle(F)}</div>`;v+=`<div><i class="fa fa-circle" style="font-size: 7px;transform: translateY(-1px);color:#f6d500;"></i> ${la._1032}</div>`;v+="</div"}x="";[CsvType.EBAY_NEW_SHIPPING.index,CsvType.EBAY_USED_SHIPPING.index].includes(H.index)&&(x=`<p class="mdc-typography--caption"> 4079 ${la._893} 4080 </p>`);H=`<div class="popup--medium popup--medium-fixed"> 4081 <p class="mdc-typography--body2"> 4082 ${la._892} 4083 ${v} 4084 </p> 4085 ${x} 4086 <p class="mdc-typography--body2"> 4087 <a class="mdc-button mdc-button--raised" href="https://keepa.com/#!settings/1" target="_blank"><i class="fa fa-shopping-bag" ></i>  ${la._894}</a> 4088 </p> 4089 <p class="mdc-typography--body2">${la._924}</p> 4090 </div>`;comparePricesOverlayActive?showDialog(e,H,!0,5):showPopup(e,H,!0)}else{F=H.index;K=!H.series.lines.show;C=typeof C==="boolean"?C:!K;K=!0;F<99&&e.type=="priceTypes"&&(Sa[F]=C?0:1,storage.showGraphs=JSON.stringify(Sa),settings.send());v==="#monthlySold"&&(storage.monthlySoldHide=C?"1":"0",settings.send());H.series.lines.show=!C;if(!A&&e.type=="subRanks"){A=!0;for(var z in e.series)if(z!=="#monthlySold"&&z!=="#-1"&&e.series[z].series.lines.show){A=!1;break}A?storage.subRanksHide!=="1"&&(storage.subRanksHide= 4091"1",settings.send()):storage.subRanksHide!=="0"&&(storage.subRanksHide="0",settings.send())}typeof e.series[desiredSeriesPrefix+v]!="undefined"&&(e.series[desiredSeriesPrefix+v].series.dashes.show=!C);e.internal.needsNoGraphMessageCheck=!0;v=H.series.yaxis;for(ca in e.series)if(e.series[ca]!=null&&(z=e.series[ca].series,!e.series[ca].isDisabled&&z.index!=F&&z.yaxis==v&&z.lines.show)){K=!1;break}x=x?.querySelector(":scope > .legendColorBox")?.firstElementChild?.firstElementChild;C?DomUtil.setStyles(x, 4092{borderColor:"#ccc",borderWidth:"1px"}):DomUtil.setStyles(x,{borderColor:H.series.color,borderWidth:"6px"});e.plot.setData(B(e));K&&(H=e.plot.getYAxes()[v-1],H.options.min=e.parameter.scale?0:null,H.options.max=null);K?e.syncedGraphs&&e.syncedGraphs.length>1?G(e):ha(e,!1,!0):ha(e,!0,!0)}}function Aa(){clearInterval(eb);eb=-1;sa&&(sa.querySelectorAll(".yAxis").forEach(e=>DomUtil.setStyles(e,{"font-weight":"",opacity:""})),sa=null)}function Ia(e,x,v){var C=e.series[x];if(C){Aa();if(v){let m="y"+C.series.yaxis+ 4093"Axis",w=e.$container;sa=w;eb=setInterval(()=>{w.querySelectorAll(".yAxis").forEach(I=>{I.classList.contains(m)?DomUtil.setStyles(I,{"font-weight":"bold"}):DomUtil.setStyles(I,{opacity:"0.5"})})},200)}if(C.series.lines.show){for(var A in e.series){var H=e.series[A];H.series.lines.lineWidthBackup||(H.series.lines.lineWidthBackup=H.series.lines.lineWidth,H.series.points.lineWidthBackup=H.series.points.lineWidth,H.series.lines.fill&&(H.series.lines.fillColorBackup=[],H.series.lines.fillColorBackup[0]= 4094H.series.lines.fillColor.colors[0],H.series.lines.fillColorBackup[1]=H.series.lines.fillColor.colors[1]),H.series.colorBackup=H.series.color);var Z=H.series.yaxis-1;C.index!=H.index?(C.series.yaxis==H.series.yaxis&&(H.series.Yignore=v),e.graphIndex==2&&(e.axes.y[Z].show=!v),H.series.color=v?Flot.color.parse(H.series.color).add("a",-.75).toString():H.series.colorBackup,H.series.lines.fill&&(H.series.lines.fillColor.colors[0]=v?Flot.color.parse(H.series.lines.fillColorBackup[0]).add("a",-.9).toString(): 4095H.series.lines.fillColorBackup[0],H.series.lines.fillColor.colors[1]=v?Flot.color.parse(H.series.lines.fillColorBackup[1]).add("a",-.5).toString():H.series.lines.fillColorBackup[1])):(H.series.Yignore=!1,e.graphIndex==2&&(e.axes.y[Z].show=v));e.graphIndex!=2||v||(e.axes.y[Z].show=e.axes.y[Z].defaultShow)}if(e.type=="priceTypes"&&e.graphIndex!=2)if(A=e.$container.querySelector(".typeStats"),v){H=e.plot.width()<650;let m=e.stats[C.index];Z=CsvType.format(x,m.highest.val,e.domainId);var ca=H||Z=="-"? 4096"":' <span style="color: #b0b0b0">('+prettyDate(keepaTime.now()-m.highest.date)+")</span>",K=CsvType.format(x,m.lowest.val,e.domainId),F=H||K=="-"?"":' <span style="color: #b0b0b0">('+prettyDate(keepaTime.now()-m.lowest.date)+")</span>",z='<span style="color: #000;">'+CsvType.format(x,m.avg30.val,e.domainId)+"</span>",g='<span style="color: #000;">'+CsvType.format(x,m.avg.val,e.domainId)+"</span>";let w='<span style="color: #000;">'+CsvType.format(x,m.avg180.val,e.domainId)+"</span>";x='<span style="color: #000;">'+ 4097CsvType.format(x,m.current.val,e.domainId)+"</span>";A||e.$container.insertAdjacentHTML("beforeend",'<div class="typeStats"></div>');A=e.$container.querySelector(".typeStats");DomUtil.setStyles(A,{right:e.plot.getPlotOffset().right+"px"});A.innerHTML=`<span>${CsvType.getNameWithCircle(C.index)}</span><span style="color: rgb(60, 179, 113);">${la._383} ${K}${F}</span><span>${la._344} ${x}</span><span style="color: tomato">${la._384} ${Z} <span style="color: #b0b0b0">${ca}</span></span>${H?"":`<span>${la._385} 30 ${la._143} ${z} 90 ${la._143} ${g} 180 ${la._143} ${w}</span>`}`; 4098DomUtil.show(A)}else DomUtil.hide(A);C.series.lines.lineWidth=v?C.series.lines.lineWidth*2:C.series.lines.lineWidthBackup;C.series.points.lineWidth=v?(C.series.points.lineWidth||C.series.lines.lineWidth)*2:C.series.points.lineWidthBackup;C.series.lines.fill&&(C.series.lines.fillColor.colors[0]=v?Flot.color.parse(C.series.lines.fillColorBackup[0]).add("a",.2).toString():C.series.lines.fillColorBackup[0],C.series.lines.fillColor.colors[1]=v?Flot.color.parse(C.series.lines.fillColorBackup[1]).add("rgb", 4099-18).toString():C.series.lines.fillColorBackup[1]);e.isHighlighted=v;e.plot.setData(B(e));
4099!v&&e.grid.backUpMarkings&&(e.grid.markings=e.grid.backUpMarkings,delete e.grid.backUpMarkings,e.plot.getOptions().grid.markings=e.grid.markings,e.plot.setupGrid(!0));if(C.index==CsvType.BUY_BOX_SHIPPING.index&&v){e.grid.backUpMarkings=e.grid.markings;e.grid.markings=[];x=keepaTime.epochToMinutes(e.plot.getAxes().xaxis.min)-keepaTime.timeShiftOffset;A=-1;for(H=0;H<e.csv[C.series.index].length;H+=3)if(Z=e.csv[C.series.index][H], 4100Z>=x){A=Z;break}if(e.bbHistory)for(H=0;H<e.bbHistory.length;H+=2){Z=Number(e.bbHistory[H]);ca=H+2<e.bbHistory.length?e.bbHistory[H+2]:keepaTime.now();if(ca<x)continue;Z<A&&(Z=x);g=e.bbHistory[H+1].sellerId;if(g.length<4)continue;K="#ffc86e";if(!SellerUtil.isSellerIdAmazon(g,e.domainId)&&(K=CsvType.NEW.color,e.offers!=null)){F=[];z=null;for(let m of e.offers)m.sellerId===g&&F.push(m);F.length>=1&&(z=F[0]);if(F.length>1){g=getValueAtTime(e.csv[CsvType.BUY_BOX_SHIPPING.index],Z,CsvType.BUY_BOX_SHIPPING); 4101for(let m of F)getValueAtTime(m.offerCSV,Z,CsvType.BUY_BOX_SHIPPING)!=g||z!=null&&!m.isFBA||(z=m)}z!=null&&(K=z.isFBA?"#ff5722":CsvType.NEW_FBM_SHIPPING.color)}Z+=keepaTime.timeShiftOffset;e.grid.markings.push({color:K,lineWidth:2,text:"",isBuyBoxMarker:!0,xaxis:{from:keepaTime.minutesToEpoch(Z),to:keepaTime.minutesToEpoch(Z>=changeV5?ca+keepaTime.timeShiftOffset:Z)}})}e.plot.getOptions().grid.markings=e.grid.markings;e.plot.setupGrid(!0)}ha(e,!0,!0,!0)}C.tip||(C.tip=e.$container.parentElement?.querySelector(".legendTip")); 4102v&&C.series.labelDesc?(e=m=>m.includes("<span")?m.substring(0,m.indexOf("<span")):m,C.tip&&(C.tip.innerHTML='<div style="color: '+C.series.color+'; font-weight: bold">'+e(C.series.label)+"</div>"+C.series.labelDesc,DomUtil.setStyles(C.tip,{"border-top-color":C.series.color}),DomUtil.show(C.tip))):DomUtil.hide(C.tip)}}function Ga(e){for(var x=[],v=0;v<CsvType.length;v++)x[v]=!1;if(typeof e.parameter.tracking=="object"){v=e.parameter.tracking;e.grid.markings.push({color:"#000",lineWidth:1,text:e.graphIndex=== 41030?'<img src="'+flags[v.mainDomainId]+'"> '+la._197:"",xaxis:{from:keepaTime.minutesToEpoch(v.createDate+keepaTime.timeShiftOffset),to:keepaTime.minutesToEpoch(v.createDate+keepaTime.timeShiftOffset)}});if(v.notificationCSV!=null)for(let z=0;z<v.notificationCSV.length;z+=5)try{var C=v.notificationCSV[z+4];let g=0;if(v.couponCSV!=null)for(var A=0;A<v.couponCSV.length;A+=2)if(v.couponCSV[A]==C){g=v.couponCSV[A+1];break}A="";g!=0&&(A=" (✅ "+(g<0?Math.abs(g)+"%":""+Money.format(g,{sourceDomainId:v.notificationCSV[z], 4104targetDomainId:v.notificationCSV[z]}))+" Coupon)");var H=e.series[e.objectType.getObjectName(v.notificationCSV[z+1])],Z=H.series.color;if(e.graphIndex===0){if(H.series.yaxis===3||H.series.yaxis===6)continue}else if(e.graphIndex===1&&H.series.yaxis<3)continue;let m=e.objectType.getObject(v.notificationCSV[z+1]);e.grid.markings.push({color:Z,text:`${la._868}: <img src="${flags[v.notificationCSV[z]]}"> ${e.objectType.getName(v.notificationCSV[z+1])} - ${NotificationCause.getName(v.notificationCSV[z+ 41053],m.currency)}`+A,lineWidth:1,xaxis:{from:keepaTime.minutesToEpoch(C)+keepaTime.timeShiftOffset*6E4,to:keepaTime.minutesToEpoch(C)+keepaTime.timeShiftOffset*6E4}})}catch(g){console.error(g)}if(v.thresholdValues!=null)for(C=d(),H=0;H<v.thresholdValues.length;H++)try{var ca=v.thresholdValues[H];if(ca.domain!=e.domainId||ca.csvType==CsvType.EBAY_NEW_SHIPPING.index||ca.csvType==CsvType.EBAY_USED_SHIPPING.index)continue;var K=e.objectType.getObjectName(ca.csvType),F=e.series[K];if(e.graphIndex===0){if(F.series.yaxis=== 41063||F.series.yaxis===6)continue}else if(e.graphIndex===1&&F.series.yaxis<3)continue;x[ca.csvType]=!0;K=desiredSeriesPrefix+K;let z=C[K];if(!F.isDisabled){if(F.series.isCurrency){if(ca.domain!=v.mainDomainId&&ca.thresholdValueCSV!=null)for(Z=0;Z<ca.thresholdValueCSV.length;Z+=2)ca.thresholdValueCSV[Z+1]=a(ca.thresholdValueCSV[Z+1],{sourceDomainId:v.mainDomainId,targetDomainId:ca.domain,keepUnit:!0})}else if(ca.csvType==CsvType.RATING.index&&ca.thresholdValueCSV!=null)for(Z=0;Z<ca.thresholdValueCSV.length;Z+= 41072)ca.thresholdValueCSV[Z+1]=a(ca.thresholdValueCSV[Z+1],{sourceDomainId:100,targetDomainId:100});e.csv[K]=ca.thresholdValueCSV;z.series.dashes.show=F.series.lines.show;e.series[K]=z}}catch(z){console.error(z)}if(e.showOnlyTracked)for(ca=[],K=typeof storage.manageGridDefaultGraphMode!=="undefined"?JSON.parse(storage.manageGridDefaultGraphMode):{},K.mode===1&&(ca=K.types,ca=ca.map(z=>Number(z))),K=0;K<CsvType.length;K++){if(K==CsvType.LIGHTNING_DEAL.index)continue;F=e.objectType.getObjectName(K);typeof e.series[F]!== 4108"undefined"&&(x[K]||ca.indexOf(K)!==-1&&!graphIsRestricted(e.domainId,K)?e.series[F].series.lines.show=!0:e.series[F].isDisabled=!0)}}}function Ya(e){if(typeof e.parameter.tracking=="object"&&typeof isSnapshotPage=="undefined"){var x=e.parameter.tracking;let v=e.plot.pointOffset({x:keepaTime.minutesToEpoch(x.createDate+keepaTime.timeShiftOffset)}),C=e.$container.querySelector("#trackingStartedLabel");C||(x=x.mainDomainId==e.domainId?"":' (<a class="gcblink noDecoration" href="#!product/'+x.mainDomainId+ 4109"-"+x.asin+'">.'+getTldByDomain(x.mainDomainId)+"</a>)",e.$container.insertAdjacentHTML("beforeend","<div id='trackingStartedLabel' style='font-size:11px;display:none;position:absolute;
4109left:"+(v.left+3)+"px;top:-13px;color:#666;white-space:nowrap'>"+la._197+x+"</div>"));C=e.$container.querySelector("#trackingStartedLabel");v.left>0&&v.left<e.plot.width()*(storage.language==1?.98:.95)?(DomUtil.setStyles(C,{left:v.left+3+"px"}),DomUtil.show(C)):DomUtil.hide(C)}}function Pa(e){if(!e.preProcessedCSV){e.preProcessedCSV= 4110!0;e.bbHistory=getMergedBB(e.buyBoxSellerIdHistory,e.csv[CsvType.BUY_BOX_SHIPPING.index],e.csv[CsvType.COUNT_NEW.index],null,!1,0);var x=e.csv[CsvType.EXTRA_INFO_UPDATES.index],v=e.type=="locales",C=e.type=="merchant";if(e.salesRanks!=null&&e.salesRankCategoryTrees!=null&&(typeof storage.showGraphs!="undefined"&&storage.showGraphs[7]=="1"||storage.showSalesRankGraph=="1")){let Q=getCategorySalesRanks(e.salesRankCategoryTrees,e.salesRankCategories,e.salesRanks);setTimeout(()=>{var l="",M=e.stats[3].avgDrops&& 4111e.stats[3].avgDrops>0?`<span style="color: darkcyan; cursor: help;font-size:11px" title="${la._1008}"><i class="fa fa-arrow-right fa-rotate-45"></i> ${e.stats[3].avgDrops} ${la._1009}</span>`:"",na=`<table id="salesRankDetails" style="font-size: 12px;margin-left:30px;color:#7d7d7d;margin-top: 8px;position:relative;max-width: 800px;"> 4112 <tr><td colspan="5"><i class="fa fa-circle" style="font-size: 7px;transform: translateY(-1px);color:#8FBC8F"></i> ${la._391}${e.isParentSalesRank?`<span style="margin-left: 10px">${la._1010}</span>`:""}</td></tr>`,U=0,L=0,ra=0,Da=ya=>ya==-1?"-":NumberUtil.format(ya),Ea=!1,oa=!1;for(var Ja of Q)Ja.avg90>0&&(Ea=!0),Ja.avg365>0&&(oa=!0);for(let ya of Q){if(ya==-1||ya.avg365==-1&&ya.rank==-1)continue;U==0&&(U=10+(ya.rank+"").length*9);L==0&&(L=10+(ya.avg90+"").length*9);ra==0&&(ra=10+(ya.avg365+ 4113"").length*9);Ja=ya.topPct>100?"-":ya.topPct;Ja=`${la._167} <span style="width: 30px; display: inline-block; text-align: right;">${Ja==0?" - ":Ja}%</span>`;ya.topPct>100&&(Ja="");var Ha="";ya.cr.parent==0&&(Ha=" "+la._1011+": "+NumberUtil.format(ya.cr.highestRank));Ja=` <td style="width: 65px; display: inline-block;cursor: help;color:#40bdb2" title="${la._1012}: ${NumberUtil.format(ya.cr.productCount)+Ha}">${Ja}</td>`;Ha=` <td style="color:#333;cursor: help;" title="${ya.cr.name==ya.tree?"":ya.tree}">${ya.cr.name}<span style="margin-left: 7px;color:grey">${ya.cr.catId== 4114e.salesRankReference?M:`<span style="cursor: help;" title='${la._1013}'><i class="fa fa-sitemap" aria-hidden="true"></i> ${ya.sublevel}</span>`}</span></td>`;l+=`<tr${ya.cr.isBrowseNode?"":' class="italic opacity-70"'}> 4115 <td style="padding-right: 20px;color:${CsvType.SALES.color};width: ${U}px;">#<span style="display: inline-block; width: ${U-10}px;text-align: right;">${Da(ya.rank)}</span></td> 4116 ${Ea?`<td style="padding-right: 5px;color:${CsvType.SALES.color};width: ${L}px;">#<span style="display: inline-block;width: ${L-10}px;text-align: right;">${Da(ya.avg90)}</span></td>`:""} 4117 ${oa?`<td style="padding-right: 5px;color:${CsvType.SALES.color};width: ${ra}px;">#<span style="display: inline-block;width: ${ra-10}px;text-align: right;">${Da(ya.avg365)}</span></td>`:""} 4118 </td>${Ja}${Ha}</tr>`}M=`<tr><td style="padding-right: 20px;width: ${U}px;">${la._344}</td> 4119 ${Ea?`<td style="cursor:help;padding-right: 20px;width: ${L}px;" title="${la._1014.replace("#days#",90)}">90d</td>`:""} 4120 ${oa?`<td style="cursor:help;padding-right: 20px;width: ${ra}px;" title="${la._1014.replace("#days#",365)}">365d</td>`:""} 4121 </tr>`;U="";e.monthlySold&&keepaTime.now()-e.lastSoldUpdate<=86400&&(U="",typeof e.lastSoldUpdate!=="undefined"&&(U=` (${la._123} ${prettyDate(Date.now()/6E4-(e.lastSoldUpdate+offsetHours*60))})`),U=`<span style="color:#7d7d7d;font-size: 12px;margin-left:30px;">${la._995}: ${e.monthlySold}+${U}</span>`);l.length>0&&(document.getElementById("subGraphHover")?.insertAdjacentHTML("beforebegin",na+M+l+"</table>"+U),addon())},0)}if(typeof isSnapshotPage=="undefined"&&e.csv[CsvType.BUY_BOX_SHIPPING.index]!= 4122null&&e.buyBoxSellerIdHistory!=null){for(var A=e.csv[CsvType.BUY_BOX_SHIPPING.index],H=e.buyBoxSellerIdHistory,Z=[],ca=0,K=0,F=0,z=-1,g=-1;ca<A.length||K<H.length;){if(K>=H.length){for(;ca<A.length;ca+=3)Z.push(A[ca]),Z.push(A[ca+1]),Z.push(A[ca+2]);break}if(ca>=A.length){for(;K<H.length;K+=2)Z.push(Number(H[K])),Z.push(z),Z.push(g);break}F=A[ca];var m=Number(H[K]);F==m?(z=A[ca+1],g=A[ca+2],ca+=3,K+=2):F>m?(F=m,K+=2):(z=A[ca+1],g=A[ca+2],ca+=3);Z.push(F);Z.push(z);Z.push(g)}e.csv[CsvType.BUY_BOX_SHIPPING.index]= 4123Z}if(x!=null||v||C)for(let Q in e.csv){if(e.csv[Q]==null)continue;if(v&&(e.csvType==CsvType.RATING.index||e.csvType==CsvType.COUNT_REVIEWS.index))continue;if(!(v||C||Q!=CsvType.RATING.index&&Q!=CsvType.COUNT_REVIEWS.index))continue;F=0;H=v?e.csvType:Q;g=CsvType.getObject(H);if(g==null)continue;ca=(Z=Q.length<3?g.isWithShipping:!1)?3:2;v&&(x=e.updateCSV[Q]);A=v||Q.length<3?e.objectType.getObjectName(Q):Q;if(!e.series[A]||!g.isOfferData)continue;K=e.csv[Q];A=[];z=0;if(K[1]!==-2&&x!=null){for(F=0;F< 4124x.length;F+=2){var w=x[F];if(w>changeFBA&&(Q==CsvType.NEW_FBA.index||Q==CsvType.NEW_FBM_SHIPPING.index))break;for(var I=K[z];I<w;)z+=ca,I=K[z];if(w<I&&z==0)continue;if(!v&&!C)if(H==CsvType.BUY_BOX_SHIPPING.index){if(Math.max(getValueAtTime(e.csv[CsvType.COUNT_NEW.index],w,CsvType.COUNT_NEW),0)+Math.max(getValueAtTime(e.csv[CsvType.COUNT_USED.index],w,CsvType.COUNT_USED),0)+Math.max(getValueAtTime(e.csv[CsvType.COUNT_COLLECTIBLE.index],w,CsvType.COUNT_COLLECTIBLE),0)+Math.max(getValueAtTime(e.csv[CsvType.COUNT_REFURBISHED.index], 4125w,CsvType.COUNT_REFURBISHED),0)==0||K[z+1]===-2){w==I&&(z+=ca);continue}}else if(Q==CsvType.NEW_FBA.index||Q==CsvType.NEW_FBM_SHIPPING.index){if(Math.max(getValueAtTime(e.csv[CsvType.COUNT_NEW.index],w,CsvType.COUNT_NEW),0)==0){w==I&&(z+=ca);continue}}else if(Q==CsvType.REFURBISHED_SHIPPING.index){if(Math.max(getValueAtTime(e.csv[CsvType.COUNT_REFURBISHED.index],w,CsvType.COUNT_REFURBISHED),0)==0){w==I&&(z+=ca);continue}}else{if((Q==CsvType.USED_ACCEPTABLE_SHIPPING.index||Q==CsvType.USED_GOOD_SHIPPING.index|| 4126Q==CsvType.USED_NEW_SHIPPING.index||Q==CsvType.USED_VERY_GOOD_SHIPPING.index||Q==CsvType.COLLECTIBLE_ACCEPTABLE_SHIPPING.index||Q==CsvType.COLLECTIBLE_GOOD_SHIPPING.index||Q==CsvType.COLLECTIBLE_NEW_SHIPPING.index||Q==CsvType.COLLECTIBLE_VERY_GOOD_SHIPPING.index)&&Math.max(getValueAtTime(e.csv[Q],w,g),0)==0){w==I&&(z+=ca);continue}}else if(v&&K[z+1]===-2){w==I&&(z+=ca);continue}m=A[A.length-2];var S=A[A.length-1];if(w>=I){w=Math.max(K[z+1],-1);if(Z){var ma=Math.max(K[z+2],-1);w==m&&S==ma||A.push(I, 4127w,ma,I,-1,-1)}else w!=m&&A.push(I,w,I,-1);z+=ca}else Z?(I=Math.max(K[z-2],-1),ma=Math.max(K[z-1],-1),I==m&&S==ma||A.push(w,I,ma,w,-1,-1)):(S=Math.max(K[z-1],-1),S!=m&&A.push(w,S,w,-1))}if(Q==CsvType.NEW_FBA.index||Q==CsvType.NEW_FBM_SHIPPING.index){F=g=-1;for(m=0;m<K.length;m+=ca)if(K[m]<=changeFBA)g=K[m+1],Z&&(F=K[m+2]);else break;for(g>0&&(Z?A.push(changeFBA,g,F):A.push(changeFBA,g));z<K.length;)g=K[z],g>changeFBA&&(F=K[z+1],Z?A.push(g,F,K[z+2]):A.push(g,F)),z+=ca}}if(A.length===0&&K[1]===-2)for(let l of K)A.push(l); 4128if(H==CsvType.BUY_BOX_SHIPPING.index){H=e.csv[Q];e.csv[Q]=[];for(Z=0;Z<A.length;Z+=3)if(ca=A[Z],ca<=changeV5)e.csv[Q].push(ca),e.csv[Q].push(A[Z+1]),e.csv[Q].push(A[Z+2]);else break;A=!1;for(Z=0;Z<H.length;Z+=3)ca=H[Z],ca>=changeV5&&(e.csv[Q].push(ca),e.csv[Q].push(H[Z+1]),e.csv[Q].push(H[Z+2]),A=!0);A||(e.csv[Q].push(changeV5),e.csv[Q].push(H[H.length-2]),e.csv[Q].push(H[H.length-1]))}else if(H==CsvType.WAREHOUSE.index){H=e.csv[Q];e.csv[Q]=[];for(Z=0;Z<H.length;Z+=2)ca=H[Z],e.csv[Q].push(ca),e.csv[Q].push(H[Z+ 41291]),e.csv[Q].push(ca),e.csv[Q].push(-1);e.csv[Q]=ta(A,e.csv[Q])}else e.csv[Q]=A}}}function ta(e,x){for(var v=[],C=0,A=0;C<e.length&&A<x.length;){let H=e[C]-x[A];H>0?(v.push(x[A++]),v.push(x[A++])):H<0?(v.push(e[C++]),v.push(e[C++])):C+=2}v=A<x.length?v.concat(x.slice(A)):v.concat(e.slice(C));e=[];x=-2;for(C=0;C<v.length;
4129C+=2)if(A=v[C+1],A!=-1||x!=-1)e.push(v[C]),e.push(A),x=A;return e}function ea(e,x,v,C){if(C===void 0)ea(e,x,v,!1),ea(e,x,v,!0);else{var A=Ra[e+x+v+C];A&&(A.plot.shutdown(),A.syncedGraphs= 4130[],A.listeners?.abort(),delete Ra[e+x+v+C])}}function Fa(e,x){e.showLegend=!1;e.$container=x;DomUtil.show(e.$container);e.parameter.offsetLeft=-30;e.parameter.width="180px";e.parameter.height="95px"}var bb=new Map,Ra={},Sa=null,db=keepaTime.timeShiftOffset*keepaTime.precisionDevisor,eb=-1,sa=null,Qa=document.documentElement.clientWidth,Ta,ba=function(e){clearTimeout(Ta);Ta=window.setTimeout(function(){var x=document.documentElement.clientWidth;if(e||x!=Qa){Qa=x;x={};for(var v in Ra){var C=Ra[v];C.type!= 4131"stock"&&(x[v]=C.$container.style.width,DomUtil.setStyles(C.$container,{width:0}))}for(let A in Ra){v=Ra[A];if(v.type=="stock")continue;C=v.$container?.parentElement;if(!C)continue;C=DomUtil.width(C);C==0||v.parentWidthCache==C?DomUtil.setStyles(v.$container,{width:x[A]}):(v.parentWidthCache=C,v.preResizeHook&&v.preResizeHook(),v.parameter.width=float2int(C-v.parameter.offsetLeft-(v.showOnlyTracked?140:215))+"px",DomUtil.setStyles(v.$container,{width:v.parameter.width}),v.plot.resize(),v.syncedGraphs&& 4132v.syncedGraphs.length>1?G(v,!0):ha(v,!1,!0),v.resizeHook&&v.resizeHook())}addon()}},200)};typeof isSnapshotPage=="undefined"&&window.addEventListener("resize",function(){ba(!1)});return{prepare:function(e){try{Sa=storage.showGraphs?JSON.parse(storage.showGraphs):null}catch(v){Sa=null,reportBug(v)}Sa==null&&(Sa=u(),storage.showGraphs=JSON.stringify(Sa),settings.send());var x={csv:[],data:[],dataWithExtremes:[],stats:{},$container:null,listeners:null,series:r(e,typeof isSnapshotPage=="undefined"),domainId:e, 4133asin:null,graphIndex:0,plot:null,currencySymbol:null,syncedGraphs:[],type:"priceTypes",objectType:CsvType,resizeHook:null,preResizeHook:null,isOnTrackingPage:!1,showOnlyTracked:!1,axes:{x:[{mode:"time",twelveHourClock:!1,monthNames:la._79,show:!0}],y:[{index:1,tickDecimals:0,min:0,position:"left",tickFormatter:function(v,C){return Money.format(v,{sourceDomainId:e,targetDomainId:e,isDivided:!0,noDigits:!0}).replace(" "," ")},show:!1},{index:2,tickDecimals:0,min:0,position:"right",tickFormatter:function(v, 4134C){return"#"+NumberUtil.format(v)},transform:storage.salesRankInverse==="0"?null:function(v){return-v},inverseTransform:storage.salesRankInverse==="0"?null:function(v){return-v},tickLength:0,show:!1},{index:3,tickDecimals:0,position:"right",tickFormatter:function(v,C){return NumberUtil.format(v)},show:!1},{index:4,tickDecimals:0,alignTicksWithAxis:0,position:"right",tickFormatter:function(v,C){return NumberUtil.format(v)+"%"},show:!1},{index:5,tickDecimals:0,position:"left",tickFormatter:function(v, 4135C){return NumberUtil.format(v)},tickLength:0,show:!1},{index:6,tickDecimals:1,position:"left",tickFormatter:function(v,C){v=NumberUtil.format(v,1);return v>5||v<1?"":v+'<i style="color:#f1bb00;display: inline;margin-left:2px" class="fa fa-star"></i>'},tickLength:0,show:!1}]},grid:{color:"#444",show:!0,clickable:!0,backgroundColor:null,labelMargin:4,axisMargin:3,tickColor:"#eee",borderWidth:1,borderColor:"#444",hoverable:!0,markings:[]},parameter:{interval:Number(storage.s_range)||2160,forceInterval:!1, 4136scale:Number(storage.graphScale),extreme:Number(storage.extremeFilter),salesRankInverse:Number(storage.salesRankInverse),height:"450px",width:"100%",showSymbols:!0,showOfferLines:!0,offsetLeft:0},internal:{nowMinutes:keepaTime.now(),filteredExtremes:!1,time:Date.now()+keepaTime.timeShiftOffset*keepaTime.precisionDevisor}};graphDateFormatIFrame=get("s_dateFormat");return x},create:X,getGraphObject:function(e,x,v,C){return Ra[e+x+v+C]},setNewInterval:function(e){for(let x in Ra){let v=Ra[x];if(x.length== 413712)continue;let C=v.plot.getXAxes()[0].options,A=v.internal.time;v.parameter.interval=e;for(let H=0;H<v.syncedGraphs.length;H++)v.syncedGraphs[H].$container.querySelectorAll(".legendRange").forEach(Z=>Z.classList.remove("active")),v.syncedGraphs[H].$container.querySelectorAll('.legendRange[range="'+e+'"]').forEach(Z=>Z.classList.add("active")),v.syncedGraphs[H].parameter.interval=e;wa(v,C.min,C.max,A-e*60*60*1E3,A)}},remove:ea,redraw:ha,removeAll:function(){for(let e in Ra)Ra[e].plot.shutdown();Ra= 4138{}},updateYAxes:t,getDefaultShowGraphSetting:u,syncGraphAlignment:G,getLocaleSeriesTemplates:function(e){e=r(!0,!0)[e];var x={},v=" #5B7837 #96A6CD #C85332 #593C68 #85D1AD #D1B547 #CAA68A #6D3A2A #84D551 #AA65D0 #CB5086 #42554F #556B2F #8B4513".split(" ");for(let C=0;C<numberOfDomains;C++){if(C==7)continue;if(typeof e==="undefined")continue;let A=Object.assign({},e);A.series=Object.assign({},e.series);A.series.lines=Object.assign({},e.series.lines);A.series.points=Object.assign({},e.series.points); 4139e.series.dashes&&(A.series.dashes=Object.assign({},e.series.dashes));
4139A.series.index=C;A.series.label=LocaleType.getName(C);A.series.labelText=A.series.label;A.isDisabled=!0;A.series.color=v[C]||"#777777";A.series.lines.fill=!1;A.series.lines.show=!0;A.series.domain=C;delete A.series.lines.fillColor;let H=Flot.color.parse(A.series.color);H.r=Math.round(H.r+(255-H.r)*.65);H.g=Math.round(H.g+(255-H.g)*.65);H.b=Math.round(H.b+(255-H.b)*.65);H.a=.8;A.series.backgroundColor=H.toString();x[A.series.label]= 4140A}return x},getSeriesTemplates:r,getMerchantSeriesTemplates:function(){return{RATING:{index:0,isDisabled:!1,series:{index:0,data:null,label:MerchantType.getName(0),labelText:MerchantType.getName(0),lines:{show:!0,steps:!0,fill:!1,lineWidth:1.5},hoverable:!1,color:MerchantType.RATING.color,backgroundColor:MerchantType.RATING.bg,points:{show:!1},dashes:{show:!1},yaxis:4,isCurrency:MerchantType.RATING.currency,formatter:function(e){return"<span>"+MerchantType.getName(0)+"</span><br>"+NumberUtil.format(e)+ 4141" %"}}},RATING_COUNT:{index:1,isDisabled:!1,series:{index:1,data:null,label:MerchantType.getName(1),labelText:MerchantType.getName(1),lines:{show:!0,steps:!0,fill:!1,lineWidth:1.5},hoverable:!1,color:MerchantType.RATING_COUNT.color,backgroundColor:MerchantType.RATING_COUNT.bg,points:{show:!1},dashes:{show:!1},yaxis:3,isCurrency:MerchantType.RATING_COUNT.currency}},LISTINGS_COUNT:{index:2,isDisabled:!1,series:{index:2,data:null,label:MerchantType.getName(2),labelText:MerchantType.getName(2),lines:{show:!0, 4142steps:!0,lineWidth:1.5},hoverable:!1,points:{show:!1},color:MerchantType.LISTINGS_COUNT.color,backgroundColor:MerchantType.LISTINGS_COUNT.bg,dashes:{show:!1},yaxis:5,isCurrency:MerchantType.LISTINGS_COUNT.currency}}}},getRatingSeriesTemplates:function(){return{COUNT_RATING:{index:0,isDisabled:!1,series:{index:0,data:null,label:RatingType.getName(0),labelText:RatingType.getName(0),lines:{show:!0,steps:!0,fill:!1,lineWidth:1},hoverable:!1,color:RatingType.COUNT_RATING.color,backgroundColor:RatingType.COUNT_RATING.bg, 4143points:{show:!0,symbol:pointSymbols.lastPoint},dashes:{show:!1},yaxis:3,isCurrency:!1}},COUNT_REVIEW:{index:1,isDisabled:!1,series:{index:1,data:null,label:RatingType.getName(1),labelText:RatingType.getName(1),lines:{show:!0,steps:!0,fill:!1,lineWidth:1},hoverable:!1,color:RatingType.COUNT_REVIEW.color,backgroundColor:RatingType.COUNT_REVIEW.bg,points:{show:!1},dashes:{show:!1},yaxis:3,isCurrency:!1}}}},insertCsvTypeGraph:function(e,x,v,C){try{let A=graph.prepare(e.domainId);A.asin=e.asin;A.graphIndex= 41445;A.updateCSV=[];A.parameter.interval=C?C:2160;A.parameter.forceInterval=!0;A.parameter.scale=0;A.series=graph.getSeriesTemplates(e.domainId,!1,!0);C=[];C[v]=e.csv[v].slice();let H=CsvType.getObject(v);H&&H.isWithShipping?C[v].push(e.lastUpdate+60,-1,-1):C[v].push(e.lastUpdate+60,-1);A.csv=C;A.type="csv";A.objectType=CsvType;A.objectTypeCoupon=CsvTypeWithCoupon;Fa(A,x);A.isInGrid=!0;X(A)}catch(A){console.log(A)}},insertOfferGraph:function(e,x,v,C,A,H){try{let ca=graph.prepare(e.domainId);ca.asin= 4145x;ca.graphIndex=5;ca.updateCSV=[];ca.parameter.interval=A?A:2160;ca.parameter.forceInterval=!0;ca.parameter.scale=0;var Z={STOCK:{index:0,isDisabled:!1,series:{index:0,data:null,label:OfferType.getName(0),labelText:OfferType.getName(0),lines:{show:!0,steps:!0,fill:!1,lineWidth:1},hoverable:!1,color:OfferType.STOCK.color,backgroundColor:OfferType.STOCK.bg,points:{show:!0,symbol:pointSymbols.lastPoint},dashes:{show:!1},yaxis:3,isCurrency:!1}},PRICE:{index:1,isDisabled:!1,series:{index:1,data:null,label:OfferType.getName(1), 4146labelText:OfferType.getName(1),lines:{show:!0,steps:!0,fill:!1,lineWidth:1},hoverable:!1,color:CsvType.NEW.color,backgroundColor:CsvType.NEW.bg,points:{show:!0,symbol:pointSymbols.lastPoint},dashes:{show:!1},yaxis:1,isCurrency:!0}}};ca.series=Z;ca.isInGrid=H;let K=ConditionType.getCorrespondingCsvType(e.condition);K==null&&(K=e.isFBA?CsvType.NEW_FBA:CsvType.NEW_FBM_SHIPPING);e.isAmazon&&(K=CsvType.AMAZON);e.isWarehouseDeal&&(K=CsvType.WAREHOUSE);ca.series.PRICE.series.color=K.color;ca.series.PRICE.series.backgroundColor= 4147K.bg;ca.series.PRICE.series.label=ca.series.PRICE.series.labelText=CsvType.getName(K.index);x=[];let F=keepaTime.now();if(C==="price")x[OfferType.PRICE.index]=e.offerCSV.slice(),(e.updateCSV==null||e.lastSeen!=e.updateCSV[e.updateCSV.length-2])&&F-e.lastSeen>720&&x[OfferType.PRICE.index].push(e.lastSeen+60,-1);else if(C==="stock"){x[OfferType.STOCK.index]=e.stockCSV?e.stockCSV.slice():null;let z=x[OfferType.STOCK.index];z==null&&(z=[F,-1]);e.updateCSV&&e.lastSeen!=e.updateCSV[e.updateCSV.length-2]&& 4148F-e.lastSeen>720&&z.push(e.lastSeen+60,-1);x[OfferType.STOCK.index]=z}ca.csv=x;ca.type="stock";ca.objectType=OfferType;Fa(ca,v);if(e.updateCSV!=null&&C==="price")for(v=0;v<e.updateCSV.length;v+=2){let z=e.updateCSV[v]+keepaTime.timeShiftOffset,g=(new Date(keepaTime.minutesToEpoch(z))).formatDate("M j, G:i");ca.grid.markings.push({color:"#ff0098",lineWidth:1,text:"offer data was updated on "+g,isUpdateMarker:!0,xaxis:{from:keepaTime.minutesToEpoch(z),to:keepaTime.minutesToEpoch(z)}})}X(ca)}catch(ca){console.log(ca)}}, 4149insertRatingGraph:function(e,x,v,C){try{let A=graph.prepare(1);A.asin=e.asin;A.graphIndex=5;A.updateCSV=[];A.parameter.interval=C?C:2160;A.parameter.forceInterval=!0;A.parameter.scale=0;A.series=graph.getRatingSeriesTemplates();C=[];v==="rating"&&e.reviews.ratingCount?(C[RatingType.COUNT_RATING.index]=e.reviews.ratingCount.slice(),C[RatingType.COUNT_RATING.index].push(e.reviews.lastUpdate+60,-1)):v==="review"&&e.reviews.reviewCount&&(C[RatingType.COUNT_REVIEW.index]=e.reviews.reviewCount.slice(), 4150C[RatingType.COUNT_REVIEW.index].push(e.reviews.lastUpdate+60,-1));A.csv=C;A.type="rating";A.objectType=RatingType;Fa(A,x);X(A)}catch(A){console.log(A)}},resizeGraphs:ba}}();const iframe=function(){function a(){var X=document.getElementById("detailProductPage");if(X){var P=ka=>document.querySelectorAll("#casinLine .casinLineContinent").forEach(D=>DomUtil.setStyles(D,{opacity:ka}));X.addEventListener("mouseenter",()=>P("1"));X.addEventListener("mouseleave",()=>P("0.5"))}}function b(){replaceHtml("initPage",'<div id="detailProductPage" class="detailProductPageIFrame"><table id="productTableIFrame"><tr><td style="vertical-align: top;"><div id="productTableDescriptionIFrame"></div></td></tr></table></div><div id="networkOverlay"><div id="networkBar"></div></div>')} 4151function c(X){if(X||r)if(get("s_boxHorizontal")||resetSettings(0),comparePricesOverlayActive=!1,compareCache="",shareChartOverlayActive=!1,lastSubUrl=="1-0-B000000001")b(),isSettings=!0,d("");else{if(keepaApp)if(keepaApp.domainId)keepaBoxInit.asin=keepaApp.asin,keepaBoxInit.domainId=keepaApp.domainId;else if(reportBug("iframe_app invalid data",JSON.stringify(keepaApp)+" localStorageIsPolyFill: "+localStorageIsPolyFill),
4151X=document.getElementById("detailProductPage"))X.innerHTML="app communication error."; 4152if(keepaBoxInit.asin&&typeof keepaBoxInit.asin==="string"){keepaBoxInit.asin=keepaBoxInit.asin.replace("MC_Assembly_1#","");var P=network.request({path:"user/tracking",asin:keepaBoxInit.asin,kA:keepaApp?.constructor===Object}),ka=keepaBoxInit.asin;try{sendInitTimeStat(keepaBoxInit.domainId)}catch(ha){}var D=function(ha){keepaBoxInit.asin==ka&&P.always(function(V){ha.tracking=V?.tracking??null;ha.communityTrackings=V?.communityTrackings??null;n&&=!1;keepaBoxInit.asin==ka&&f(ha)})},W=null,N=null;sendReceive({key:"getState"}).done(function(ha){W= 4153ha.value;N=ha.value2});network.request({path:"product",type:"ws",history:!0,domainId:keepaBoxInit.domainId,asin:keepaBoxInit.asin,url:keepaBoxInit.url,kA:keepaApp?.constructor===Object,maxAge:3,refreshProduct:n}).done(function(ha){if(keepaBoxInit.asin==ka){ha.basicProducts!=null&&(ha.products=ha.basicProducts);var V=getProductFromList(keepaBoxInit.asin,ha.products),O=V!==null?V.csv[CsvType.SALES.index]:null,wa=O===null||O!=null&&O.length===2&&O[1]===-1;if(V!=null&&(W!=null||N!=null))try{V.variations|| 4154(W&&W.asin_variation_values?V.variations=Object.keys(W.asin_variation_values).map(La=>({asin:La})):N&&(V.variations=Object.values(N).map(La=>({asin:La}))))}catch(La){reportBug(La,JSON.stringify(W)),W=null}V===null||!V.parentAsin||V.asin==V.parentAsin||typeof V.variations!="undefined"&&V.variations!=null?D(ha):(isTest&&console.log("loading parentAsin: "+V.parentAsin+" "+keepaBoxInit.domainId),network.request({path:"product",type:"ws",history:!0,domainId:keepaBoxInit.domainId,asin:V.parentAsin,onlyParent:!0, 4155kA:keepaApp?.constructor===Object,maxAge:3,refreshProduct:n}).done(function(La){La=getProductFromList(V.parentAsin,La.products);try{La.variationCSV!=null&&(V.variationCSV==null||V.variationCSV.length<La.variationCSV.length)&&(V.variationCSV=La.variationCSV);if(La.variations){let ia=new Map(La.variations.map(Aa=>[Aa.asin,Aa.attributes]));V.variations=V.variations.map(Aa=>{var Ia=ia.get(Aa.asin);return Ia?{...Aa,attributes:Ia}:Aa})}let Ba=keepaTime.now(),fa=La.csv!=null&&La.csv[CsvType.SALES.index]!= 4156null?La.csv[CsvType.SALES.index].length:0;if(wa){if(fa>1){let ia=La.csv[CsvType.SALES.index][fa-2],Aa=La.csv[CsvType.SALES.index][fa-1];Aa==-1&&fa>3?(ia=La.csv[CsvType.SALES.index][fa-4],Ba-ia>259200&&(La.csv[CsvType.SALES.index][fa-2]=ia+60)):Ba-ia>259200&&Aa>0&&(La.csv[CsvType.SALES.index].push(ia+60,-1),fa+=2)}V.csv[CsvType.SALES.index]=La.csv[CsvType.SALES.index];V.isParentSalesRank=fa>2}else if(fa>2){let ia=getWeightedMean(La.csv[CsvType.SALES.index],Ba,30,CsvType.SALES,La.domainId),Aa=getWeightedMean(V.csv[CsvType.SALES.index], 4157Ba,30,CsvType.SALES,V.domainId),Ia=Math.min(ia,Aa)/Math.max(ia,Aa);Ia>.88&&(console.log("merged parent and child sales rank history",Ia),V.csv[CsvType.SALES.index]=mergeCSV(V.csv[CsvType.SALES.index],La.csv[CsvType.SALES.index],CsvType.SALES),V.isParentSalesRank=!0)}}catch(Ba){}finally{D(ha)}}).fail(function(La){D(ha)}))}}).fail(function(ha){b();replaceHtml("productTableDescriptionIFrame","server not responding: <br>"+la._error)})}else if(console.log("no valid asin",keepaBoxInit.asin,keepaBoxInit.url), 4158X=document.getElementById("initPage"))X.innerHTML='<div style="margin-top: 60px">Error identifying product.</div>'}}function d(X,P){var ka="";if(P!=null)try{var D=0;P.categories==null||P.categories.length==0?P.rootCategory>0&&P.rootCategory<invalidIfLargerCatId&&(D=P.rootCategory):D=P.categories[0];D>0&&(ka=`<a href="${rootURL}#!bestseller/${P.domainId}-${D}" target="_blank">Related Best Sellers</a><span> ✜ </span>`)}catch(Pa){console.error(Pa)}var {domainId:W,productType:N}=P??{}; 4159D=W===14;var ha=[ProductType.DOWNLOADABLE,ProductType.EBOOK].includes(N),V=N==ProductType.INACCESSIBLE;X=`<a href="${rootURL}#!news" target="_blank">${la._25}</a><span> ✜ </span><a href="${rootURL}#!support" target="_blank">Support</a><span> ✜ </span><a href="${rootURL+"#!manage"}" target="_blank">${la._239}</a><span> ✜ </span>`+(D?"":`<a href="${rootURL}#!finder" target="_blank">${la._736}</a><span> ✜ </span>`+X+"<span> ✜ </span>"+ 4160ka);ka=storage.username?'<span id="keepaBoxSettings"></span>':'<span id="keepaBoxLogin">'+la._9+"</span>";var O=storage.domain!=7?'<li class="tabItemI" class="hidden" id="tabMore" rel="more">Data</li>':"",wa=P!=null?`<li class="tabSubItem" data-box="#MoreTab2">${la._1084}</li>`:"",La=`<li class="tabSubItem" data-box="#MoreTab3">${la._1085}</li>`,Ba=`<li class="tabSubItem" data-box="#MoreTab4">${la._1086}</li>`,fa=P!=null&&P.variations&&P.variations.length>0;fa=D||!fa?"":`<li class="tabItemI" class="hidden" id="tabVariation" rel="more">${la._747}</li>`; 4161var ia=D||ha||V?"":`<li class="tabItemI" id="tabTrack" rel="track">${la._125}</li>`;D?prependProductInfo("Only limited support for Amazon.nl. Expect missing data and functionality."):ha?prependProductInfo(la._666):V&&prependProductInfo(la._669);D=`<div> 4162 <div> 4163 <div dir="rtl" id="keepaCopyright"><span id="keepaCopyrightWhitespace">-</span>${la._272}<span> ✜ </span>${X}
4163${ka}</div> 4164 <ul id="tabHeadIFrame"> 4165 <li class="tabItemI active" id="tabGraph" rel="graph">${la._97}</li> 4166 ${ia} 4167 ${O} 4168 ${fa} 4169 <li class="tabItemI" id="tabSettings" rel="settings">${la._8}</li> 4170 </ul> 4171 </div> 4172 <div id="tabContentIFrame"> 4173 <div id="priceHistory" class="active"><div class="graph unselectable" id="graph"></div></div> 4174 <div id="track" class="productTrack" style="margin: 0 0 0 23px;"></div> 4175 <div id="more" class="hidden" style="margin-right:10px;min-height:60px;"> 4176 <div> 4177 <ul id="tabHeadSub"> 4178 <li class="tabSubItem active" data-box="#MoreTab1">${la._1083}</li> 4179 ${ha||V?"":wa} 4180 ${ha||V?"":La} 4181 ${ha||V?"":Ba} 4182 </ul> 4183 </div> 4184 <div id="loadingIconAdv" style="position:absolute !important;left:185px;top:80px;"><div id="loadingProgress"></div></div> 4185 ${storage.accountType==0?`<div style="margin:15px 0;color:#000;font-style:italic;">${la._926}</div><br>`:""} 4186 <div style="margin-top: 20px;"> 4187 <div id="MoreTab1" class="active"></div> 4188 <div id="MoreTab2" class="hidden"></div> 4189 <div id="MoreTab3" class="hidden"></div> 4190 <div id="MoreTab4" class="hidden"></div> 4191 </div> 4192 </div> 4193 <div id="variation" style="margin: 0 0 0 23px;"></div> 4194 <div id="settingsContent" style="display:none;" ></div> 4195 </div> 4196 </div>`;if(keepaApp){replaceHtml("content",'<div id="priceHistory" class="active"><div class="graph unselectable" id="graph"></div><div id="salesRankGraph" class="graph" style="display:none;"></div><div id="moreDataGraph" class="graph" style="display:none;"></div></div><div id="legendInterval"></div>'+(hasDataAccessSubscription?'<div id="graphToggles" style="position: absolute;right: 1%;bottom: 24px;font-size: 40px; cursor: pointer; user-select: none;">\n\t\t\t\t\t <div id="graph1" rel="0" class="active">1</div>\n\t\t\t\t\t <div id="graph2" rel="2">2</div>\n\t\t\t\t\t <div id="graph3" rel="1">3</div>\n\t\t\t\t </div>': 4197""));let Pa={graph1:document.getElementById("graph"),graph2:document.getElementById("salesRankGraph"),graph3:document.getElementById("moreDataGraph")};document.querySelectorAll("#graphToggles > div").forEach(ta=>ta.addEventListener("click",function(ea){ea=ea.currentTarget;if(!ea.classList.contains("active")){for(var Fa of ea.parentElement?.children??[])Fa!==ea&&Fa.classList.remove("active");ea.classList.add("active");DomUtil.hide(Pa.graph1);DomUtil.hide(Pa.graph2);DomUtil.hide(Pa.graph3);DomUtil.show(Pa[ea.id]); 4198Fa=graph.getGraphObject(P.domainId,P.asin,ea.getAttribute("rel"),!1);typeof Fa!="undefined"&&Fa!=null&&graph.redraw(Fa,!0,!0)}}))}replaceHtml("productTableDescriptionIFrame",D);if(D=document.getElementById("keepaBoxSettings"))D.innerText=storage.username;QuotaUI.setupWidget(!0);document.getElementById("tabHeadSub")?.addEventListener("click",function(Pa){Pa=Pa.target;if(!Pa.classList.contains("active")){for(var ta of Pa.parentElement?.children??[])ta!==Pa&&ta.classList.remove("active");Pa.classList.add("active"); 4199if(ta=(ta=DomUtil.data(Pa,"box"))?document.querySelector(ta):null){for(let ea of ta.parentElement?.children??[])ea!==ta&&ea.classList.contains("active")&&(ea.classList.remove("active"),ea.classList.add("hidden"));ta.classList.remove("hidden");ta.classList.add("active")}k(ta?ta.id:void 0,P);addon("resize",50+float2int(DomUtil.height(document.getElementById("initPage"))))}});document.getElementById("keepaBoxLogin")?.addEventListener("click",function(){registerAnonymous(!0)});document.getElementById("keepaBoxSettings")?.addEventListener("click", 4200function(){window.open(rootURL+"#!channels")});insertSettings();D='<br><span id="reload">'+la._279+'</span><br><section id="settingsMore"><span>'+getLogoSVG(220)+'</span><br><span id="lfeedback">→ <a href="'+rootURL+'#!support" target="_blank">'+la._282+"</a> </span></section>";document.getElementById("settingsTab")?.insertAdjacentHTML("afterend",D);var Aa=document.getElementById("tabContentIFrame"),Ia=document.getElementById("tabHeadIFrame"),Ga=()=>Aa?.querySelectorAll(":scope > .active").forEach(Pa=> 4201{DomUtil.hide(Pa);Pa.classList.remove("active")}),Ya=()=>
4201{if(Ia)for(let Pa of Ia.children)Pa.classList.remove("active")};q=Number(get("s_boxVertical"))+100;document.getElementById("tabGraph")?.addEventListener("click",function(){if(!this.classList.contains("active")){Ga();var Pa=document.getElementById("priceHistory");Pa?.classList.add("active");window.keepaAnim.fadeIn(Pa);Ya();this.classList.add("active");DomUtil.show(document.getElementById("subGraphButtons"));DomUtil.show(document.getElementById("refreshProductBox")); 4202addon()}});document.getElementById("tabTrack")?.addEventListener("click",function(){if(!this.classList.contains("active")){document.querySelectorAll("#track .tracking").length===0&&(TrackingComponent.init({products:[P]}),DomUtil.show(document.getElementById("grid-tools-variation")),DomUtil.show(document.getElementById("grid-wrapper-variation")),DomUtil.show(document.getElementById("grid-wrapper-variation-filter")));Ga();var Pa=document.getElementById("track");Pa?.classList.add("active");window.keepaAnim.fadeIn(Pa); 4203Ya();this.classList.add("active");TrackingComponent.addonResizeHook()}});document.getElementById("tabVariation")?.addEventListener("click",function(Pa){this.classList.contains("active")||(DomUtil.setStyles(Aa,{height:""}),Ga(),Pa=document.getElementById("variation"),Pa?.classList.add("active"),window.keepaAnim.fadeIn(Pa),Pa&&Aa&&DomUtil.setWidth(Pa,DomUtil.width(Aa)),Ya(),this.classList.add("active"),iframe.loadVariationMatrix(P))});document.getElementById("tabSettings")?.addEventListener("click", 4204function(){if(!this.classList.contains("active")){Ga();var Pa=document.getElementById("settingsContent");Pa?.classList.add("active");window.keepaAnim.fadeIn(Pa);Ya();this.classList.add("active");addon()}});isSettings&&(document.getElementById("tabSettings")?.click(),DomUtil.hide(Ia),DomUtil.hide(document.getElementById("reload")))}function f(X){b();var P=keepaTime.now(),ka='<span id="refreshProductBox"><br>  (',D=' <i id="refreshProduct" title="'+la._217+'" class="fa fa-refresh fa-rotate-90" style="cursor: pointer;"></i>', 4205W=X.products;if(W==null||W.length==0)replaceHtml("productTableDescriptionIFrame",la._121);else if(W=getProductFromList(keepaBoxInit.asin,X.products),W==null)replaceHtml("productTableDescriptionIFrame",la._121),reportBug("product not found",keepaBoxInit.asin+" "+JSON.stringify(X));else{W.tracking=X.tracking;W.communityTrackings=X.communityTrackings;W.trackingInfos=getTrackingInfos(W);var N=!0;try{P-W.trackingSince<30&&console.log("no historical data yet"),W.csv[0].length==2&&W.csv[0][1]==-1&&W.csv[1].length== 42062&&W.csv[1][1]==-1&&W.csv[2].length==2&&W.csv[2][1]==-1&&W.csv[CsvType.COLLECTIBLE.index]==null&&W.csv[CsvType.REFURBISHED.index]==null&&W.csv[3].length==2&&W.csv[3][1]==-1&&(N=!1)}catch(Ga){N=!1}if(N)try{W.stats=getStatistics(W)}catch(Ga){console.error(Ga)}var ha=[],V=!1,O=!1,wa=W.domainId==13;if(W.productType==ProductType.VARIATION_PARENT)typeof W.variations=="undefined"?replaceHtml("productTableDescriptionIFrame",la._121):(addon("resize","80px"),replaceHtml("productTableDescriptionIFrame","<div>\u271c Keepa: Please select a specific variation of this product.</div><br>"), 4207document.querySelectorAll(".childASINs").forEach(Ga=>Ga.addEventListener("click",function(){setTimeout(function(){location.reload()},10)})));else{if([ProductType.DOWNLOADABLE,ProductType.EBOOK].includes(W.productType))V=!0;else if(W.productType==ProductType.INACCESSIBLE)O=!0;else if(W.productType==ProductType.INVALID||wa){X=wa?"Keepa can sadly no longer update product data for Amazon."+getTldByDomain(W.domainId):la._341;N?(replaceHtml("productTableDescriptionIFrame",'<div style="color:tomato;font-size: 16px;"><i class="fa fa-exclamation-triangle"></i> '+ 4208X+'</div><br>Below is our <strong>outdated</strong> historical data for this product:<br><br><div id="priceHistory" style="margin-bottom: 30px;" class="active"><div class="graph unselectable" id="graph"></div></div>'),X=document.getElementById("graph"),V=graph.prepare(W.domainId),V.csv=W.csv,V.salesRanks=W.salesRanks,V.p=W,V.salesRankCategoryTrees=W.salesRankCategoryTrees,V.salesRankReference=W.salesRankReference,V.salesRankCategories=W.salesRankCategories,V.isParentSalesRank=W.isParentSalesRank, 4209V.asin=W.ASIN,V.graphIndex=0,V.syncedGraphs=ha,ha.push(V),V.stats=W.stats,V.buyBoxSellerIdHistory=W.buyBoxSellerIdHistory,V.buyBoxUsedHistory=W.buyBoxUsedHistory,V.offers=W.offers,V.$container=X,DomUtil.show(V.$container),V.parameter.width=float2int(DomUtil.width(X.parentElement))-200+"px",V.parameter.interval=(P-W.trackingSince)/60,V.parameter.forceInterval=!0,graph.create(V),addSubGraphMenu(W,W.domainId,ha),DomUtil.hide(document.getElementById("casinLine")),addon()):(replaceHtml("productTableDescriptionIFrame", 4210X),addon("resize","80px"));return}W.ASIN=W.asin;W.MANUFACTURER=W.manufacturer;W.TITLE=W.title;W.LASTUPDATE=W.lastUpdate;W.TYPE=W.productType;W=hydrateCsvFields(W);addLightningDealBox(W);wa=0;W.AMAZON==null?(u=!0,ka+=D+")</span>"):(u=!1,wa=Date.now()/6E4-(W.lastUpdate+offsetHours*60),D=wa>60?D:"",ka+=la._123+" "+prettyDate(wa)+D+")</span>");W.ASIN=keepaBoxInit.asin;getCurrencyByDomain(W.domainId);graphShareURL=GraphService.getShareUrl(W.asin,W.domainId);D="";if(!V&&!O&&W.categories&&W.categories.length> 42110)try{var La=JSON.parse(JSON.stringify(dealWrapperInstance.get().loadRequest("last")));La.includeCategories==null&&(La.includeCategories=[]);La.includeCategories[W.domainId]=W.categories;La.dateRange=4;D='<a href="https://keepa.com/#!deals/'+encodeURIComponent(JSON.stringify(La))+'" target="_blank">'+la._420+"</a>"}catch(Ga){reportBug(Ga)}d(D,W);var Ba=document.getElementById("tabContentIFrame"),fa=document.getElementById("tabHeadIFrame");document.getElementById("tabMore")?.addEventListener("click", 4212function(){if(!this.classList.contains("active")){DomUtil.setStyles(Ba,{height:""});DomUtil.hide(document.getElementById("subGraphButtons"));DomUtil.hide(document.getElementById("refreshProductBox"));Ba?.querySelectorAll(":scope > .active").forEach(Ya=>{DomUtil.hide(Ya);Ya.classList.remove("active")});var Ga=document.getElementById("more");Ga?.classList.add("active");window.keepaAnim.fadeIn(Ga);if(fa)for(let Ya of fa.children)Ya.classList.remove("active");this.classList.add("active");Ga=float2int(DomUtil.height(Ba))+ 4213160;addon("resize",Ga);q=float2int(DomUtil.height(document.getElementById("productTableIFrame")));k("MoreTab1",W);addon()}});if(u){DomUtil.setStyles(Ba,{height:"60px"});DomUtil.hide(fa);X=la._341;if(P=document.getElementById("graph"))P.innerHTML='<div style="margin-left: 30px; font-size: 12px; color: #555"><i class="fa fa-exclamation-circle tomato fa-lg"></i> '+X+"</div>",window.keepaAnim.fadeIn(P,{duration:200});addon("resize",100)}else{if(!isAmazonOrAWS()){var ia=getLastWithShipping(W.csv[CsvType.EBAY_NEW_SHIPPING.index], 4214CsvType.EBAY_NEW_SHIPPING);D=getLastWithShipping(W.csv[CsvType.EBAY_USED_SHIPPING.index],CsvType.EBAY_USED_SHIPPING);La="";if(ia[0]>0){var Aa=Money.format(ia[0]+ia[1],{sourceDomainId:W.domainId,targetDomainId:W.domainId}),Ia=Money.format(ia[0],{sourceDomainId:W.domainId,targetDomainId:W.domainId});ia=ia[1]==0?0:Money.format(ia[1],{sourceDomainId:W.domainId,targetDomainId:W.domainId});Ia=ia===0?la._567:`${Ia} + ${ia} ${la._541}`;La+=`<span class="font-sans-wide text-xs text-grey-a700">${CsvType.getName(CsvType.EBAY_NEW_SHIPPING.index)}:</span> 4215 <span class="productTableDescriptionPrice priceEbayNew" title="${Ia}" style="color:${CsvType.EBAY_NEW_SHIPPING.color};">${Aa}</span>`}D[0]>0&&(Aa=Money.format(D[0]+D[1],{sourceDomainId:W.domainId,targetDomainId:W.domainId}),Ia=Money.format(D[0],{sourceDomainId:W.domainId,targetDomainId:W.domainId}),D=D[1]==0?0:Money.format(D[1],{sourceDomainId:W.domainId,targetDomainId:W.domainId}),D=D===0?la._567:`${Ia} + ${D} ${la._541}`,La+=` <span class="font-sans-wide text-xs text-grey-a700">${CsvType.getName(CsvType.EBAY_USED_SHIPPING.index)}:</span> 4216 <span class="productTableDescriptionPrice priceEbayUsed" title="${D}" style="color:#000;">${Aa}</span>`);La&&='<span id="ebayLinkPriceHover">'+La+"</span>";D="";if(!V&&!O&&globalEbayArray[W.domainId]){D="";Aa=la._561;if(P-getLastTime(W.csv[CsvType.EBAY_NEW_SHIPPING.index],CsvType.EBAY_NEW_SHIPPING)<44640||P-getL
4216astTime(W.csv[CsvType.EBAY_USED_SHIPPING.index],CsvType.EBAY_USED_SHIPPING)<44640)D='style="color:#888"',Aa=la._99+" eBay";La&&(Aa="");D='  <li class="tabItemI tabExtern"><a id="ebayLink" target="_blank" href="'+ 4217getEbayRedirectByDomain(W.domainId,W.upcList,W.eanList,W.title,!0)+'" rel="ebay" title="'+Aa+'" '+D+'>\u2192 <span>e</span><span style="margin-left: -2px;">b</span><span style="margin-left: -2px;">a</span><span style="margin-left: -2px;">y</span></a>';fa?.insertAdjacentHTML("beforeend",D+La);P=document.getElementById("ebayLink");P?.addEventListener("click",function(){this.getAttribute("href").includes("campid")&&(storage.lastEbayClick=keepaTime.now(),settings.send())},{once:!0});La&&P&&(P.addEventListener("mouseenter", 4218function(){DomUtil.show(document.getElementById("ebayLinkPriceHover"))}),P.addEventListener("mouseleave",function(){DomUtil.hide(document.getElementById("ebayLinkPriceHover"))}))}}W.timeStamp=X.timeStamp;let Ga=Number(get("s_boxVertical"));keepaApp&&(Ga=window.innerHeight-80);if(N){let Ya=document.getElementById("graph"),Pa=0,ta=()=>{if(Ya?.parentElement){var ea=float2int(DomUtil.width(Ya.parentElement));if(ea<=250)Pa++,Pa<100?setTimeout(ta,50):console.error("Keepa Graph Error: Parent container width remained at "+ 4219ea+"px after 5 seconds. Aborting render.");else{Pa=0;var Fa=graph.prepare(W.domainId);W.stats||(W.stats=getStatistics(W));Fa.csv=W.csv;Fa.salesRanks=W.salesRanks;Fa.p=W;Fa.salesRankCategoryTrees=W.salesRankCategoryTrees;Fa.isParentSalesRank=W.isParentSalesRank;Fa.monthlySold=W.monthlySold;Fa.lastSoldUpdate=W.lastSoldUpdate;Fa.salesRankReference=W.salesRankReference;Fa.salesRankCategories=W.salesRankCategories;Fa.asin=W.ASIN;Fa.graphIndex=0;Fa.stats=W.stats;Fa.buyBoxSellerIdHistory=W.buyBoxSellerIdHistory; 4220Fa.buyBoxUsedHistory=W.buyBoxUsedHistory;Fa.offers=W.offers;Fa.axes.y[0].labelWidth=60;Fa.parameter.height=Ga;Fa.syncedGraphs=ha;ha.push(Fa);Fa.$container=Ya;DomUtil.show(Fa.$container);W.tracking&&(Fa.parameter.tracking=W.tracking);Fa.parameter.width=ea-220+"px";keepaApp&&(Fa.parameter.width=ea-150+"px");graph.create(Fa);addSubGraphMenu(W,W.domainId,ha);document.getElementById("subGraphButtons")?.insertAdjacentHTML("afterbegin",ka);document.getElementById("refreshProduct")?.addEventListener("click", 4221function(){this.classList.add("fa-spin");n=!0;c()},{once:!0})}}};ta()}else if(P=`<span style="color:tomato; margin-left: 20px;"><i class="fa fa-exclamation-triangle"></i> ${la._156}</span>`,N=document.getElementById("graph"))N.innerHTML=P,DomUtil.show(N);if(!keepaApp)if(wa>360){if(r){try{let Ya=document.getElementById("refreshProduct"),Pa=document.createElement("span");Pa.innerHTML="  ( ";Ya.previousSibling.replaceWith(Pa);Ya.click()}catch(Ya){console.error(Ya)}r=!1}}else V||O|| 4222setTimeout(function(){if(storage.previewCasin){let Ya=function(){callCasin(function(Pa){comparePricesLine(W.asin,W.domainId,Pa)},W.asin,W.domainId,!0)};n?Ya():document.getElementById("detailProductPage")?.addEventListener("mouseover",Ya,{once:!0})}},1);dataProduct=W;keepaApp||TrackingComponent.init(X);gotInterupted=!1;try{storage.noDataPromo&&storage.removeItem("noDataPromo")}catch(Ya){}addon()}}}}function k(X,P){if(storage.accountType==0)replaceHtml("MoreTab1",""),replaceHtml("MoreTab2","");else if(!hasDataAccessSubscription)X= 4223`<div class="my-4 font-medium italic text-data-primary">${LangUtil.fill(la._744,{promoPriceProMonth:SettingsSubscription.PROMO_PRICE_PRO_MONTH})}</div>`,replaceHtml("MoreTab1",X),replaceHtml("MoreTab2",X),replaceHtml("MoreTab3",X),replaceHtml("MoreTab4",X);else if(P.proDeferred==null||P.proDeferred.state()!=="pending")if(P.proDeferred||(P.proDeferred=Deferred()),document.getElementById("MoreTab1")?.innerHTML!==""){let W=X?document.getElementById(X):null;(W?W.querySelectorAll(".grid-wrapper").length: 42240)<1&&Object.keys(B).length&&(X=="MoreTab1"?Y():X=="MoreTab2"?da():X=="MoreTab3"?t():X=="MoreTab4"&&G())}else{DomUtil.show(document.getElementById("loadingIconAdv"));addon("resize",300+float2int(DomUtil.height(document.getElementById("initPage"))));var ka=!1,D=W=>{var N="Failed loading advanced product information.<br>"+la._error;W.status==429&&QuotaUI.handleExceeded();DomUtil.hide(document.getElementById("loadingIconAdv"));replaceHtml("MoreTab1",N);replaceHtml("MoreTab2",N)};network.request({path:"pro/product", 4225refreshProduct:!0,domainId:P?P.domainId:p.domainId,history:!0,getSellersNoHistory:!0,asin:P?P.asin:keepaBoxInit.asin,offerPages:6,type:"offers",maxAge:0,stats:365}).progress(W=>{ka||replaceHtml("loadingProgress",W+"%")}).always(()=>{ka=!0;P.proDeferred.resolve()}).done(W=>{DomUtil.hide(document.getElementById("loadingIconAdv"));typeof W.products!=="undefined"&&W.products[0]?(B=W,replaceHtml("MoreTab1",'<div style="display:flex;"><div id="grid-container-product-detail" class="on-white" style="flex: 0 1 auto;margin-right:23px"></div><div id="grid-container-product-price" class="on-white" style="flex: 0 1 auto;"></div></div>'), 4226replaceHtml("MoreTab2",'<div id="offerGrid" class="on-white"></div>'),replaceHtml("MoreTab3",'<div id="grid-container-buy-box-history" class="on-white"></div>'),replaceHtml("MoreTab4",'<div id="grid-container-buy-box-used-history" class="on-white"></div>'),W=(W=document.getElementById("tabHeadSub")?.querySelector(".active"))?DomUtil.data(W,"box"):void 0,W==="#MoreTab1"&&Y
4226(),W==="#MoreTab2"&&da(),W==="#MoreTab3"&&t(),W==="#MoreTab4"&&G()):D(W)}).fail(W=>{reportBug("product offers request failed",JSON.stringify(W)); 4227D(W)})}}var n=!1,q=0,r=!0,u=!1,B={},t=()=>{network.withGrid(()=>{GridBuyBoxStatistics.init(B,"grid-container-buy-box-history").always(()=>addon())})},G=()=>{network.withGrid(()=>{GridBuyBoxUsedStatistics.init(B,"grid-container-buy-box-used-history").always(()=>addon())})},da=()=>{network.withGrid(()=>{GridOffer.init(B,"offerGrid").always(()=>addon())})},Y=function(){network.withGrid(()=>{var X=GridProductDetail.init(B,"grid-container-product-detail"),P=GridProductPrice.init(B,"grid-container-product-price"); 4228addon("resize","1000");whenAll(X,P).always(()=>addon())})};return{init:function(){lastSubUrl=window.location.hash.substring(1);c();sendHelloGraph();a()},load:c,loadVariationMatrix:function(X){if(document.getElementById("variation")?.innerHTML!=="")addon();else{var P=[];X.parentAsin&&X.variations&&(P=X.variations.map(ka=>ka.asin));P.length>0?(replaceHtml("variation",'<div id="loadingFlipper" style="display: flex;justify-content: center;margin: 80px;flex-direction: column;align-content: center;align-items: center;"><div style="position: relative;width: 50px;display: block;margin-bottom: 50px;"><div class="cssload-box-loading"></div></div><div id="loadingProgress"></div></div>'), 4229network.request({path:"product",type:"variation",asin:X.parentAsin,variations:P.join(","),domainId:X.domainId,history:!0,kA:keepaApp?.constructor===Object,maxAge:-1,refreshProduct:!1}).done(ka=>{var D=[];ka.variationProducts!==null&&typeof ka.variationProducts!=="undefined"&&ka.variationProducts.length>0&&(D=ka.variationProducts.map(W=>({...W,variations:X.variations})));replaceHtml("variation",'<div id="variationGrid" class="on-white"></div>');network.withGrid(()=>{GridVariation.init(D,"variationGrid").always(addon)})}).fail(()=> 4230{replaceHtml("variation","Failed loading advanced product information.<br>"+la._error)})):replaceHtml("variation","No variations available.")}},initGridBuyBoxStatistics:t,initGridOffer:da,initGridProductDetail:Y,loadDataOffers:k,getIframeHeight:function(){return q},isIframe}}();let firefox=!1,gotInterupted=!1;function loadProductIFrame(a){iframe.load(a)}let addonCache=[],prevResize=0; 4231function addon(a,b){if(!keepaApp){if(typeof a=="undefined"||a=="resize"&&typeof b=="undefined")a="resize",b=float2int(DomUtil.height(document.getElementById("initPage")));try{if(a!="resize"||b!=prevResize)a=="resize"&&(prevResize=b),window.parent.postMessage({key:a,value:b,origin:"keepaIframe",location:""+document.location},"*"),addonCache[a]=b}catch(c){}}}function syncAddonDOM(a){addon=a};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.